From df8ef2e8b6c50846e58b3fc01cffe6d27a987cc1 Mon Sep 17 00:00:00 2001 From: pramod Date: Mon, 8 Feb 2016 18:17:46 +0530 Subject: [PATCH 01/25] added Pentaho reports --- fineract-provider/build.gradle | 21 ++ fineract-provider/dependencies.gradle | 16 ++ fineract-provider/dev-dependencies.gradle | 18 +- .../PentahoReportingProcessServiceImpl.java | 237 ++++++++++++++++++ .../Active Loan Summary per Branch.prpt | Bin 0 -> 8686 bytes .../Active Loans - Details(Pentaho).prpt | Bin 0 -> 9655 bytes .../Active Loans - Details.properties | 26 ++ .../Active Loans - Summary(Pentaho).prpt | Bin 0 -> 23008 bytes .../Active Loans - Summary.properties | 25 ++ ...assed Final Maturity Summary(Pentaho).prpt | Bin 0 -> 9307 bytes ...s Passed Final Maturity Summary.properties | 25 ++ ... Loans Passed Final Maturity(Pentaho).prpt | Bin 0 -> 9048 bytes ...ive Loans Passed Final Maturity.properties | 27 ++ ...ve Loans by Disbursal Period(Pentaho).prpt | Bin 0 -> 23194 bytes ...ctive Loans by Disbursal Period.properties | 20 ++ ... in last installment Summary(Pentaho).prpt | Bin 0 -> 9579 bytes ...ans in last installment Summary.properties | 24 ++ ...ve Loans in last installment(Pentaho).prpt | Bin 0 -> 22860 bytes ...ctive Loans in last installment.properties | 26 ++ .../ActiveLoanSummaryperBranch.properties | 16 ++ .../pentahoReports/Aging Detail(Pentaho).prpt | Bin 0 -> 8555 bytes .../pentahoReports/Aging Detail.properties | 20 ++ ... Summary (Arrears in Months)(Pentaho).prpt | Bin 0 -> 8630 bytes ...ing Summary (Arrears in Months).properties | 12 + ...g Summary (Arrears in Weeks)(Pentaho).prpt | Bin 0 -> 8785 bytes ...ging Summary (Arrears in Weeks).properties | 13 + .../pentahoReports/Balance Outstanding.prpt | Bin 0 -> 9436 bytes .../main/pentahoReports/Balance Sheet.prpt | Bin 0 -> 22446 bytes .../Branch Expected Cash Flow.prpt | Bin 0 -> 35048 bytes .../Client Listing(Pentaho).prpt | Bin 0 -> 7662 bytes .../pentahoReports/Client Listing.properties | 10 + .../Client Loan Account Schedule.prpt | Bin 0 -> 13698 bytes .../Client Loans Listing(Pentaho).prpt | Bin 0 -> 10456 bytes .../Client Saving Transactions.properties | 19 ++ .../Client Saving Transactions.prpt | Bin 0 -> 8451 bytes .../Client Saving Transactions_fr.properties | 18 ++ .../Client Savings Summary.prpt | Bin 0 -> 15945 bytes .../pentahoReports/Collection Report.prpt | Bin 0 -> 9769 bytes .../CollectionReport.properties | 20 ++ .../main/pentahoReports/Disbursal Report.prpt | Bin 0 -> 9334 bytes .../pentahoReports/DisbursalReport.properties | 23 ++ ...ted Payments By Date - Basic(Pentaho).prpt | Bin 0 -> 8515 bytes ...pected Payments By Date - Basic.properties | 20 ++ ...Expected Payments By Date - Formatted.prpt | Bin 0 -> 35580 bytes ...ween Dates Summary by Office(Pentaho).prpt | Bin 0 -> 7745 bytes ...Between Dates Summary by Office.PROPERTIES | 8 + ...bursed Between Dates Summary(Pentaho).prpt | Bin 0 -> 7509 bytes ...Disbursed Between Dates Summary.PROPERTIES | 4 + .../GeneralLedgerReport.properties | 18 ++ .../pentahoReports/GeneralLedgerReport.prpt | Bin 0 -> 8548 bytes .../main/pentahoReports/Income Statement.prpt | Bin 0 -> 17202 bytes .../Loan Account Statement.properties | 20 ++ .../Loan Account statement.prpt | Bin 0 -> 7694 bytes .../Loan Transaction Receipt.properties | 42 ++++ .../Loan Transaction Receipt.prpt | Bin 0 -> 6795 bytes ...g Disbursal Summary by Month(Pentaho).prpt | Bin 0 -> 8131 bytes ...ting Disbursal Summary by Month.properties | 12 + ...s Awaiting Disbursal Summary(Pentaho).prpt | Bin 0 -> 7965 bytes ...oans Awaiting Disbursal Summary.properties | 13 + .../Loans Awaiting Disbursal(Pentaho).prpt | Bin 0 -> 9048 bytes .../Loans Awaiting Disbursal.properties | 24 ++ .../Loans Pending Approval(Pentaho).prpt | Bin 0 -> 8800 bytes .../Loans Pending Approval.properties | 18 ++ ...Obligation Met Loans Details(Pentaho).prpt | Bin 0 -> 9061 bytes .../Obligation Met Loans Details.properties | 22 ++ ...Obligation Met Loans Summary(Pentaho).prpt | Bin 0 -> 8752 bytes .../Obligation Met Loans Summary.properties | 17 ++ .../Portfolio at Risk by Branch(Pentaho).prpt | Bin 0 -> 8671 bytes .../Portfolio at Risk by Branch.properties | 15 ++ .../Portfolio at Risk(Pentaho).prpt | Bin 0 -> 8469 bytes .../Portfolio at Risk.properties | 16 ++ .../Rescheduled Loans(Pentaho).prpt | Bin 0 -> 8415 bytes .../Rescheduled Loans.properties | 17 ++ .../Saving Account Statement.properties | 9 + .../Saving Account Statement.prpt | Bin 0 -> 7565 bytes .../Saving Transaction.properties | 14 ++ .../Savings Transaction Receipt.properties | 27 ++ .../Savings Transaction Receipt.prpt | Bin 0 -> 6854 bytes .../pentahoReports/Savings Transactions.prpt | Bin 0 -> 14997 bytes .../Staff Assignment History.prpt | Bin 0 -> 6565 bytes .../main/pentahoReports/Trial Balance.prpt | Bin 0 -> 7978 bytes .../TxnRunningBalances(Pentaho).prpt | Bin 0 -> 8743 bytes .../TxnRunningBalances.properties | 19 ++ .../Written-Off Loans(Pentaho).prpt | Bin 0 -> 8739 bytes .../Written-Off Loans.properties | 17 ++ .../balanceOutstanding.properties | 15 ++ .../pentahoReports/balanceSheet.properties | 13 + .../branchExpectedCashFlow.properties | 21 ++ .../clientLoansListing.properties | 43 ++++ .../clientSavingsSummary.properties | 19 ++ .../expectedPaymentsByDate.properties | 23 ++ .../pentahoReports/incomeStatement.properties | 15 ++ .../loanScheduleDetailed.properties | 33 +++ .../loanScheduleDetailed_fr.properties | 33 +++ .../savingsTransactions.properties | 16 ++ .../staff assigment history.properties | 17 ++ .../pentahoReports/trialBalance.properties | 14 ++ .../resources/META-INF/spring/appContext.xml | 3 +- .../src/main/resources/application.properties | 19 -- 99 files changed, 1231 insertions(+), 21 deletions(-) create mode 100644 fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java create mode 100644 fineract-provider/src/main/pentahoReports/Active Loan Summary per Branch.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans - Details(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans - Details.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans - Summary.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans in last installment Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans in last installment Summary.properties create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Active Loans in last installment.properties create mode 100644 fineract-provider/src/main/pentahoReports/ActiveLoanSummaryperBranch.properties create mode 100644 fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Aging Detail.properties create mode 100644 fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Months)(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Months).properties create mode 100644 fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks)(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks).properties create mode 100644 fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Balance Sheet.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Client Listing(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Client Listing.properties create mode 100644 fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Client Saving Transactions.properties create mode 100644 fineract-provider/src/main/pentahoReports/Client Saving Transactions.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Client Saving Transactions_fr.properties create mode 100644 fineract-provider/src/main/pentahoReports/Client Savings Summary.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Collection Report.prpt create mode 100644 fineract-provider/src/main/pentahoReports/CollectionReport.properties create mode 100644 fineract-provider/src/main/pentahoReports/Disbursal Report.prpt create mode 100644 fineract-provider/src/main/pentahoReports/DisbursalReport.properties create mode 100644 fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic.properties create mode 100644 fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Funds Disbursed Between Dates Summary by Office(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Funds Disbursed Between Dates Summary by Office.PROPERTIES create mode 100644 fineract-provider/src/main/pentahoReports/Funds Disbursed Between Dates Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Funds Disbursed Between Dates Summary.PROPERTIES create mode 100644 fineract-provider/src/main/pentahoReports/GeneralLedgerReport.properties create mode 100644 fineract-provider/src/main/pentahoReports/GeneralLedgerReport.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Income Statement.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loan Account Statement.properties create mode 100644 fineract-provider/src/main/pentahoReports/Loan Account statement.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.properties create mode 100644 fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month.properties create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary.properties create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal.properties create mode 100644 fineract-provider/src/main/pentahoReports/Loans Pending Approval(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Loans Pending Approval.properties create mode 100644 fineract-provider/src/main/pentahoReports/Obligation Met Loans Details(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Obligation Met Loans Details.properties create mode 100644 fineract-provider/src/main/pentahoReports/Obligation Met Loans Summary(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Obligation Met Loans Summary.properties create mode 100644 fineract-provider/src/main/pentahoReports/Portfolio at Risk by Branch(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Portfolio at Risk by Branch.properties create mode 100644 fineract-provider/src/main/pentahoReports/Portfolio at Risk(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Portfolio at Risk.properties create mode 100644 fineract-provider/src/main/pentahoReports/Rescheduled Loans(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Rescheduled Loans.properties create mode 100644 fineract-provider/src/main/pentahoReports/Saving Account Statement.properties create mode 100644 fineract-provider/src/main/pentahoReports/Saving Account Statement.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Saving Transaction.properties create mode 100644 fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.properties create mode 100644 fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Savings Transactions.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt create mode 100644 fineract-provider/src/main/pentahoReports/Trial Balance.prpt create mode 100644 fineract-provider/src/main/pentahoReports/TxnRunningBalances(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/TxnRunningBalances.properties create mode 100644 fineract-provider/src/main/pentahoReports/Written-Off Loans(Pentaho).prpt create mode 100644 fineract-provider/src/main/pentahoReports/Written-Off Loans.properties create mode 100644 fineract-provider/src/main/pentahoReports/balanceOutstanding.properties create mode 100644 fineract-provider/src/main/pentahoReports/balanceSheet.properties create mode 100644 fineract-provider/src/main/pentahoReports/branchExpectedCashFlow.properties create mode 100644 fineract-provider/src/main/pentahoReports/clientLoansListing.properties create mode 100644 fineract-provider/src/main/pentahoReports/clientSavingsSummary.properties create mode 100644 fineract-provider/src/main/pentahoReports/expectedPaymentsByDate.properties create mode 100644 fineract-provider/src/main/pentahoReports/incomeStatement.properties create mode 100644 fineract-provider/src/main/pentahoReports/loanScheduleDetailed.properties create mode 100644 fineract-provider/src/main/pentahoReports/loanScheduleDetailed_fr.properties create mode 100644 fineract-provider/src/main/pentahoReports/savingsTransactions.properties create mode 100644 fineract-provider/src/main/pentahoReports/staff assigment history.properties create mode 100644 fineract-provider/src/main/pentahoReports/trialBalance.properties diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index d104a1fcbfd..d508b28a8b8 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -45,6 +45,9 @@ group = 'org.apache.fineract' 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) } @@ -94,6 +97,11 @@ task dist(type:Zip){ include '**/*' into('apps') } + from('src/main/pentahoReports/') { + fileMode = 0755 + include '*' + into('pentahoReports') + } from('../api-docs/') { fileMode = 0755 include '*' @@ -114,7 +122,20 @@ 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) } diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index d8dabd56280..610eec00d60 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -51,6 +51,22 @@ dependencies { [group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], // [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'], diff --git a/fineract-provider/dev-dependencies.gradle b/fineract-provider/dev-dependencies.gradle index 89ffcf13f8a..74e5b3797fe 100644 --- a/fineract-provider/dev-dependencies.gradle +++ b/fineract-provider/dev-dependencies.gradle @@ -50,7 +50,23 @@ dependencies { [group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], [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'], diff --git a/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java new file mode 100644 index 00000000000..154fc740d28 --- /dev/null +++ b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java @@ -0,0 +1,237 @@ +/** + * 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 java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.sql.Connection; +import java.sql.Date; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + +import javax.sql.DataSource; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.Response; + +import org.apache.commons.lang.StringUtils; +import org.apache.fineract.infrastructure.core.api.ApiParameterHelper; +import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant; +import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenantConnection; +import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException; +import org.apache.fineract.infrastructure.core.service.RoutingDataSource; +import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil; +import org.apache.fineract.infrastructure.report.annotation.ReportService; +import org.apache.fineract.infrastructure.report.service.ReportingProcessService; +import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; +import org.apache.fineract.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; +import org.springframework.stereotype.Service; + +@Service +@ReportService(type = "Pentaho") +public class PentahoReportingProcessServiceImpl implements ReportingProcessService { + + private final static Logger logger = LoggerFactory.getLogger(PentahoReportingProcessServiceImpl.class); + public static final String MIFOS_BASE_DIR = System.getProperty("user.home") + File.separator + ".mifosx"; + + private final DataSource dataSource; + private final PlatformSecurityContext context; + private boolean noPentaho = false; + + @Autowired + public PentahoReportingProcessServiceImpl(final PlatformSecurityContext context, final RoutingDataSource dataSource) { + // kick off pentaho reports server + ClassicEngineBoot.getInstance().start(); + this.noPentaho = false; + + this.context = context; + this.dataSource = dataSource; + } + + @Override + public Response processRequest(final String reportName, final MultivaluedMap queryParams) { + + final String outputTypeParam = queryParams.getFirst("output-type"); + final Map reportParams = getReportParams(queryParams); + final Locale locale = ApiParameterHelper.extractLocale(queryParams); + + 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 = MIFOS_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, reportParams); + + 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 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 FineractPlatformTenant tenant = ThreadLocalContextUtil.getTenant(); + final FineractPlatformTenantConnection 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()); + } + } + + private Map getReportParams(final MultivaluedMap queryParams) { + + final Map reportParams = new HashMap<>(); + final Set keys = queryParams.keySet(); + String pKey; + String pValue; + for (final String k : keys) { + + if (k.startsWith("R_")) { + pKey = k.substring(2); + pValue = queryParams.get(k).get(0); + reportParams.put(pKey, pValue); + } + } + return reportParams; + } + +} \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Active Loan Summary per Branch.prpt b/fineract-provider/src/main/pentahoReports/Active Loan Summary per Branch.prpt new file mode 100644 index 0000000000000000000000000000000000000000..76af0d36df4c7c2aff3035cbfcbd81aedda3ff07 GIT binary patch literal 8686 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Details(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans - Details(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..3429338206f138ccd6d941d51c0ba63d56f659fc GIT binary patch literal 9655 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 Z$HSx`4FUPK5&rdBdqw)XUbljP{1@L_Hzxo9 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Details.properties b/fineract-provider/src/main/pentahoReports/Active Loans - Details.properties new file mode 100644 index 00000000000..5986b16e0d5 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans - Details.properties @@ -0,0 +1,26 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..34bc1543dd9613178f28baad24fc6d91a154d59b GIT binary patch literal 23008 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 IQUrwm09%AFr2qf` literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Summary.properties b/fineract-provider/src/main/pentahoReports/Active Loans - Summary.properties new file mode 100644 index 00000000000..2b92dbc90e9 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans - Summary.properties @@ -0,0 +1,25 @@ +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 \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..0426d38ab1cd6431e214f07341204d435425d06d GIT binary patch literal 9307 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary.properties b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary.properties new file mode 100644 index 00000000000..6a4e9b41e2f --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary.properties @@ -0,0 +1,25 @@ +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 + + diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..70da51a0060f22168bea5a4a70c00ef46a753899 GIT binary patch literal 9048 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity.properties b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity.properties new file mode 100644 index 00000000000..88cefb1dff1 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity.properties @@ -0,0 +1,27 @@ +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 \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..709040ff3122ddca4483f1122438108d0e969c09 GIT binary patch literal 23194 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 D1~CW# literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans in last installment Summary.properties b/fineract-provider/src/main/pentahoReports/Active Loans in last installment Summary.properties new file mode 100644 index 00000000000..ca2149778fb --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans in last installment Summary.properties @@ -0,0 +1,24 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..256450bf68a040839070d27a1d394059f5580b60 GIT binary patch literal 22860 zcmaI+V~}V~uq}$VZQHhO+qP}nwr$(Ct<|>8)pqw?-+t%aA2;IcipYriF=s}Nkuxzf zOFc5?=sEQ!1q?{PNt)ZQz znW?i2orkSWYl^fTFde_L@?s0`4H z4FpjWqP3Ek)8uLd$*FfwrewD2+D?i)pTQo{^zx1kYY1O3j#%l+EY2U#bJHmfstHaH z=*7!5awlP9D4azFhH|1Cj9}P->)J*5dmAFl-NF^$a2gLZ-fnzkH-deKv&nf@`r`SQ z07SG!xmFDmTjiO`q$^x{=tEn ze+pF9kA6IkNFDkfzxlk*U4AsxEudE=Yt0}>HG>2ob){PKNbRS?pU5)NgDdrFO90fY z{wx>xXa%29NTeF?{GqX|G0Nh;$T(!>I0an-Th<%;SgB#XbTg`UUTJKrryZr)@UX`q zENetvb(576EC`}-3NeyOG74DW6R<&8Gb~4`ImU}J6ce{(lM7d$rZImHIU#;}>&i*; z6;z+Yu17D(!`YG|-=kh9#Cd@yL5peQ(;q%tBy7801y|bEd?T?y3Ii$VFD$V zGin&x0xLTnxd|E4I8rtj*xy+jX8m1w5mNEQzd*loMkwvVI6TH5vG4^eI?%JB3z7I0 zv#E8DxG8~#-VRT0VXyGaSTSWYI=W)0-YNJ|*s^W{15Nux_~{fDqyI!W?<*B`$EBUR z2U&7)jJ`lE9o9Xv_w^A!J}1OY6Xy>z`V0D>t(ZA-4BYICcU2bAh~K} z#`xC+-y0#kM?`P@=jOvI?{j(?marL#8f%v6CELo=u}*1H728T0`8&ClM?#MTjD62T(w294``-34;9wAAzYEb1)jP#2K2pK*H4*gwY?tdJ<+h;re1}au z1sOVz5!p@%ngw|5>rCvYpg==8&o_w8{y{3pSk1d>SiijT6YM|W1ls%M1OH$l{R97h z|45PkJz-+#VrXJ&W@%^nUtIYQ|4r7895y3D=-neq+MRnkM5UEtQ$>rAs1RtSgD&Tb z&EcvweH%Lh;coBIx1>-&0TC<9_VW@KLu;BBcg-EZ(A@j{u~FUC8ng zVQ(K-EZ^c$3p>J0vxERy>l22gLzk#$PC&fJlWD6jq85B0@f%CEiMM&lRPHPv=nSW zqD$3MU=Pp7J6M?#gaS(}##4jIbYPQFqN`Zs6j*w_JM60&->k!|F9Ll>6LJ}a0wg?$^It5hAPc?yf~$sYJ;%MW&tp>dOqI(+)pt9J!V%Fl z$zQ*`Ts&q2TnstbWs<#E-GDqibnSRZ2M()-MZ+U##zq^r+yKy_)15T7hB!HqunR_| zyIwjD#QWx~%YwzhV{O94jo)wrN79ymQhZ+OBmVrnZZa5mZZk0e;i)ASb|Z^{N8f~r zTEF4~h(6oe$5M3eZC@BE+J9dZ35$kD(Ta=u)>**z0}o6{(Xt6ewJC&0z#($SMkup< zpamK>q&(fbMt@X=GnbwST*4Kf4u4^S<^w^pxQJL4WjwxJ^B9qgqbd}c(0wO}`9>)> z6T)_0suUjdFjOd!==h{lXQ{00*EQ@9-6WgQrrW@vYkIg;ShkMlQ&if;!BAc@uUQr9 z(JF6m(?td|Ij+vc=1+=m?E%~;gJl41`*dd&YEDZUJD*y5`TrF_a@zA3*vX1WFGJC| zka31iC9?c|#;nMHE*vy3I`e0jg-Z%Gu(VI8*`Aj4_W$R6;1F52t);TS004i8|2JoZ z`#;X;Y;0j_`#*W3baBvbhyey{|Ffi5IMo}wgK&AsR-OTG09FsX(vfJ3z{7j7$-;tt zx!Tmf&99SpcSuDyaa8ypXy4uHMT$E_^=z1qQ0M0})uoGo*yM*lJUI zI)lji)*dNo2qSwUm=uBn5+_O&i>J^PIl{x-`~q^rbf@S>*Tg3qCLP!AOfjjL>{nB4$@B%5JSDW^iD-^X?{wi1x#o6L! zy8dL%`+rza0jv6)`iHR?=zn7Y`~S~^y{nV4sWZK?y{&`2tDOn0iSvK4$u({eYM1~) z@Z% zv)CJ8F4tpw^VZ7_7@G4C7i*OUR~hYX1+*{Q!4(}jb@d=P%ZObj_^lH9%$CuK|C;I+ zmIXmIz(2jn3-CWXhF#sWdj30K-9P!i2UWEH4+3XLoBwn8RxNFN>`qj_e0@QTt<;tV zF~{cfU}S8E9=WyJn-0mSHhCu2;lvDuVaUnETG)p@Z#a7A^lMS0!3Y+TdG}j%xCgG% zFuW^zqbU9s8r7kRVXfm240Jg-wK0_O=8bY0#xf1U)X1GmnJUs~XEQTSU1r^dkPA)N zB69#Q2Q0*g%_a$xyn9kam%$Mi+329N>15zyDK`e|+$l|?ju}VVnzAVS3@*^H`-kMn zwJVQa(5E-{?jNsJo@D~+RF3EDx8_D=3QY!6jwQR+=04Jj#mT{Y$3Z7yb*D=f@I*sM zKb)LCpZ7z1JZ^+^LVQ3)6OggD<5DNO) znmPV8kqDKa8S{hVC~F|U6pS`{5SCaB38nV54z?-2dQ1a&ouWljYNu&gq8qhz(n3y3 z7GfT7h_Q@9M5R0(xroeMNJS*%tTM>oGjxdf9J_=O$LSQ8vukTzidh7y-P%{#=uvn+r>wJt`6!%h0(afj{=g655)qHSHPSV9d7;!V@^7q? zemRB)NLP3(d@%E%BLxW)Biy1?F)WE@mIryV%%rxnFe=&dVojx_NC^%$bZ73JBqXrN zYtVwZWFRS_)NYVIfws9;7>BZ}#SDCALn5Tf%mO6IP!g4YteKbb<Qw z!3$9Hqk}feNpD1uc#1g}6~N&H2!>gmsWFNAS9k!*r5cDh^&8PCWRF74ndn$*qbWfP zA*6JeJ=l{@K;CDKNt^kYsdlR#f^Y>W29tCI<`#-8D%9SUN`Y4nnMGG23V1yAT!Obt z*?CMYdmvex+4+iFLLfZg`}?D7Xx9x(Me>6~f#Il^fh^j`Vk}iJmM9>N0|TPHXcf9< zZg|DzLRP~`RCCUOltKC5IDq`l_)rE1RCQC1z=q=L3Vm(N5tO_;du{L*{X7A>>EcFGmJ< z2geHJ1!YPW$wazl!kex+R+zB6<)(blq2X{DfWhxOI#S`*4;b7ZLxwoQ>H(f5EsM@4 zD}Vjtf!|tlxz-aIp6f(f$k^MQR6VXsY!b5@Sf64ok#>WlxB%nMZh^Si2AW9n0a9Dl z2yg?4GAd{5KN{?YHSM*7Juw_$p$YaCN&C?#oar9g+j_8KB z420+RaVhkmt#YaXPrzB!xaQ*Z1jMm7kpt-5j;pHO;OyqgTGjiq)+d~|W~(r~IQ?YV zc^t&*0Y-`a@v;KD=?B4m>=52IUwzn#%awGayxb#gGIiTkHKdza$1Ls; zZDDcNP;{mWH;ja(szr86`GLxI6V*|xe*j<;lROmu-4PL7<-9yH=4m@^zn&nrRIF(3 z2{aQngd@B3_v=yX1SX5bg}6o%OWaS;(5eZ!3c=c<*&7D6F#TM%qWA+^D-{>y z8lM9lM;tw4q0j}(iTLhA=u`hmm(9X|*)5dJIb$hOdD=)bXnoC~OaHGNh#2(1&p$p9sKS+cqi% zZF}N?P*3#UsUL6;*C@J6>Jhz$%wuMgQB|eO+^2ri1|xP-dnGwY{K9?0uW3_s54i*K z&Ox_1LN@rQerkEg!ClUYuHlQJ%+xVl|G0rE$1bZ-InkD9#eu*n2!!OGA%PEZ(62$4 z87ww+*)g_15eCBG4oj$=VK0mFmv02Qy#%g9xnrm2xMycE}-p-bza9e$gP-dz}ON;R#H1Z>a3D`KQn9aYyjRs099as+@P#n zK2T$AhWE6$vgSlIjX~DbYG`3U2X6*#nwp?fLm*79swGUUu6pY7|IM`(?XCw>H(03L z&?unPxevvJNymb1sG1HOOJ>kdIJ)HN>Bci_SIA@6eD;aBe!< zJdEG8lv{_EyPnt{EO9L3ecu=kbx6m0>f8!B3Nj6Y(a-%lIQ_1WMtlI@`_&vIoc@y7 zkgP+)++~mm1JT?MlGb&Z?xaF<&aKhVf)b;lJ^^_=7Pu(i+Fgm&n2+(rJ-={{V9$;u zwIFND4bmNviQjhrjdA|a;Ng>pCukM3j#uU$!?WB0bUSE)m*v{@>Sk+kK^Kk&V{adm zN=FHdRzg)0&faPfq)~2vjWAgu?BHK_@0tVTC`jL={CF6J?hb7Xw%1{76y6(DFIKTQ zg%{`_6d~uQpRGoQVb?|=`=d13H1HV?8;ZKKPu*~k2MqHmYrcs48Rj%Qs%6gO0$YdQ zj?yEYnzvMn8mbfxnA?WjwlZ4@yk9@l7BP=@kVNdQy*j5vMVQf4eBD+m+Z@Ncjp@h0)m2b1apI1~@R#!%1xAAg` zjDGtkHW(;0a)&w0J^nu{!iCvkTxvuz!UZ}xKP{Ap@kVE6qRymbEiUnO|mfwDdZ z2>_5v@V`}p|8?|i3_a~#|EH~Rle=NJ#epKQ_lX+xun4qr%W7PHPIH4|kzJJG2SEFW zO;L)4gevm$Sy-`~bi=Y|674Y|VvE$%(?fEs>-2ahIl2`596Z89c|*ZfGbm3M=a{za zA^w+-g7|%Bry3H>8c8YA^d+dWr^Lmz+LBKPF~2G263PpOCQ|Av^b`;sjM`vWAb1zZ zQ=yp=0?5R=dBK@s*+>(sJ{r0Q_8e>2chrecw36-KU!S62S-d%+DWk%N%34ylC%&e_ zXLU=wZaW?N2uR72+Pp8GMvW)+DZ&qMZ$n&zhA=gp2g(=zy0l#-jHXoHMq>xHz#@#H z$QpDQe8Q?>xzVZwb^MtE4rXB}_~-FzkD?+IQ3gA){TB)Uo2Z882ZIRQ&y3bg`H=Nl z_-%E;Rn?z(6i}J{F@P2CB+!p>t3e+k=0gk*16>)W7lp|S)H96p8eM3$Kpo;43^Y-! zpTtxF3fB8bsA3t#SO+H4i_!$8G{cP2B-QCf%JN&uH*G^%+`j5V@BJ^}p!ldDKyoM( zu}v3qsCHWEWsUpw8iSJgmv&l_rZ+UB%LW3qORo{x04SibcqHhwdp(KeP^@TLY`90y zYDz+j6=WdrHw9S~amW||6&r96Y6Z&=ASmHL4TcsCWpn*UMPV%IyOWNfGq-f5jZnu( zG%_$G55h48bwj|^O!)qpO58HFb>>7F-NT3}SbGrWx-0F@1d;mY(!!>YcW2!q7&o7X zN)Ty;$zz#RAglvk0pB}h>bOX78P~OW;$#;hLQGCicxYA7gi=EonJTZWY1ubxGLbah zLyGwE0_nf=A4a(3JQcOvU@fsdB{meQ9z+0E2e4?qk?5>22Wmb-GJ8SICkG7Yr*Z~y zWP!gvayAvdl*99QXTpd*3fNpslcZ(1#(>{R9g=I|WJXY-MR+S_;m>CiN}CDud*;9A z?H|R}@dDs9vEY?%f`r$VugVUdJ=a#c zXI!vRF{avL+;|^bM9U#IM@tdTio$KZrNQbar<%%=+K@kWh_qCKgvx8aU=GTumWR&7 zrmaw9su?deY4w5yG9NP2HGKqrGYjoHr<9zqr?FzpY?!f5W~e2I+GxVK6%?e3e{dvx zp?>gjYu0j4gNq-egeWvsDKQbJAhl!NiKnU;6JwG#upKX#jW%h`9hn0uO`o`@NjB$6 zDl>TEVMiiTm-e;WmI+t+k>-LnlgF5T4qVg3euFV@ptI!JUZ9C7;k|?=+90Ow`5cD0 zxz`>`?5~sI@H5Q1rj0rRN1sYGc(kEz#iCu$5m}xOCpN_27(Vo#g#t8x6EE?8eo`Jn zfT?`LQC!oNhyj=M_60n_B>cn%X`X{ObW?X4W~$*P7B>PszzF<2wgj<-#(jV;ESUS> z_1+e3FwbzYi~|RrYR>IVH2;aJJ=r^eDuBzL>C@|uh#wVu?9tf`XDJwn)}y;+$T4<= zu_Dif!6U!^yJ1c+VS}9c9@%p={jT7!K}N?ffDuv3N-)u2?-W6L&IX(*%eQ$*~1#K3-eKh-T0R zDdWd>_W>z^E^|A6EJEF#Xnrs0lDGrx#|ch6lp6@#E7!B+>|5@p0VYTE`xDyra#|_r z{`RO6*LO)48Hrc^@X3N=R70|)mT2wWSeiecQLJ62_+{4IXAJd>O=>4o#PNiEdpwVc zPm3P}9HV{8?RRgS&J~F7@uX#aCO0qjRMnaC;i}I=Z$?Y6`fD>d9c>HkZkvkaE_6ZN z>0{wFG?4?6HBDZsZ?8w?Hyf1Fn^tViL|3`g$UrwPMD|SF=b<77luBGYFK#mf;3gx{(>TR!FKq^;u+F;dN7F5HF<}H&w1?79q%R_p{GNwx~ zcB3NKwHPIN`J3J{>OM0X_6_o5a!;4b`!x&*H@P7>f2!_u5i81ZPDsvqYs-~Z15>$3 z;2h;bXId+jGd9XP4tn-Xup>doZ$>CJ3x-Q@>IQgXQ#Z5f_#+#3g1#vg}>zq{2x!#7@EDC6@Pu-rA(~)2l+MAA z_U8`&e6kZ;v-#Z2oaY{Aw|U+k+hTF4Q8^Gm09vX44hBF0$Ko9p2mS9`C(zeL zp&j7_y+Mdi^Afhw@V-uTNxz3L*gsu4H}YH)r?t*|pLN`0Tl2S(!24%s*bomIMs6`7;on6T6ac7JYlJ6HEl+~dMV2>Nb)_lhK$Av0c?9GD;rF?OMcW; zq_dv<<0!mJIguevhoGXRo?@)mfFbBC>el{x2Rn1>sftLi;RH?4L4}CwYfs%*`3!;P zA2}Wsj;TF^^?%P3LPDT#YYoSS17nTDxmflSS<1$rEN=V!3@t2OG`;=iQV=2u@Jolo zOxJ$B@WV#`c&+f)+CK}Qs~${|AgZJ_ZQa@VdmTPYYFKlf{eB<`hdHKkeEApB=22Qk z|JGN;mYmZ|{;3xS1i*~5yntKjGY8l!1E7bzgR!Yb9kD; z=dwwSgna2YGgLuDX6yecFELbX?rKy*ctqsZR=KKjSOBr@%N?4O| zeyEbsy{IC`4fx2xdAKIcr2Jwh!K=U~`qAnns>*)4SoX?m%aMx_iqV3xVm82*8Wf!) z)nzYmq#VCGL6@f|q#0veZUpI=v=YaZXnkDf*hCU* zVrT8dYw|?C3HKYx-34n50(pgZ;&pTQ*L7mw-l{(FUKmypU?PO*upm+pfYcC88 z9?vf~RrnWas{UYD-->!Ra68-of|rIv0L#~H!5=teQ~)Ib19z=`8#8=FPI-u&FCX^< zDeofQWAAI3#K!;!U&|hu%Q9+i4S$e2#xwLnei%hs|N0#+9)6oxHY{H~siI-kY==Mu zD!AeDnwy)J-bi9b+cy!`mij`wLQ5l}Mncffy}RMMGf~A};h4hTcLs^N;D>gtI

~ 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 WSq^}D`$f!~$FrM0MW}K6?tcKiCG)!g literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans in last installment.properties b/fineract-provider/src/main/pentahoReports/Active Loans in last installment.properties new file mode 100644 index 00000000000..00cf44d3159 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Active Loans in last installment.properties @@ -0,0 +1,26 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/ActiveLoanSummaryperBranch.properties b/fineract-provider/src/main/pentahoReports/ActiveLoanSummaryperBranch.properties new file mode 100644 index 00000000000..5a8ff11b6ae --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/ActiveLoanSummaryperBranch.properties @@ -0,0 +1,16 @@ +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 : \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..c5c1b89742fda0b3bffd95a5cc695b7c0ba0364a GIT binary patch literal 8555 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Months).properties b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Months).properties new file mode 100644 index 00000000000..c322bf4e93f --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Months).properties @@ -0,0 +1,12 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks)(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks)(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..7f2604b4de84a4ecdb46e1d8537dcb6a0e679a07 GIT binary patch literal 8785 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks).properties b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks).properties new file mode 100644 index 00000000000..58699376c0c --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks).properties @@ -0,0 +1,13 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt b/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt new file mode 100644 index 0000000000000000000000000000000000000000..9fdaf17a9d3b414ea16263df8dca9a542c2ab76b GIT binary patch literal 9436 zcmaKS1yCMKvo`MT794`R6Wn=mcM0z9?(P~~Ly%xW6C^kUcXxN!7y04*-@VB__ny;R zQ?<1<-8((K)7{%oD*(VD;6OlNKtRw;86?2v$1JHqKtSHc>mv{w3mX$>4|@|sdwXjO zBSU8kJ6lFqTVn=$6I*9Pb2|n{6MH*HXA4_11|w@jCnpOdg;#MHATTg6e~EjQ@ZW^_ zdM7KUB1A7GC(dYNXlr3=;^fTWZev}a46yAYMhU&;4(VBGT2`f!bLA8A@<)}iRKbB^ z6+J(WqODh(4#Oy2>G<$`D#3IVH;eNf9_uDT+@_-fmDi|#wi2rFpCFFrQACZ&W{RS>62GEK4b6Ifi%0rVshuLvZ?H-;xb(FKPdHcT zvm&A;qJ%S{=O@-!I7g(FK(?2zkStr70P6ifZcK~5F%FP#jh0OjX6RCb2RlIQ+BMZs z3ZKksaL};#^1kOSG5m|LWY$I5mNorBvdksYm2NHc;iHD=;{M#zhz#k9scww{MycFu ze*3lVK%T}NCB>)kB(UyvpE`}*iQZ;Jj0^oEf}fMZtH`Tu(OoBq3IJ%BN_M>p3{Vgd zTL=)4f8N%=tYqSB`2Tlu)wYuuqxaMYZUQK5F)dTTK3Mx{nQm~0(0{zJwocGLgYQ{d zTQ>%{8IwjZ;?}k*k$<^urdq(K@xES56yrTA7=<&*v@2@sSE7wf^G|U*p5GF{H1frC z11=mOa|*@F2o4*t6m2jkm!$eIs(vyvrgP*Wp>Z6UepOV5Eo4v)Tgh)gi89}9H4IK) zNYz-Rr-leX3+zXYq>i{i6%GS26x85M5v~sO>Yogj+c3tOJkR)S?cG&N?dh#MI*^}l zwOc<+s~{hHT%2@DaRt-&kkB1CKEnweo(Yn3>KrxQ%cA2?me-&Jib~-o2Zxr9MJcqgZ#0&4P@M&(N$fz$d9aH zhVP@-WC-L*X12S%Vu=Hb=6j=5rBst;v8Q}DCS!Owx?9=1T_oIA0^vMhD%P?~9aR^r z%;q%xXJzS0-?K*k7Ba_+_}IZDA`$)vus2)zfP58neYKVPzuF4^^#~Z***d=-o;P!e z#R|#wFd>NE^7V}Qpv{p?-JEiD?1ETWF62!`eDv#X=c9(KsWBeSJV!{Y;#*HD>mD+C zF(&dt32PD6>w7+au*?AtP9c(fL!-qTX1U3<^l+$D8c@Zz1fV~q+EkVswI^W^NfMmn zebSNCBZuN#b(gZ?>smUuIq+Zaz*+l_>Wk@>>=_rKU~!uOdA_^C^N@U!*SfdNA(4y@ zpTmr9D-6#D-ut*K{+ySmp`7Cr$YFOO9cZNHRokUsQVN86Q=C|Pt>ovcT4=Az|MN$R z_BzAZ(Am(~#MHvp;?0Y^>3^)bXuHUT;xnp_;!XAar*x#EL5-v}rYzzqlzAq@#t}dP zqK>PfxmYr!C=o{NrBy`foPx6v38mzErw5CVfG~%fm4JD9R=t=U+n{2sOoDfxfg%rX zI3(k0Z@@nOQA&T8S9gQ}z!e>WhC~lLqSPQ!GNS6GX_`0DyPjMJwmqj(vLM6KBVCP2 z`_nX!Qdme$()24;t>V|F;33}O$HaRilI2L;thJwX6`Ou%0#cMJEUd&UPH{X6GR^2@ z)YPAZ%@)|WEG_f8*)g>q`xrE6a5s2dq1F`xD>dnL9XpJV5%0dt(c*hCIAAMb%gEKc zcva~gKcf=8(~uy8>+T@d=X`jd%pfWp{HgJJ`eWUS9&;8k)CH)7FD$c)MmR(L z`e77_O3YW)uD;ZEePM*0u~LvO8D^UqbxSaZ4Wq}0RG z)XfBw3{J0GmLnn{OiM+hmR|Q{+gGT=k>KmaCDhQ|*E$bgyedm(gO^(`V=;JQSB<(S z%UlZpw1is?c-Gx+w9MG9A}8HlL(-N%DGQwKle|w3_M)acHkI4TTIe@iSkW!cX>isl zxBvdx_j#O45Vy|gibt$k5!4yf6>HG-iv@Q3NIT;XeJSxa=Qh%kuRT7>G&=hVm{8K) zQkNqKxHHU~og8-BqdD5~%hqyZ%ihDbpoAhBHrAfeYG}{b5ifDGy?95k@gF`{t(AMg zz!5~EImdJ#`|bv(XOzbzP|z9MiTsdr!mN}c9K7ZoR-wv@A{9vC;_2>?7g|=_>(112 zRN;+oxNvLSilOjqNrtX*(9F64PMn^n^!44WSW`2N7(8^w#vWcU!{J!=ZRv~8V)AJ5 zUSYO{Vi$b8h$bsq&{#8@a}0;SL*kQpJYe&~Z@9WM;BF@yMc~nio?TztwkV=!0(jEz z60LNPKHYFL37_EMn}5S7fwXJqBltoFr0Xo&t^II$z=zL#1PV8&QPE;ca28~W(&gMo zf=1sjByyA5pF7;=S`Lij&+T_GZE6`z*KLZ#GE|D;kc^yg=PvNX_!{f3Wq#e zb36QiJv5KPkZqavF4*WPGwVSaA30@$?n>czZI~Sej%ZF0*-%vd{n83NLEkh8 zJv?XkcwJxR>-guufb};GoE)tGv-o2zZ9DvCOy847xK49*C1$*NheTbf1kkEu<5m~z zSt+e6seCSi2qZB%$yjTbgqIa3$q`91TFnyJ33xiL)Sa^>#?}0g52K}pB0!;=^PuSz z!>px|;#v{%Xjjvbl&+4o?@U?vdX}5DKUK|Hw?A#z=Iv!ICbHN<(^9yCNV_4S3FmmB z%ajYtL=>Sj0G+f_g=HmpM^wDc#x|6)xbrb5EG=!j12e&y(q*f3IdaV|Da=P>`JV0# zvMppQST5Fha;x)qLy3z_RYvMux}KhvOV-C74hx{R^wAk(7@8dd7X_E|7-4()7E0+j zd7;G*wPbysHA@q@pviU_4x|*aE+cOTw1C0# z9}yTN>wkrdb4A)I@NaPtOF7(a$xC@Guy3>!?}e>zA(GjW@vWDpvmKk6dRT1UPo<#p zy^fpp<6A7Nla2O4k2vl{>Mc={|8k^lD!OmLGF4Zge73Q*H@$8pAAGOrg$T7ZETaJ? zkj%x;Na2#jCF{sP`-^9j$Smtj+i=`XN#)mK9o3I1OhXk^a}83AFEBT-4-;`oMBW4a z`N_0~!m6=wq%VPZLhlo`t57q9sN_sRkhaAA=Yr9{=LwU-gT@QSDP(lchec+Zuzh6B z+vtEF>A?93fDv;H4=gh=5=b8}+Z?;rDvO1xMKmz7DmEseB21FJ3jt7x_hPHK`rW&Krt9d$><+N*^u3<+$m!J`n54}zAx%Zmj4%<-e)_R6kc8Q~Xg4V8=BSlF7ZZvLKP zY>fXqbO5~W!QEFfAN}fUJi$4aWupNnj3uqBJQ;>VrPfb|WP+7;)$dQ86He7wG!w&V zyW$Byx|{z}SLx8eVY!N|8)-HPEhClF0$m};RfK9Ui0$1ZX$~BYWEqZrGw5MeAZm}bEgV#x z1*?tmy4k6?jh7_SCp)jJDFqV>8}StPy)N9a{Y+?GDP_t0;KPDK^@q=Ck5C2>t{_qd zcMihm8Vc0UxCAMlH0eYq6&-{_(WsN3$b9#M;1yv-g%Eep<0DoBD}41+xlM*NYo-W%QMK+$r@lL*gpmOaisk?u_uS9`fyLRzGSL&43cEa_S zj!QrxHtFu?#X&l^GzYQ@ZUtlp-)9;VoAwFHa7JY~*dvb8s{#eyu=;E#&Pnc6oCk@{ z4;Fj+j;x!YWHYxAXBeFtas3{tXkZN;NCX`o?LnfS>lh+XiNHX_P4Nv%VruD{P4NL&T$BdF~5yne30Q4uwvUV#JlB0%dA~ptg33F}7{X zs>`i|#$C5E#|u&1mtFI5BMRXOzw0;;ECr!5-!1zkh-jSeNKcHXBoDc_wV)PVp0Fn= zO8IVR9SM_xDTKJ_tMp>PLjgvQr z0)FCkyasG&xEa$xe9Jj&+%qb<1if+PiF@=pNqcNRHA)0UryFJ%N-+E3_&vxZu!Q)0 za5{MY7(DP3PvGEvv_Q3tNq2qK%X_QGQw(y7{?r`W(C*7Ym%6 zG&~;k3S~?#R`z?@LpNh`H`L97!}$|;G^Q^aV4PC39l^Na=R=6j?B$R9#-HGVM62Ch zjq^5j%-o&6TLusn%TMNdvX@jFbzu{Dxz%OfF?1hp|KdGm+<{rCUE7zmmE8`V)Pq9U zDx{iEW!{{wMr#v1@$_#Ei6I9HAZ|2=)yQS$CrRoxeMZetBvTG4Gko;6=o*Td2NTso z%lkqVE~c0Hl>mm%n4{U@mt??@n1OgFpyZN2XqTX}`A=uOJ!B?td7M!1dX@_tR1ei0dLBZ92PdXuct!Z(51UIyV4#niLx<0uF^bwa9)*ju{m)%^9vWo&-^3e^;uJOL zSN&qF3wBLGl7ZmZSp6F*fz8-)~sp0;d7R~7i?Y~?(k{`G9FS6500D4@MVPZ1L-*yL&VCBOctSU@gatL&u+ zSC=4}?e2z5MCd`v>jgC0Hjf*-M0MTuY@eKD-_x2CKk3qWxw*F66!!CavfS~1w}KL* z=K9p!MsDmgee7u;!zXOzIx|LL5Wzd=wfEfs@`=4VZ#Cou+|h8>(f^dJ+{#vGF<@Cx zEv-EYzU5+IBtW*ukwmH#>!u7IGT6O;3B@yvk7z(EF=bK|%Zq=;budO-9|s#nN_#Pi zvUYDXp@`lSEN59%gP0^SOb3h)o2^!xTx7Oj^^3N;m0)}Xfv9UJI1!0YSGCjpz62xE ziqYJd1Tw?b)M~D0HLrnz^m2=5r#t&>vDk|NGM^#M!hN+6M@#;%v6YJqcl^6W_oe;T z@xWDJQg@HR7(hn`oubR|VuRFy`QSYxB`oNs;YA=|l09^bcJC*q>LT$E_G2vCHDxcn z0H}v+TG`BVBnLuc;cJY#5SlGlecr0*DMOQrQG!h?T@NC)z(pgT5&cn?o zW8O-`T{Iby2HeEDf*SWAt@q|jbEUh!n*^P4E5!iw>n6ogDX7WwF|TYdv0>sXvZ8c7 zlEg7F-{Y?19lD0J_x21ESTB6sFJogeRoxj(L_^#kwnJ z!)5BRgNwRyu2FZ~<^0KHDFJcD^3$ZU>VdoJRUmXjXgh?As{vcCCx-NL{(X1XYJN?O zO6+McS!vumKtlJ)Sx zM7i-PROh4qU>>2SWY{QEWWtq-?Svqa%s2}Tt1}+Mqo2YP&Cg*HWML-mQP}wK5brWW zlT8&c8ps>ZAw7q|6l)S6FL>g4524iaqm73JF-f+{F|T4AKeiR!^#&+O&8ZU-NWL4A zu2q9UH2UcEesXX%y|*n?iAj5@sVpAteA8fU<=eyU*m4EL)bbeVF)h6kho7Mct0W*# z);h%hJKcrjcuC|>itGd*XS=(Nt}r{IP02cl(x8@oDI^uuwFQt`IH+A!t`tY$z(N}% zqUvUQ*vR{W%W2hLiqbBwiD)DUg6lAsfZP|159%grorku3)j5X@u2EV^oWF`BfH_?K zSACEyvPX(rqNK7s&MczM4XFE;$a6%x+TfYP_|z@f-dw}sDjgzjr;hoXTZuXfG^h60 z{c@1v#br|jfYmTo6Ig65Hk{H0A62@X;?}2QtA`1MRmeb-xa|u<#tQz2+UY{N^KDdP z_7i2+JcTMGXd2G|_42-uj*VYta6}QI2Rwwq7?8}E5zOb-n2s`ZV>&d7CL4U3-wEQl z^;7AV`|nvunvz+ujc(o#egwPQ?HnwggF{P!)ATbj1J!K^kWUvN}=$roh?V!&PCy zYp`X5IJota2voeUOMvG?)u}1YbE6g4FvEq-#u$4*x2X1^Yl{rn5j%W(A5+Ifvf5ce zJp>hG_6}PGZh#droBN|Yqy_R=ioDr^c?F147d&p!1pFN% z7aovi5R8J&PACO(`U@lY^xmGx#=QT5YmJ~9KrO|AJt0JEGPMGy5=$kBS8t)SY$LK; z0jfN;lB>dcE7K3m@hD;g0J9nydET5-2J>XM79-^rrPrXloG-Qcd~IE_2^FeHPK)GU(N>~oc4y=1wv!Q0ebac25(1%)mh*uRV zCiSlSuKzu_v~yJBpo510110pdlel|*!ClD*kSzMS`(nE<_tZjFw^pU*2^tgdvRWE4 zXFQ&ODpoApK7Hs5qWp096kq*Z^H7#lxOUId75|8w!mR@_DEKGu> z;a^3JBaouCI>FrwB9$RCKby^%Z+kEEedJvP*GbBRkCKjD>Qf3+>TU@5Wy1Sl(7S2jzaB`efO(=hTbB;@}3Od(x?A73;Y3cI5Nn_67b zOh!wRO1OaPoj3oNbh*NW0w%u20%1^0x=-Z|)!rO;IAQZuz5u+Kbq6Ql$z__|i*Iu) z@G!V*vNyiDAhB z=9p2oEP6TRqT5?QEr@RydgV@u>(`8YHbe(nSHG@zflAK@Dfj{!{5xNU$jHlgj1f~n zf$Ygl*9GnN<66WY6$_^QlgG6O(2>Snv(?6av}H7*KbzN24R;M7JF4I`@F7~a&C;mf zHBjP7GTF{lD;3V917t4SZibl6K2cj`)T{?&d9jiYVZBq%ty9cqo%HmWq!)UY=P7Bs zVq1^|YTm8d>9ju}ztv+J=iKM|Ueh0-(Z8iX2(RgnlZo>iqW4z`Nj0uR8iE-i^z;&= z*bTom!uk7}VO8KBxbqK(2BxG`a!emDZ5OqckjHi4^Icb8Lx!92K!~Z=uI*PL>Fq3w zPsfLY=Q}Heom-HqKxr9)_n(f%>iI#KW;)62F{L((n>yhYmJ}>ysQl}Ug(a;p24Ll4 zMrb?bg4W@anE5e12LYR3S|!d>0Ae%ptP0;|AwN5NCTkz+1CUH>SO^qF&1 ze=h=!Aq&#=oha;VEPbesweWf{b90RUr+20d6c6QcFylD|c)Y6hFO_%;g) zMY|LNQ)_mRE429QhHNZRM>U{E=^^ctB~gNbf_xZ2$x!ROQ=f`SIM6qGN>wz3Xnq-3AoZnDz5icg^ zeXWpDMPrQ#L<4*wo+=2v8a(+lsS}4#I;NFOmSjENfwma9i0F0zYek(WL{Y>tvLfqN z5AkEa|13TaLw&2NrIbY(53V8-4dR1K)-_#&vzVMk0;=eia^Y&v4N^7n$x2~8;5JG` zu|7YV=9K&5SXVQ75^YApN_mxrALe29s*GBhW_4SjkqPdr*>2DWmL4U!Q~R6h1Ta0? zI^TpB^XJjNT9(d7bQ%G`58?tS%3vZWS3>zK9;(BLWh9i?hvAU1 z7x{M1%Q*I>85g}SAFH5*Awve)uZ}1a@@BDX&6`}l>bqdUrxH_eksa5$mV?%q(%enE!h+S_+;hQ!X14+&Eo0m7YF1Npuu{@Q8F&%UYDU5oUC$ z5mPuPm6l{evDSkVChtK`S)tfh&I6oZAc(S}lf~hN+v!TC%pQ!W;nR5%>GIgyx<|0d z7@WnX7|!eoW;1K-TL>=S9sySEaL#gm?UAVaJPG!Uwr$xsC*OMAxLV(*E4pTRE;8nO zvd-uYic3iJghxOPFf)$;S; zV-Gd^R^@cJMQ~Dotxr{(iXbX{a&s%3irBXsd3gyque%s&FP+!^IWKJGcN{bln|xbD zPw+x&UNv_ZrFz8j@>hKu`U3$T-YZVA`HF4+bA228)uT8&8rnKp|J6I;#9;4eXK(V_ zF=65)JJbOi!h{mM?p20!W(!S7*9nHjvQFQNNRHoe;!_aV7?67pHN?C@)k?}DHHuXA zkv__*28#Vo9zW4ERs&DyvdkMUL3+8n%Ri;B4sh~l$C&oHSNl2q)CXZ5;?3tp757=` zzP{hJG4&(HSl`1~eO bl7Bo*3IIr`w}}X^*V-#)w(~j_1myn#tJaeM literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt b/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt new file mode 100644 index 0000000000000000000000000000000000000000..eb5ed8665b91b02c7a8bce2595f54d14a742fc00 GIT binary patch literal 22446 zcmd>`bx>W)vhZ=Y;O_43?(XjH4#C}>KyY`0ySso|cya27v;2FQ-AN!oYHqmK1OI?-#_|Wn*Du;_Pm3VqkA?ZDC~K zY++|h=VEJ2Yj0xfY+!Cj>u6$c=jd!tY4qZfjdV-+2e|dF1ZRE&JjzfPYk1WedD%ua!vjYNvRZkL2JvF)9b#IWClNeyf?4=cL7BrKPBQnKkmoi3a6KHRd*_ zBkweercr*!wlF7~8$Hpa)O zKN^7TeVVcUyuL<z;Izs5PBA+)i_Uw+Vbdo?3~z`)igS{GC-phXcqbu-R7_N+(NGg zkPCt+vPB*|tm01*Fdi+a3{hOGzXoBrXFwICg9{KI?SVCug&>dt+b2M{B-j7tf&ix* zQJvq{-IEGd_U!xZ5P@CYPXKu-aER`B%TE@7008)K0B@iFN>{&BZ{lq5uAT0paOP+9`AO8+d4K%N80A;>@?z$su3F^Rx@ z&^qn7m(%T7W%E-J_+B?(jehwjC$EQmi?ZJt^jQY7c|>wbNII9a9eK3cF1U{{CAGcY z1k-49D07TC_PieRiYPQH-IAAo)_NmPkAehH?&*%c_&UFp-&;F`hEalh{8yv=xDOHUHDnVLeq0=gRV zxjAau*P2CfJ^d+rx?8nc@z=&h$vaf0o)D4DIW5e=D;s8`8Is6H5gg1kS7BM)=?k|@ zBXP2gcUActd=~%srYbd%zf%?T+psdSvvqzOknh?Oi4l+;pobB@;~AKI8%zYVx999V z2LKk9%Q>^*hQ9q>JQSccHO3R^7cj|HJX@bj`$vsljqyAYLfeIPhh9#9T4p_t%)%1X zAyQ$EG2W(Ix;s=V4y#~UN+CTb*;JMpb$v$06UV;5Ow|_GB?e>LaFej%>07<9IriJ? zLEmis;Dh3s;1L@xZ*dm~dU3GM`7_}xr{i#qRV)DsI*S3xRuGyQc<|{!^d%=pT`9{u zfYt6&GQddHv$jvKxa1M+U2uG@&EoDiu@K*c|LZ=A`1T*h2F?b?CZ-m)7VnnnUH(0F z9k~^HWbXqtbsyJhD2p_COy-bD(&$*o#Wt*sdfXTsYw$3HSMLRhv`dBMiqD6lkCR2W z9SaAzczRs2x93nIw%wc-*I{t^fFwCgLwowGKK9YQvI|okEY^tl3j>6 zZ#q{aji3u_aCPz!>kpKWFu1~5=(-cRfzbl9#9p6wSg?0%B!CiwWp>tuY+3aVG}@3z7V`yWn#hSkms-6EZa4Lg7YoG_|d zO^)ekL#vAcJN_+$@Las6hEB!73zU$uvJ`b?u#64bpX}O2`8XVZ)|S(*vVRs6$nI=u zY62TqW(A%mG@fAPB7r^ zU_pZ+ifFmx9!<5N2y2xJBR9s`OSF|V+O%ufu!%k}Vur;lxw<K=~xM z`-v;*N$uEIx#tM+Q->DKD`zlDhurr-U1TTo(~+vZ1xBF;oOk?cyZe>2k^g#9DBM6`S1iLNRR2e=c52UDvRj#p2zIa>Z zUeAtn!;H2=Qo&t^TNc+{eJ2Ue5F!=tD>V2`zMzZS4_(Et+yXhbJ3wLcB4}kBk`# z#e)k@+(cd<&%`BbKI7XYV}ep%xJ~ffRc0vnMy9qYV(_ugtRQZ+sw|J)Z#pl#ZHz^1 z*EWWsav6E!+RY8pGAtZI(`Y(pl24(q;aB2M9(e)TBT6TTF1&SpYI&22L(Y=qVkJAz z3{)6`z$bwU zS@tH@#^Ols?;pqTy4IjuJyVX!aL$rEm^+nC36%FG zskr1i@{&8$5hJs8wKF;(LuVD9sG!_d#KEuS{DvBpdWqbCQ5r?L?E0(%{T8MfEWUW+ zL~+corQk~D`ctA7kcOF~rwAv7@Ds=Nr7E(0!*?D4IC_y(r$B|$;V(##h@PCx@M|D$ z01Z%wEV+l8Y}XeprxACV%U>fVqAgZJ%^-?rNMoKt3EmB!OrP>$HoDF-I}V)RgbhyJ zkHO+MAOVdez-bp2(fH~>GW)Wi)^RbEnYc^^`{+rm1opzHs^SSgq~HN@;S1*@9Ci*q zG)&7OTx3&S5%py|UBgO0aU1QDhZNRwm?3Xbfw%g^$aWbVBI`2{aS~`BDvW}?`IXdN z_!H_NTY~O@1cqTRHeot}P`JWCa5u_lMX9}`i)A5H#KufuN6)XGlI{Z$cceT4C1amT zn_$s^20X@C+>0Xw8+r|aOCHS_xb+!O_kt&9;ZaQi4{s`z#(_18zkO-;5tIz5f+T6V zrm{8cn-B%zHQWF%-k9<<`@)V5TvJe&If2?yiA>6TmguD5VZ;U*&5_vAz)T-dFRLg4 zOW_>O#%zvsJDZ0+wi4kmdZOEk5`5r4sP748W& z^5`!0(5j9%rM;L!*u^|v{>mw|Rvn7uHCi}P;~OKhEAKdNOjP2?pwQy0FoFLkv|dMU z3&t&$qcm4Cl}2kIn;@9?e=-2tQSZZ#+5mQ#;0l?e|2iP6tDBAp*DC` zxyCTm>5IVGWS1ngNo4or%hMBiwT^CRK2kQgB;YEZkVGk7qvR+{N0m9@*@lu{pmlMr zPh}tb!9c%I=pyHEHi%ET51K=QSExn20?!(?5+#-Z;)2pc@IX$K)DElqy_>&E$KIB6 zTYrk}pjUW7EPh|R)NcOH2upoThI7Q*8??#y+%p{<9+k9 z1E$SDRpPxtGukh`Ta2*-G`Lc4T=QTy`&_p@k5sO@%b7;Zc{Z-+jUDtV$!Q}eG zqXq8+{JUX%P#21yds{54!v39Me0O%O4czTM{#q}eYOXncCq?L-P%@ug`Bs~`+fQb6 zAZ@$M!6f53wGa5I8x;uzliwwy_&mUeT7$50`@X;|O`H9a)~kAhwmOpg^)`diPNpC) zfbMD7{KPY82uP_@^FH?V33c?z&K1omq>*p|mwDfEi%iq3$$(sfv>+rYKgvEDkpa;W z#W4XfF*oJQrynSL#8DWE5rYN^PNU-L`oS*L&~9bdNpVUBG~!4ssE+L9)0)%d3-}Dr zROQ0OC&<(@U5zeA!`@sepkF2#+qprZTh+v|eg+Wpf|m1t`9Z!Q?C6YWhZ1tGBDXou zER-gipwIz}u7QNU<;c9k(TPshEj)!nc6ons#~Gp&*h1Fs{ee*DzN1t+o`obGK&ii< zG7LnRlsfrn;lljs`yPweYShqN@p&ph8%b0FeLBA#Q`kH*1w9kF-*X%EMEXi|W%`nx zDsC(CUO8d_eVnMFvEX4q89r(^@j~WsRmryxfwstL6RMfeoz!L309zt7)ep{01PQ(5EGZcay0l9_tWA8N3j2TeC zL-O$07#j2Gz|?LFmb)oL? z8*#}d&V_J*jKz=oq=dOZ#Hek7$L?f@$eAVQ*cpQ2d0dWHE8VIpK6f7Is_go#!1>`^ z8+~S++Ll{IXfw59Aga=4*#=fUi8!-o3}9er5ab?z8>KAW+m^-g+(qi=t=j>rnQSzC zmA3gN!vs?WcWsSSdFjq8zLU&}^Vkhn+tZWWMc+8EO})ZX2-j93Is$x;OYc_tysOP*Wh>OEQJY(=a2j`>M|>7^ z)ooqUgDllzcch*~MfjZjS{nN=z7Ov^pL9nC1tF9~f+6#z9v-kSwzd6W3>rgWDz7eV z1lL+piY&+cs0l5TU&)N98Cg%ohA?NZM>;i%jVXg4S{bx5(>M_a?0@t{P8LpMy|RrD zxbYmQ5T~~BiQDO`Dv(Ch4~+gH?Pj0B3xC1aA-j%o_A}uFE>CT9*7tE2+?Ye4e5_NV6GN8h;iO=TII$4I?MHtzqsQ*!{s)GTvJX`szTZsDhhF zm(d{{zt;;dpa{`B-9P2D?4cs+o@9kCFKB9sD)+Fwtc#vv-QZ!g>nXx~Yu+nhKVagG zHu^18z@I1VyV&s0A1>bva#{!(bA<^p$X0kaT>`f@8^P>1HP`6B!ca7P*l)tr`Kq}P z6tw5_Nj>*Nn_7hVoRp2wTGS}#&zN?KGS!{-CxWT9fv$Jko1k*0BMb@vFhKlwwio8j z_Bxq3zXQWx>u8lXTJeVdMD93(_jqs@Ro<2)s5}7m;Pz_-H3?A_sgQY1LlzPr+NPeW z?m9PoCq6$2CTV|ZqB~o{EKsIR4O!2M2`$cC3mu0pZA?y4B|AF(qNxXnZnec?k0P<7 zuDu0FK2FX;ip-D6NKil#u?un#OpDYj8aRi>Y2-zDof;aP--y$rMvJ0RWh!#hD1aBh zx0iY9vqXy`dKaUJDtqsOv}7NnR1kzml;^Qn-P7m0#p#bW&22Q&Saua#nEUu^LEff< z;@kTs8Rg&diuZZP$=Ti7MWj1|IC;=)v%NBZr3Iy^U}a#2X$};oKNP-R9dkO{661huk0lSVs7F_*%zlL1u%tt~MzcC=(e5;Zl8rnFad;&D`VpvkrsbwkZ= z7Mv-dWj&$ncu%i=ZR?MA5rKuxp-2?~P2r({RC=CD z7f3D_4V)r}5Xm=~O*A=S0l{JHla(Pbp!Miaq4ixcLJM@t>8j92l#>nxF6t`1kg>vG zn!XgpI`>o5I*@^YN2rh{P_cu)#8IF+Hs??EX+m*-G5&}lw+R+Mkq3(dn;e~gT7e?` zBZ2TZ)23Qbxx~x9xX6;@Sf}PA+~s$8ZTYvBvDLEr;(9GlRA)CWoZcw{6!wkr8uf+*|%(J7J2bASp z;fqUz>&2xDM-We4c<`0*XkbLNwJ+Z=d&W~ypE1VSG&PWyOSUy!QWUQoX7U8Uo5$O=7rq&)fRXxWd zPAH9g`=RNFl--9~Yujp%HPqoYfio8=MiwHFgQ1WCPLYO|iL{;J`cNdOaKjPq)z`)(xa4`{b>kWdz%n=2hwago_;g<8Se1Yyv=3Qy`5W}{UC})At$WMFB zsiJCi#aanD`xgZGH6-^j{g5a_2z23@c;<_u-QHOBarNXUOkW>j4u9Ot^}xwhnt9R; ziuE_%>dDyI*-}Y)PDUMFaoX#_0nBg+k^A$Wq~jaieuI( zo|=8UZ7sS$>$k+x&OV%rohWTHN8Z7ISaRyB@%8mRKmRcyb)d07b-+g*Agio*BimX0 z?U}Fqhx`xKHJI#g)RqIh%6y$Z{El9_FEa-Qtd-+^<-S|bzL>J?uwD7|B8EP5S4Jeh z>*g#RU3W{G8|`)H2KBdko^xg9A8R1AugTu6Vk#(4`t}=gSw{FftN6Y%;`Gt*AA2cp zsNw%0%*Fo0EBKFCH~4dp;u~-YIrol$xdZWZ${>zO{t3_sUrmx8f&tWwV6(AK5*|J$ z+tCBR(N+DFFmbSMj3+L@r4{~$Mj7kBu`Fj%IxL=Fid|^ieFG!hg>76u{>sHvWc@`L zE#Egjev&I93K`cXXdER*c3LpDC$JZPDyv?k1STjaksGd&f&6ocG|6|Fq(s~>|FDF+ zO`dd;#E&-52v;U7QjLl1i0X6UFi|1Z(tA1~-?s##K0iJZX;xqGoBFHn@p6C^$PxjT zoYhV)9KXU@ID^LadXGDW^5L*RH$iM*XT5D(b(BZy>k4+G&wqcJ6m3sn)3b;Wvj?Ua zEu!B&2c9lOr02q1`>r1DMdc>M)rd!mFTUq-&W`Ag1O+#*9Wfz+u1IT_X&vfw3ijxyJN33;#0ix;=V|L!0Ii><$kNx&1 zEJnHsu*>D#gzqf(Si^d+U)H^TO>8<8af6O;lbZiq7yf(F^jr6R*PYYc016L0JH$FOd`0rp6b5uZTb-&>g>M1^RtmhO)CRO zb)+OES8m{u{*gA%aP8GJ0Q#2(2a8S01`YnwZj%T#eXFd%F~ zXwnDl-RA9&G_!`B_C@{z^E-;4xN=c48;XNJP|-6fr_he;XsTE=2wY#2`M%()f}1v040QA=86r?X zH{k9~?umNpU`37ttE>2;gB6E1t+-)$-Pl!0RV)r z5m-G3h~;Aa36P-H;Z6Y+pb=yK7bs})>geOpwP6Ju)9WnytP0^W7YPtU0AFCpWb8$N zJbLDeX7FasKW=`#RxP~&>x*(4YRs`FVUN?`b^}7J`_vmTvNh%!?IPCj;hV%j2)Ov? zwCBobYB*6be~+)dp9Am^dhZU&k3~Y|8!lQ4_eJiftp>!2JwrM}3u+YQqv%~y;J>DS zNHFQw#>F*8-A3Skibf6EL2@ICSU(0M=&QMyky|g*?wzr zk<6M4{Lm%+F6A-+L{h$ZVCD*eLe%4>? z2hKdnP{ftzQWX`r*-_f|jwYWf)YC`8^qD4@{P3{O`Hb3S6+K`88AjevvgWq_MNm*U zUzcOQWyTa~>T6Lu0~mNnaZ(&*H9^a_t!bFmAlOE75hpeJs8rq=S!ADU)B0Aj6N9sn zENT{Qjo~&`6Q6yBSfe`?K&m4|iUfNh#%tj!v0={)!7t!skgR+k$>TtiwM+Az}Tu3Vp z&q=^gf*JUAUJ4?(m8bkuG4kNg8uu-7aM?l)v1KGpCglO3pxus)ufxoMBYoBHdW3{)goocejFR>bDYpElib+i!czAvew~(lyrX ziq?U92WWw_tT9?uTiMX%<}k3uYluWnL&kKNM?m6S=XuO@I7wrPdxJ?{pkKiVut$xE zkxA#Dw=;8^Ug@epacxh`Dt_?V>d6LH+H3VZ`PT(%a=;-_=tMlQ50z!t6b{UOQr4QCxQnuvi-9)X3M>+&mbt`Rc` zeEjqwC5EV!TUIvBE(UKH1`TJMA)YtM4Pr!%uz;}khz>cPc8W3F z3||cm6`$;-&kT{BER7U*>2j&8%>8KCJ-+qjQLC9l%&6%w&1&R92SrLEj=uEF{&>1^ zaCGM@^~ehF(geJ@do&@}DdSf~qJca`clJtj3)$uNaHxZ}t^Jdm0LM`RoWj=T-bZ#msFLXUYOuQB15327ba;n%Gre$MMe{I`UL+?6fNFh;fXd35JH>(WGYgRK zl$gBg@(uOPqmyG}=<`%K>Lzze%+daS$q+%DAZVHIt_8Hfj@Be-OBe$!PcqIg(#@72 zl)zAqJeF6#9VD<@P1u$M>ZR;4v8kvIy`66=NDDroDV3(W95s8TRj!S8f>`e1b8tEy z@5!42YCa`d+X*rvZ5QWqjUwd;nIdFBx8409jjc$$kQ8m^T(I~1Yg(DnF7tuIrd1WKu z(q1fl9O?SUP@w08zpbMUb*oU^KrAV07?zx4H;8dv0kU8yOk;Piw7m@}Hb;A5DdRr& ze5!p1cr5md)|tn&G;;7}#gH2nIiys(KYgNK7n%47REDd|bVBGjk$he}Mi5MK_aN*I z3#MLUipn$pSdH&DVAC&UH%JModO~8E$IN3ev03Fg{luRFjc~I<(AM$_1L8sg^=T}L z4$Bxm-ncvO2d|jH4Jc&y*m9%AcVYsM9gk*AGMs@^9w6AbT71Wib3-e|URaDFFcIf% zH>c%^CX2P>?;4|h)}w7g|x zwPQzp^q7^Jj?%)?)q@6n&eNHk7XmeOH&o$~ zZlW#86-Oa49qgu`>mb<${8g$&dT~1#JmIGYaUQK*Fqmvuua`d)HSM#zJTD&@jF%af zwYB-&>hQpPkgG$-32OyvW6ABpZb}*=a^ZuwT47n*Q;7@6*k4G#!;od@<9;L{9$7x8 za`4itb03F0qgNu3skI`Il0F`BBwuTH65Me*DPAv$*f&|X^@G-`PAXh|_*m=@&nLg_ zot_Pdrvs{+&Y@P)4R_e5tZyc}a^c(|RfTf>alIJj3BMr25)@vTndqgXeQ5WxbMK|U z!;624&V_EFcQyW{^>)w8z{mH|*5}3K>4k@O=KyW-6?TD1$~OCy>Dy^IKy>2L{f}Jw zuO#J2$f+OLHhEagUT+KaeaOk_sBC2On8)OFRG`Y8+XQD2BxZ>A$n7mWgb`^1nA~v& zyHD;J$$ed;@qcaycXu-^OvFd`y7ZdlBm$)>eNs1l@PTQrs>WVjLmPCcu*NVBPh1ZF zsddj_Om;;elgOcf=mN`0#X8lwL4fG2HI91EUQzInj{pP5_r36&9fyO}Vk`9=y zObGlukZ%&X?PwNt8_pE1pmwUPuG-M5&l^k+PWAEChU*HL)Q5``2oVbnpdK2-jEaer%|hQ zI?U+7rBG}Qu}&v$FNteLcvTEXO2R`=BQ+w-+#)%N-&O(%66$!5UCUmoAM8jrW&RIX z{G)V3$R_zt@pLXy8nPjSmKVaqb6LX^>rkY$kksNW?8n4VP<34idSBnPI$@8sj;~BR zt^1(dU*$TlhlWCf*k@dTb~q|RJ3?)%6!J={wi33dPWkwDHpvDp4k=#U)W;|xtn@)s zUOCRVVPbPlfUtH{qBo{iz8`wuwRdRHpt6CW&AtH zG4T#L2LA;)3SyEyE=(T*v}$cq2>hU@ZclaM#b2Z5weC0XXqKM8WXE<;@WutWG=3O4 z7C<&nv})jCHf+;Kj@@=|_@Wgi-`KpMD#oipZz4q0ivIjLA!uE}xZu*9$hp$d`4g%K z3@$QQ_-zi2qzOJq#jb62g+Qvb31y2WvdF1FdYHHg{Cb^+qQ=5Je9dT^NUcqOOn0d) zvOaTAdx9%QWoRlo+TDa0T2FhBAA|9U;$x^NG^_1!#!~qzS*YKv1u_0yCZl)7%lW6y z%1wpl3HPjt?MGF`N6qWPLHoTn6~J+KAUDS|3KFyh6c zDN6y52F_JRMBfTGnI0YD=@|ql7d(fKC|BeiL=P;zEP6i?z8riUGG`5NN@wzty+Piv zjIk@kHfX>rmz2w0CazL*4D`kOc~c(IqLY;&CP_lNMV+}{cEXaTTJECH-t#p&waEVUUlGWEC61OIQd`ai)RbpM6+{`Y|p%Kw5?e?TI? z0+TBB1kgo{fNN%x8?Z8#`4?EcHQHP(A`G&DG&z@~DHKU4xOAspJGtT&sfWHVo8WPl ziz-O8w;imXhjEiP?;t(u#vBbC5AJr;QkI+q!4(A-I^7VDj7tIQ=gbcl`j^d`0+s+J zQ|S6vxWlowfz)6Gz?niC!M8_fmnl-G>^gngiCAcmk38y51q0KFl@d4$QgxosLKQ9V z9+fv}Wp}kuDVzhFn#q282((VOkSb?zbkQBX3O^7fD;RIlw){@&dcNM8t&-R8DzDw* z07zn25UEbw0;-Iq6X*bB&A!I5K_AiWJgH6}m^#%OY;lyGP}J+&o_hPi{&s5eX#~$qUt=xYYPY%T5tSRxpjh?sf0^DR+7^|wPC6} z#0O+1MnmjSetJR^_`-H%Q*9Iwga@@%2;O9U9>OANa($@`Bx@RZYq+SY=1={-_PU=$ zh{xh?I|1v$C9NZhh1tRQP1r30s1PTiD_JvNazx93#fq8~E7;IYGq@T-O{jXpN4I;F zKBWXBt7^m9b=uW)l}5|UQnGUMr_G+Q*%&*}b3)Aup=KdJ`5|u?fi&0Yw2)k(Q=ODh`Am8ss%t;oxstX&*{JBW`9p0(=VyQO=|-L7< z5sI|70E5x%RF}LT`E2=fJO=Pidbh?UTi+zt8z`@sVm+|is-V;*lErg_u;O#cJa{B| zH<1N-*d?kTN`%6xn~{A%gbH=T-p)uYkKsl{eTXbH@_EgN`~cFi8L}Pz8Io3BwadzK zUogo6!TeiPyCR?kA^=de zs7@w!f1I-ejzK=hmt`z39x;h9>5DVOqUP&DFKBdF^?>!&(-$!^XFp9sPvs)@oDxUl zUv@_;bU&)LuB2vb+@<1Yh1k-^CCa6*IYT=K>3H^ar}<%T#Ag+J=kVx==^VTg(NBx0 z*gU3>8piIH@pUMRY!w?Z(uzflN}tyLg4VbaI;z10eCuYjn&d+P*(5YByhsTqMQDqE zz~R;~)f&00n-z1+F8L`Qj>E41BwJb_xP*msB1}FB_rwJ1B@AAF6l$gpLpU{iy$lPC zAE1qt5WjWYIDmiubg|E<2Kl;FU8S{2I_jLrIZqW2)v4 zZ9}ba#a*8m57Fg@KCb+(kn7iM6z9k`inXbPwR?U%ypDeRsxVpw(45>EEWG_@@XI~1 zz+=_+U2tYqc3p>TWXp z21RuL7K-5h#RTztJhJAP&iNjoMZb!)&6=9^nc?WVD0BR})*ZlqUQ~&IA-;Nt+xrF_ z447e2HeK2&&d=q>;!exLRU|1p8w%5!U%XcXk+#yV7eIZG!QeZw*V6;bPr9ck`-TGZ zAu1Ge6VlK0YNhS5Mt~$}l2*FO-N@e_SkS(wcXOG&|nS?6=oO@V#vdWHl>s_@K_Hy;&0mBjJT zD2z+rA25w3E&wSELTrG>s|?V$xRYU;=}f&4&5Kq9Q6P)!Q9`t|a*?Ie zhCJt8Yq`Vz%BiM`y8^l$hmy2jh>ZZYwSb&a7S;=9p5Rb)9h7x|MMz~c;e#VI;rEDh zKe^SlYbTXnnqYyriPzW?xMXa0$bdZ_Jyq|joL0lya_CbVV(m-ehb3GY0 zPlZlhNgLfM!16ZA2hsFrlWBhej|iiTiIgfr`RC#FCe*9|GL`(o3`04g>g_>@%kl~x zFYFAC#$eL3917|o9mMpD4Cu>p*x52AZ_Us{K6#E{^EL&myK4Rw@%^v*TpC3mLqdNpl(anDK*+DQ{dYjxGR z?tJ?U;etK#BI^ruwH1W7>#8QM=ZOz@xlOWhvWf_lVa7&d`-pu6x#1EXfd+aPUH?Ue z!Bqmzs(z97p|P4!5=45W6Y*-hlHkmKbEd}-r6$!CD{$0G01MroY!w$SuZK|horw?J zy*cF%$%z(mP#1o?A|NiOr@BT46=omIvXDP;2AU?WvOo-{Zh-D_^-MG4rR#4U_LLHb<{V z_x3kf?>=uvz&4R_OQSL@M^3oSZ*WeDVadyPZ`1P_0;C+n`t|X>+Fy zOYhe8R&h?U5Aoh%As ziq5vmR<4hu{Y`z-Hg|AlX-Y@;NTy$r9^zbR>HVV3Z zdCp1eAOhTnY_vqy(M4`$(WjZ$`$LZF>d$HRBXhcn$|{E^ zy=eJh&_|}{9uRVaknp=W?b)fWfEy7c@L5}wQyvCyqex!l& zQqJ}|ij|9nbSnA|TI8e|>j}TsNfN%_Ij9st*7W)!9hi-NkbCg7W1#hgzWf6e^Q+UU z2|A7tcswSOiVWVgYt{|4Ow4kZd?HbAIBntl8QziOe7BI^0t`38A=}rXf1r{OmyEdY zZ$2Q~-=dPg>^A=+X!3sK_BT}W@9zFj;uHG+^tJp)kP@B1V7KyiqS*Bn%D;@DW+_0> zagyL@nr7J8ja`W>5&s#vvFBld3n$Sqr&uN}VhK6W`N&HBoD29l-_uO?;WvXC965Lu-GznMVJ z&KEgFA~dLsxBc2cTa-(NgjgEa^t>-L^2}}pjsR9hi(f=_EU~;&tJu*UQVf0)>uA z5I-GGEOjXJ$)Wqwj7q5AEj1tTg)E$~z(h3^hY^D!ni7T)DsIu#18+@KL8SVDk7M+l+nwDa%4#L{!+2g+5nATDe zL{Q$EGjI>9OlLGH$JoOgx@DodqTyBqS%tVC*Grq0gnOIk>N)jqo~_AFqzo9)8bf>DpA5S_*VU%l|>9 z@v($hWbWzM*R1IQ`rU4?=-McBz74>dH{1Q!ocpiv!f%7;e;SR#@n7n7{{%h%`@jtI ze@njq9MO>c3DFRgu>S$kwC4VXXei$hjVJBUwc$r2NB!hPWfwv4nV#vlFh&!zLO^N z;=2k`aazei6Vd(y(Kx*$8q8maCg1wAh0r^qQT+p=xjWx*Px&*V0sI%D;nZXLkBElq zABblD4bfZzocX+NZn@s!KK)xnGx&~ZSo2(r{()$$Cbj;6XtWj}o{sODx;j@O{|3?Y zkyYV#-GnYGT#qoi)FLNs@r`3EH|)Zt%#`~{Qhkql)dmWbG8i^jW&K7~N8C0KJJMpP zUL#E&1QCIO!4M;aj~-V$q^JwYR0#zX_JsB)L__k9X!Ps}!h^Tk@gv34h)&x9>tgOi0wJ_9s`wmnC?_qw^OJXUUovh~}U`jREP<*$Zz&In%~ zsktfc0SUZf;qr8yAylxcv@CUl=sFamglo|bJ;gDpKnEaNJZu*(7u!-CL570F+0&R&tBYv&Xczc5Q&NHRx0~u zxHs%BdMMTLv~hxvY{WvbH~GA(9;kEp})1={(37M5t0j zPcLFfgb*G*umebBNZNVjJ{z;6!PGPOlL;8^6+qL(0PKqL{#wTY*EvXtpGz6StQ&&l zzohp;xl0<9<3WoYo6#B8R!gm83>Q&zrqOl}3?6^c*{FA{A9jsE@JH=q33rJ+Pp}N< zDT)3`Fi*C|>1K2tOx_J6RswoQN}B)+ynI`Hhvk2Bx_q8-&nOSGSq)7R;j>E4&}Oae zkL1vt->IotRhyOUlQCnMmm4^*DWC?lpwb1)uGk*RK3ttunM9EUD;8l>{q$t`X?f7$ zJIj-|KT34&R=tj)@mb1=2$2qe#eq)3eqmp2OXKQdydFTU00j6II%IJ8$1XRr!_(I? zEB{ceM-8g>*!1L?9I91SxCyMS`M-@@ISpRuc>Y7&%03uWUMN|WbN=c}<`jE;e!Z`A ze;l~rkU7K|N#T?VV^q=)Za$r_N?r&|n$8|$#I^bxtaJ1LVD+%D?{O=AZ*ePfHO8YJ zU2kzKPif23Z*eQG?{O>2?{O=c|BPE%F@BF*;USTXdn7oW0bvmY3umO^5qDsg zj1E3lcJaF_S?JKo!1sf$Rd$v1cR~}f_FP3q#cCKJ)VMG<(wOaoi}$EE%M@sS+4{9I*iz&=e~&2D^!&9ugue`s6_*qJYG)^|gAtA;~2X z5!rpd(SwrpIgaXr{h){ghg#^x{KRP4J>Vu!T!`;OITw~hS1pJ!WmR4OG_~A8aOX%5 zEdRFH*~6qJ(ZxR<#zMTutcJ<$9s#h1fm~ul=<~M<7}tKRXT853bl=smv}{zxv&!qZ z0YN4VwippA*Um2J%naX~@qnKQ@Kq#)pTAl&u4M?_CpXQyzIPC{Aco9al4f+jp)UL; za9Y+$*n7g$!+2f3x5MZO=Wi`!v5!;dKU333+C&EO7KY;qHC`xV06q)H{#i1|;5LT1 zWcr{!cE4!g7OFjQE4!|V8S4l6b~!!9DSMAgRHObQ(4^c%JYn!CC(*2lf$0ZgZWO>p z59HcJF)syr;hue8u#@?@*-%K4vFoDcoTBy!xS$3#HN=p7l$gUGg2P|bOZ z*$?zDdm9jUWlD}|HA&jWC%Si-f((nlZ8~u82DDRv&YdZ*&9I(XNzoE4XH56L`Dp91 zf(129A&4TEM*>hUNGIO51)kW$JHEXXJ^AJ*Z6QYH<#BO(62v!;a@x zAL`XNE^Ti$&peq|6Z4PBSr&*jJ>rBb2ltaU^A5u~=pMQpFo+-0b~&|s+)xhtII2pO z*qT6?c)MCgVxB~ag?SAZEg7n2o+2R+bGxbaEp`LHo;jrt?mes$U#--634egjQ7mA# z#xm6L1wu}n-+HJ5S%T@g<6LHSOyx>fF{*Am>A!A~2QTuA`Y>-3O2gO^qTU6a!8nwN z@wtaf$0@CXQ?zYc&CSGG!*QNw5D>PB`naU#C<*W>E36f;O{?_h=tk@Ys|z^xPw1u7 zar45jp4j@U#N`eIu5RnYTc>i!ZWC8ZJ3A@xb6g|y0zY)n=KCw0CH#^? z<~^L{^l$OZe{Oz$4{GeJ-dw-Iw-6Wf(}oI@U|W!t;BHN*;Ak6f9pgu9t3(olVTY?z z*Q8fs_IxeG#r5MeAJ@CX8tjcuR>H-A8tvhr^1M4@fYh>p5lR9%zO!DrUDl3>iWNu* zdbQ=C+3_QmLa=&9I3yz2=^9OuZ_3KGVCAM9>QJ@Yh~~5@4cx^VRM3F4`Cra=-K~0D zNA5z-PJ1tT>2?z1>N3W$9P@PcT%G( z`X##8t1Rj?@R7dVGVs7WDQAe3*r?WxwX}`Yzw1+w{z%KSPfo5Av+gfaQ!$E@muFYH zf)9RmHb}%+zs5G`&x{Xsg3J+dIvB^#ANVY>Jb^kRGL1K4vSO^?nUD=0MRIiP43WI* zK-$T*udljKwo)rjuWXc`01%?ZIn&E=P1D4URBiAeWrFMjNbIdvz6th?2{q)5s!TuS z<}^IX|ABMAdmVpW<(fuI=E`|-k$JQ|DhXE`302>nr01!l11<6$>hHdf=LPm)RxGF=MNUIt!mU}s@c+(hlOo6LXFQ_=lwf;W8 z#G!hrvnM;cN<;EB-zQ&3gi;-%9qI8TgMR=g;+jpS|ThQ_XMX_D%1a53dIAq%W#LW{ z-`lX`B+q68=F4XG6`Pq^Iq3!MtBkPMU+zrL68WKTJ8(GflYJrfft)&mjw-`&1b2YP z;JHy!)25|+gPT01l@r=DnWnphTm5{(y~PB5)#aIKpnbyIC8`l7-$+9sl(@Vd z?!)MhgSaV68tR~VCk!j*r5Hdrs&#c{n)A!PF1t#axu8Q1n&B@lrn}&gragPAy3@Ek zCe;jR*AH`b&vDJfXT1htRzCOntol%4{c0}Rg<&5`jRiWHtUr$A47JoKpv%abVli*} z3w|5tq33a_tp099tz6Lb&rCeo)~7Zz1_GjIH4 Z0}4G>>UMOyES2StP4{b5qUgMqt1sAMVI2Sf literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt b/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt new file mode 100644 index 0000000000000000000000000000000000000000..113980aa769a3790d01cbdfa454202b0123920ef GIT binary patch literal 35048 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 F@L!)TD6jwk literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Client Listing.properties b/fineract-provider/src/main/pentahoReports/Client Listing.properties new file mode 100644 index 00000000000..623a419558c --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Client Listing.properties @@ -0,0 +1,10 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt b/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt new file mode 100644 index 0000000000000000000000000000000000000000..c57cb3d17726c8a98a9477f780c7001d8b3d06a0 GIT binary patch literal 13698 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

o=op?OIMMq>6zva;$2qt=xSh-q>H{&_lbx7I3<_ zZyRH3K3~|UtPd-&?JCrBeFI9LK2)mIsz0$7znLE>8VFYHl}wJJH%2*Q&?jKio*N)y zNlfWYb5}Y|RBBCMN$5?ju;?godXvP+P8HeYeoyUH%~VZkY&Jxh>DOE90+a1B;tCf?-BV*{cV zHYUH(x|E8kII>h>WL2Ih0s$EWfN@z@2HUyHGQek;wb!>?+_2emz>GEXFsnJ4X6QZq z2mT@ks=o0r<3>JHMj*gLrZGi(m_qewP*kv)!F1h8n>x3i6Ay)3HtbHdhn_Xjxztrm z-p5zjT=Q!OXG5rWS03EHI|w)`a-{X@R0xYktrQxyWWJDPe40g-mf4*9q?1 z6O5GhVSL}Htz&|J#!jAEQ-Q)!6SJyqXgPfHaDCqOd%R36i`>qyJ(N(K>SqWOs9TK1=LB0^KShj)k~xi9+yE$w2*6uJ703 zZv>@H1r3Ex#eG|ws>;I$aC6mT3g65fd&q|eQ0y|2}1 zy{;R1J+EKviCv~0;l@7`B*u?kYd5|Oo>>E7_cUV%xXVFM7&yJYDZ= z%Uhis2!b7#v^@vL@7%5ga+EMLf7i>Ss(L82s>G2GymQtc2gP4rykQvv?!z+415Bl5 zZpH-NlEUGpP%6w^q?l=DPK`NJ3jqcu#ZS z4H(A`VV06B+Zgj`jV~Oumz?AFa*NG2k(n{Oo{`_Qx1$Q`5i7$t;l1io+>9gxT4^AB zWxfce29`KMVv7Zh&y4RkeWK@ZBgQ%BUbbtf`5{|0OJ)m8OSz?*VSJb|HOv%I--NUu z_V6C8y-R%nwFi18>ZMzW>}d{%4FzJkcNazbatw2cyUiC99V<;?)Ac313#L43{kaoh+@PuQJmboQ5(jYkLn3$~7~JF0vAhZ}8e=_-fx zhghpjiH9Pw9NEWc#fNFj41k$@HYbG4MpzO4DUUQS?`XdhKks}+i<0ChKGfouN}

udsCv_|eHNi-PLb+jU|yC;nPHyRD{_&I7{POf zZLw8LJ2^V3q&k?>wLErz0eOoGzF{CGA-?8{djDf=^qScPSn0dkI{nHe9cin7US>t~ zny5sq<(~qM`R?9UoI!NNdIT)4ap_h>vP7DQ1Q)iXy*Hnf4?ojPt^U!Y?7WJh@*T(e z03iq7@JyBtP8pBD55leSOP!)p%gMTs$d&I>FE?4A`-NW)p3*45vA38aRh`>X+6}Cp z#+fO!kcVBy#<7}V%RU58790RWxLN86OavSwHBHvipK=?eIIPz(FoUQUdL*LUjvHdb z9)=|dDix#UdG@t%tij^-yrs2Y*kRNqg#ohyQiC=L zg9`7>H@_}9aaeZ?gWUQiWqgMs=j=*e6Yj0hOS?G~Ucy_e1xUSW=G_2UX5P#$y~%_2 zBe*;K#pR94iqN}rc!Pbr?^sqfyKxghcw%Fapob^xW=l#kGmWWILmo_(1V6t)17j=1 zyg!H32f7UEyBfnbv#bixFGzV_9g}QW2II5X>{xYl%YP9VhoOS0KU0w|Nfq0+ig#=C zjomLThxjC6Fsq8B@N_2BoTA1}I02E2fJmbnf&F7yJZkvUYyrgmu3KPDVu!lYYh$CEy~ z8m8n@`n&AWTSjiTm0?s07@&(J~gRC}kD!KF6sG&I4H-nMo zM(I&+^*ho4Ub9W*^&E19R*(;TXfQ@BP;99FT+mCw8>Rd%s-~J``pR90aEyIpP~VBe z^2>c`JjlV}meO&4%6jBN_{^Z45pR9+2Y)wUM|hKAD(3qcvM2Zf?P)fs_|py6#!IdC zkB-~%);bVODU3^95M-~e5Y}*_1XDR;^%$?!ch8wINwT27LsriN?>kDPHH)1>b{@0GBgUm>`kIUYq zUq%S&5PO}`ww9+6t?yh5-CI-pvY(j1D(bexc;@!Ob*+qOF)s(%KK)4Wgwd65J(GXr zm;>}?#x>H~!mmO1am~w{J8~vX6a+g+i z)A1-Kad&s->Hd~P!8w)Py~S#JXf!i%wSMi@>Qi>=N64Ic#ws7*C!3MZJjPS}?uO4a zU@+wD81*RJlwf`H!5!^o#>}cc%w=x)7wN7TEt#Lkdgi;DJ23Uy=g(=fY~z@A(`sW_ z%p0i=A2II99Dz*Iob73s@Ym|Y9o|6|?N& H6QUHLr7JoluRRA&}{AF%O?Td<5s{ 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 Q#Oo*I^$py4eG~xrUj=IYkpKVy literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..8f1d7bbc9c4c97e8329065b8021b4138fb866026 GIT binary patch literal 10456 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 YF_}~po*+Kni2m?feqbFiC?2o=AH6!7%m4rY literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Client Saving Transactions_fr.properties b/fineract-provider/src/main/pentahoReports/Client Saving Transactions_fr.properties new file mode 100644 index 00000000000..e87c59448e5 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Client Saving Transactions_fr.properties @@ -0,0 +1,18 @@ +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: + diff --git a/fineract-provider/src/main/pentahoReports/Client Savings Summary.prpt b/fineract-provider/src/main/pentahoReports/Client Savings Summary.prpt new file mode 100644 index 0000000000000000000000000000000000000000..79888b06fda596004a1563db38635ec7fdd11350 GIT binary patch literal 15945 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/DisbursalReport.properties b/fineract-provider/src/main/pentahoReports/DisbursalReport.properties new file mode 100644 index 00000000000..df864a8345c --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/DisbursalReport.properties @@ -0,0 +1,23 @@ +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 \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..6366070b298816c78e59a78947269584f94ea5c5 GIT binary patch literal 8515 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic.properties b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic.properties new file mode 100644 index 00000000000..b5a620e9119 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic.properties @@ -0,0 +1,20 @@ + +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 diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt new file mode 100644 index 0000000000000000000000000000000000000000..db0e39fc9423130b577f147568bb50d84241583b GIT binary patch literal 35580 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 F7yx-1c!mVd6P_L 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 j`}5d7r_XOGBKVKVq$~&fbPEsXpmctN_q%_+ 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 N|5om!5<>Ox_8%Wg$s7Ox literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Income Statement.prpt b/fineract-provider/src/main/pentahoReports/Income Statement.prpt new file mode 100644 index 0000000000000000000000000000000000000000..22f2e9b63a3e8dedf252955cf41b2ab8d81727a2 GIT binary patch literal 17202 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 BItTy& literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Loan Account Statement.properties b/fineract-provider/src/main/pentahoReports/Loan Account Statement.properties new file mode 100644 index 00000000000..e7113c87999 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Loan Account Statement.properties @@ -0,0 +1,20 @@ +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 \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt b/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt new file mode 100644 index 0000000000000000000000000000000000000000..ed06b710c7bdf342d8436245272cd82ff265129e GIT binary patch literal 7694 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 BBi;Z2 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.properties b/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.properties new file mode 100644 index 00000000000..f55ed9afae4 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.properties @@ -0,0 +1,42 @@ +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 \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt b/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt new file mode 100644 index 0000000000000000000000000000000000000000..f4b6ad56248e50e01e885209427c07ab04257c49 GIT binary patch literal 6795 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 Rd;kDAh~F1PSEl~d{2$CWR_Oo$ literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..dd7fbaecf2ff71bcf692bec19c8fd9d48a49fc82 GIT binary patch literal 8131 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 HD5(DectH;$ literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month.properties b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month.properties new file mode 100644 index 00000000000..5751fcf5ffb --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month.properties @@ -0,0 +1,12 @@ + +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 + diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..0baa28881f024a8c5e4ec625cf45847612c6f881 GIT binary patch literal 7965 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 B{9*tA literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal.properties b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal.properties new file mode 100644 index 00000000000..915d7d6df65 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal.properties @@ -0,0 +1,24 @@ +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 + + + + diff --git a/fineract-provider/src/main/pentahoReports/Loans Pending Approval(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Pending Approval(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..b7a13299e7eda2b2fdd1ac8243ecd351b555e7d7 GIT binary patch literal 8800 zcmaKR1yo$ivNrB+!QF$qb8vSFfdIjMaCdiicXtm2LXg3o!JQD?6Wo5td-o;x{P*0N z)wA}j*;RX2byrpQ_bJOkLLq>?%CvX8IHb~~CEd&Q>wtS1HWoG}PVROl26lGV7Dfh6 z7PbIp7l1L7oe99nz}%L}!Nkti!N~$(#$;q|;OJ;!r2JwI>qQmrm$?@U|0mclR|*p9 zB8)PMlFT*+01HzSM<*sX8|&sIIY2KdTF5nTFmUbDss^p1i=c?7AG*AyIxZZ$`1x_< z+h)z#P^|K`Zh@y$DVC$ydE9nHoU3q2=h{>CP~*fOKiMjFO9!4rh)_R!LtW4qvyw#C zT%!8|q%;uIp^g^O#EmKDilVj?s?lXe=RF$ZP(Ih_Br6GhT&EvdsjkNt%@rw8LAFGe zaw7IfXOBT}Kv@gmcTehN3klo>hLxqs8Jp%FsmommG7 z9!jI+bKVgxvkdPwd&QrkCkjWr>ZfgORl(jin-eGt0lqqd zWRi_~=lCqE4Kw)n)3%U#cA#fqK$HeQ0CNP$$t(xT&U@Kba`iD>YXp*E7B%}REnleWKQ>*if^RYT?GmgSUDhML*?=pPr6(=e8J7`(P&4b3flKjR?uj^R zJ66H9@;X9-6YvpSIdip%6;B?E_o)|xQmH5;(|ZWStwQ~aV%2fmbopR6g@XaqOrvz=Uq*P)al5zM9y5xKnyF^ZQ z#{R5TsDq;6M_kKDHi_7m8;IAb%DE97c7B{^(bMu z*WF}n1bbJ`Z4Uf4yKy(#(S5KzlRRR>l`XF0q0e{M`0kQU@;dicxulXX5p!5E0iuW; zko^z4l23VgT537o0bI5hvH?b#o(;YFrRDc9ua1-IY?OX|aSP+c`F~!c7%z7i8#oyl zo0wVvEMAMqtN+Itx=PC|SRtqPZyDBUV8|3OWdr-EIVd^exN2zTh4R-3`4>=>$)4_G z5`PBPHu$U0adAJ|#ZI_;KU~Gn^6`J7<7|W2P39D9&pc6vkkl$41;*t(^T-NK2YSWH z5WA7*D@#I0QSyx3kP(F{AG7b|H85=?H9=tBER@XYvh>QGVZYhHOG7mAgCFaB7Z7bp z!C9A<1WdT~i>ul~p@FhPbl!qJrx;6?F$JeIC7uQg$+SD+prYbV8*PV=X~(C9Peh>b zIe(jD8Pom+HuQqF8`LpJ*0$9i1MWb1H4@$h`h;KuJ#Tc_`?R(;4y#!Kq0h~k0Km7o z%p)ge*(^i(%e3-g7clxpU}Pt~4&{3*qLU`%m=!9MQDfY!?4%b|#*T0XR~&QbDYbD` z5tP`E04vm3b>ky{i4=Sq7mhC;owixc%T^(dpufIs4oarwi&E<9(CFKSgplYQhBVgr z5*UOmOx8mTWaBF7orXDCtxnc$9ySG9?Z8)ixfzFx4MgLr^)$E4%Y=Wf!a&6rH&>Kb zfR+`&L0f&gFW1p)nh1~HX{#a&kw<(Cks+_DksGZ+lT#R9ltx?Lt#GoF>)3}+h()X#cL4ASwb+f$h;G#pczB4ps}O;p&F zIHo@|aPCN(*BOs=Te(?8x&-Z&*I$9mZMwiGX)P(;iW zyEg@2X$s6v`Q!02xfw`|kGhMqyv|@>Q}Jw(q)ZMH3~Zd@zojC||E8j&k-3S@uclEv z-3{nrL4w)1FX|La_9Xa32I{d0ET$n00UJy6*-KArJm!!Mew798sudu1Y}#X@LYJxVybOCs>p?u*P7LesOXVHA$K zcjk8c-UI0$l(yseQy$(O_^NmBW5jjpFh27IV|OYY2I^rsnjeqUexLVzDL}Ar>M#}e z!!JG-Lj1QV5d13&w$2VlCXUQTwl;RQ&H!UZW5?IZBIv7 ziO9P}gg?hXq=s`d3;iY2&iM^y^4w-%h9S3n;7vK=t_`b$@Dcq9G6$N5pKoe`2l%T8 zA&2Lj?l13G^D_Rqq~iR|14n!7|9$ypyk!T1*2`>td&$J4qR%f zewBuzh@v^3JkYp!zhVb)E030g(5x9tpo#dLZV25atWT(7Etv*=sCN+ouRxs|Mfug14)R1)!61lu_e+Y|a@?b1XI z!-F$$MFS{B9PQiv@POX^xm%dQqQt;&-xA&qXnNo?NF|@ck)SC0-fW(o#=9!~ysUzA zvhx_J4zxqCm8dzcoiLRTLo~hRkfsf*{1!pSJ?1t}zn{Zs7)%K1TCPUDf4N+K%tgiK zbKjNetAAp$BphWB75a#U(37gloR+l&3Y#`SsW1VilmUUa%Z&uSVd=8Di%5WXJrGZ< zb{(`-j)YkuQE#;0n>`#xK>DJkB!zUS>ZMUFMc0s;AkdG9&>EvdLDI2C1F@5&H{^#? zaMOmvMEdmEDHcQ>4tWg+gSP5=?gBmijS*3-$AT!azVcBl*83D(r5$fS{Fg7@M zX_4OYq>=M#cY{jeN&3t=or*jZG;{(1{T?lxYFdbrAH!gU9m7?mZ!(6a^o2B+IvJvs z73p!2(WyBf-VvlD4=_VIL2PDbk?;gvpO4VKK^C3rA4$nD*;H76OPa7KJavV}F$jGN z=N)>!VS#O^<|WcSFAb(Lf>)o79*Nh+wl4Y^JLH|JvSn@@iby7(s7hfJhCds1 z2+qvRIV`LiNgV)b@`&$*bsG=;1li*wHMesa;9U~j-l6C4P&UKGB0?l`-+?g7Np}rq z!Udz67Aj1PV47eMvz5g_=#?x8b%^iJMO z@)6Il62*EEpf|45KZ!4*&_|LXh2NZNGUF&Vb8>Bo8Nb~rcn>TDT;b=nI z9F&xZF_|*MgPXG)DJP9CdD=8|s&m#!%?^=>3flH}H&0o`+q2`-q8 zFr1sWn#MhMmY?!3>`#{FyIC1x{ao=OgweiLSECt2ZxGdm37p!y*g7C-6^=d83?ML_ zp4|Z;sfCrEGSx6oj5D`S!XqV;J+TvFu1(?UeO>SW_VqLdNz@}mmzro>@{RJSa}MHB z;kC~ahnFZll%sO=sgQ~R$K(X<#{H(7pL=w7_u}+4P>BXf|2f?Mu#GQAqU$skRNQZI z8QD4@KwJx$EK;Ne+$6(CYBZ%|(l|`6V&5X%=|La|Ui0+w!SZlVLUZ&ysx{09Qmp1k z%}a2V>E#r9oz0NKf7lK1&@-lOz$KWT9k++5q|I8|pYoH$c<;}=?v2oP=dMg=iKWFE zsM6%*;S`oo+q6Y1;0KEgM`o6q+RK&W>#cZ`Lm+AGw3vBh0baBh+*Cs$0V2A09jmSG zDko#P?Vo#A>797|k^soDe9*06_h~%_>!4?+s#<5+u`q5UxFFLL<>P|YTkk;_R?aeg zpWMz&fZHdJc8g-d;IEPnf*F(1&;3z7FEj(fSBwqO88E_XVg5b@?n`?x zVWEsu(>835o0Du#sV7f-Jv9dW4!pHt*R+G&9_3^&&cVrF<|-t=ie^@d(k(jf77;7# zx7?MC!}B;|aLO!`?4tt7EPtjB2To=|LPl^!?K{Ru35z zKWcUi#YpagDfe+}p_V4h2!Ro&)JGsq@4j8f_Z}>(~S zutq9>QcY^6mm=Hwrq|LHt_)bzJ@p_hEjEXZl_>&k^cBp1;Cem)$nRvZL21Mi&MtPM zqS4!@6CHwC9^aTRECNqdJObMXcI$e}Vma500L;onfr2J}f;DC&7MX&Kj@~5(ygyg$ z91pXgrulR%QZ%`=Je=I%8sBg`+g{k4UCZCB+r2-MJTsiDfmoL4sBKk{)-)3pIPCxN z5M1f9Im0F8MB^-dVXYOhUtK-4`gjX{Q}TYDdd|m8$92hhRoy$HByg2YUoBrUqUBw1 zhHS5Wtrx#0uw^yKEc<4Fx94Hj8|e&;pMW?B`+A})!e#wlm=*-;d^Y4KdiZr>oc(?e zmH7f%xWDYd{&{=zibz=-xZ67aIw>D#={RQcVEL`zzs0>WaWw_E4~<$?ba7oemZw=> zwD9#qY8b*NZof z7EGX})P_P==|H2A*`RCWxDYGYZb+)Cmfuk5;UeSJu%<3znk_s(7iBfFXOY7zI=d^b zqS6U29o)LCoDwoly!SFl_fuV3%FQK5tVm5D4v-?eFNGVSO1cOLi|6T~8PlN?!x~n~ zo14XN{D>0-zAR1FMl%_}^tnNsE31{_mJ%KZJsj26x3r+ZKFtNgmY7c0UQWe1^|=Z0 zLE+m*yeQ;mD970l4KBvQXf1={&?&trTL8%{NPfWOgYhHvHg9|35cRee{j|bt6G!7H zE0UNd;|Ld_u~v+3ab{f1FszPPL(Ot~{=p!t?kXKSq50I5vlw^$;-DR}9M=bpdFLQ& zsnwPN{x}VL#_faUD|HRmyl9tpqv64Nn^lqa>H=-dikiiSg9Cb`Hy(A>hL=b~{y6gU z4eA5Kmg))CWgic52Dz*&g?K9rcp6O8T1+$fI2&Syy#FGm6#h!4E6t8T45&a;uF4N1+-7b=LX!vlq3A>1%~dq1Je#i?_DD{HQ!#Vl-fY6h z+&+QeQk7wc5GvF-e}wAsby%4Qu`(Qn6l?knrd&8F&bSh?kx9__6W0>PkN&&+l|krx z?J3#`c_=R>NPX>Z(DA0M-RmXfxh^W@;#bJrBOf$NNP|DZ=nAgVk+bjBt~gPWhhw>`>8xiz3?Gfvq}^m8Pb>ktF|2cHUH#9LGh^?`o~2- zS#bkw@oBM*Mk+U$-nxq*Rg*HN<9&EFmy*J-;uekxjdO;U4Ph4TCz9krCu(;2s+uJm z)b|WykQfe$H)cYp0tFA~-v)JX+V|#rF^$rbwXk>G=!YbYkN=>mO_ePn( zqg)&Pq+2%dy1BEbAGc47Ymr)DrPn>IzxNQ%3EW{VX$p-V4W#6V79N11vP&5?j_EqQ%D9mG*}Fl zolb9awN4sdxzkGuH#gio!KSP-C0o>it1{kWHM6z@Dw!x9HA@QUoh9)KD_!=}T0J!% zZL!-fFIG>ocAJRS`v#E2d><9M0xKd2n?S;yP`5#wr1B9$StGqm-o!17D=c1BQoT;t z*e4o8Z#q-!-#;CULo94aH+N`k^dj2FZXQ{u=2c>?#Sy1~A68C%1CRMJaYuY@O>DZm zaNi#u>s7vY!`u#d|D)}uBIiCT>H+ViT79_`z{O5H-J5ktV4Wfdvg*SnjW=%%YWRcX5kauj}F`&0}1 zD5BqOaNpZoZ}}&=S`Q-&R}cAl{PYf<#0xVFSWuTX2a(wEhf!xd!ryP=w}vO6;Qh37~t$M;i5q&=2V=pY6@E|P6k4e;~F=vX+Lj+!*_YftA<_%oL!SG$g_0L2+ z7-X*j>)HsyR(GEXww&H~S&c}#Lpee1I@t}+phM=FdQO59c~2TZ?fms|xEB#}qgWu+ zZs!q5Y7jm>iUo7AG3<4<`Bl(fe0t^$%EP=GGqHAqn=BKYB*fYwV&gG; zl%?q{L0Uxt&-B2;5u`!zwAuTq&!~(D)PzSL1EBCQ!7R6fk#?aLSUDE~fl$JVq*wd5 zi|Mfk^g+BJ-fjAzwRCfY_A@HjhzU6GKG2SnZN=Igt1ho6aCfPq%qr(ckfK`aKUIxHBNmg;}&#Yiu`*wMu4 zmF4+`j%dV+C_=I#NnATd(BAjgRVq_s>(&|iqY;u8nc`dY#~jH+x6*)@gk^uX?Yurl zB^j}1qRmK`^gIMqiO6~lb3|WVem7`s4P|iyYA?$w@Y4_-x6L`gl4@yrY#^vco4GJx zDt}OxlP~k*FcFn@R3C$1)8re2BS3CvM(V%m`5z}y2}?2{3LZxg5o?K@1; za&PjvFW>|(`JIg01J2^vU_3~G>@sxJ+hRj5OVB!CW3#J0H9px=ug+wd|Fx$ zgi}_Yme~@GhmxVP_kE1PqIw^*%z<3@UBvIyE%)Th{SDnR_cdcIK!ku=LNaA2K%5le zJ)4Tz_QA~Oo2-t-&ISC>yJ(y54cMl&D!D8wL}YBvKNkF@wKOPxz=z!gU1$zY4Xwfs zZqZ%NS|$BMF^NzWHTjO)y#u+_b8&IE=ZZG;Q!wbvSlzPP)ZL7A>j1W@zvY2ftH$Rm zn`_Pr3G5Fr$PD_*-H!&mi=ANw)die=RO<39k=kMS<%@5^X$ATXOOdyn4By-1wiy-M zur+AcN`t^E30A&c>_VS_jp(Az9Y(0BWCYM}Hx}c2hE=QMxqEXx?Iq4TW!D^5v$da3SzZ4%Z2Xwm)%jx!N8Xr|tkIix4r&l|5#@nmw+j6J(yDB^DOf-1xXCxnP-; zW!8A;-F?)?C(mc=sn!4)ripitr|~JXK@JX*>-aIwa_+Fw4e{Abr1AsBj)us4>s{70 zwMag_wFJ!_PuQc#?T444BeEG?!mgs4*l+7PCqB%vsT8c0U>-~5$lgypgdsB z{J=DrC0=(IUXn3P2kv^x1j{@@*`^NZ1i!;n@}3A-(v0xeA679rA*{j8Ez8~?af%be zFxBB(av*CHU)?3l2Dps(Ji5`Qb`U0gJ<}PCh;nNsN7tq>k68~U)0crA|MGFe`aDcX zQ@FZAG{rHzL%TNd(nBzHsB#vGAr)U=fOF3`*h3r#%SS-{HX9kh?iaM z>-9?>Xp%d5uw_my>DPG*JM~7|gnE6$$l?Jj-IwQkz6@nKa0mpj*HZGIx%OXw{NLBV znD;DPqztR`KW%i|az3TraGybmoCz$>U`u~>Y z7tep`{$~o{?}q+7w!UKTza<;~-wpjn;{R^r&vyGi%iv#Dyk6q+`?&jey+3=@Ycu{W zaQOe;n*Xl(XM+6u6A@pc@w=n_UGL9j`Y{p$SXm6eisE(7`32&nZFL`mtk#gZS3G`W2|puV`Xlr?_drD zymJB=G1wRb9Q4hA40gsgKsyI>fGLBamA<{bxuN2VIP@3Rm+M8`i-iA27%ww9F;yXY zDS7dC*7^W*6JvV^1{Z6q+Bg|NClPYM4VQoSa>J4umAn(5kh?dEtc5BzG>hojQ7CP# z`cxo#;c`3g(}@J*VdM<=!n=z#*QbRLt)lrCzWjgT+{CX=igNvn=xWbu2`AP^D2oeqi zZpkbWuy%;czO2uk{%HVNAL>0{E)4VDQFf5(dW(i&Q#7f;{q1|Ks#UcB@=vK1V4#7N z3Z7?8;rt6Qq*l4<7L|Q|a!du%WzJ3XK_mKT;@(_S2nkPLEmgXW(k=B_5axqqZL$QgIM4-^{=8kbd`20Bw&p9XB7a$%{iI~P z;nFm3QK>-+&tB3x2In@!1mvVp$Iqn_wtX7?$-Mp1g&9l(0_$duFl3blRLe$UeqS~O?cQ~r4+po% z!DD-plW)tdH5O+a7jEXPyF?rsTm};wKp2h{ ztmk1z{3$C-Qzhe*FFWvD+SgFsy{c2Upzt2@RdFJn)q=JcwNPJ_|L30+_2mg8eFuFb zV-s_L`D+$=)&D4EMPY#vxp(D`madgDJB3y5D*~$FL{yI;F0Vq_Cv!f0o>@di;-{PR z^h>BP41}7hfJ>i*OAlv$ugBmemj*8t8as$-sV@=^QOC+}Qt*hcj6_F9_$di@JzH4N zhpI&diEA&-q$=W_NV%_C<_DSK;wuSKb1}?D@+sJyV$9Wji?N{+eKI5wa5RRv`m1eA z{e9^;hlTq*0;BZ1>DW*8G}b@A>(B_1N~eRDJmt+HV4Zkcq>+}+A4{%eX|k})>KdV` zx$Q60EW+NtTGEk?M0FUp*ovji-`6AR@hDIGCgb0%7{J2D_T!}4z5bq`*4QW0Ff7+v zJk^7dbbD;A;aU*0`QgBVj;HB#n;Aftzv3{83&C3cc2>WRan1@hBwT3hfiA%ZpP)&b zM1>mMECoxJ>y|!L|5}j5(jScmm!D6UV>+pxHo$(!$D@-r9a+R*@;kdauP%HvAy6Hm z!1|G!I6!f<5PXm>^G8N`(B*Iuan;&jldn!b40-yq9I8pl=4O;DXJ=)>XKLfJSX3w- z3Pf}pLM(YEWOBrfQ*}rHLkgwZ_8F&&D<*}=E>88+Tu2Omg zIx`<&b`~qvv}(uu1C7B!;WzpoHm9gxVtu6`axgkGYZ?j{HIL+obW!u3v0W2y&d|tdPCfgLGj+sv$tnxJlY&s_afOGg<~^^k9>Xjm?R|KZHEB z5m$QxxN|@(Rst`pW8P|h-exU<$E7^!FKPnr3v;2} zU&&fs9(S%+I-z@@Y@Q1VIO4^4cQvtfm?JkxV>UL70?M&6XxoKO3VJaWA{DeRV>kR` z4I9>pbq8$3ShE0%A0%8XsWBJZ*(Rjt@q<8(Xu=%puiC49$yp=b{+RP zbqIB-Mug!vXufTgvrD3fOE`hAhU#s*NY{N0d&FCu-g+<)5J8523wy->3441(Gh^#t z6)JDM9nirD54n1u+bk0Aj@Lju*WAoViT$Cvxg^;B?&^YUmV%RVH`9o~k;rR!*xCjZFjd#jxh!8S=5+>>NGy+ms4*Sb zseOLr&{Qz^A!4|^*^X#IE~ch?FmuLBIY%FiJW}D4BHyT8KZ@DAioB_%ps*RmlklLi@1@$lhZ@zaL;uX}kI}4f;P(;T-t1_wd~3%2CD}ni zt3npt54`C3<;}lY0q;Ln06N+k8r#1!1X|kw9RWu4M)t2+&@rMN_GS4adgAHtGGkqC z@Q~P@q#0DU#5Vf$$uj$La40 zZoleQz`+@t>&y3*y^McO-m6Ju^6;6*_b0pX@$4#HGz39+n?1P)HAomOTKZ5`|Pc!%V-ok)CwK%B@1}5 zACWlr(U3-xMtM3B<&BYZ$lKt_*Z<%Uq~H_a(ajgBVfX;D{{07Ee|4IKsg~(ZyBmfl5{qRJ;*F&C&1LPP5md)rHChd8}+IJHBzF zvS2N3^swIwe0Hr&G=F9cU?R9yp@P?=_)X(@G@C` z&4QY4l@P2~BhM(pZzAd;{HNSz6+Wji$d*(wJE6D+kZ3)jOz zpmbwF9?F0eL?>uRZh)61=|%glxpxGyN9+Yy;3=;g?pBTv)x67`ay2jS9v*}!^CQnZ zfiI*#5n=WTBLQ!*u$6kI;we51kp&ldor(by`Aq)FA=p)_WqsGFG_3Ry+BmV9iUgHK zoC=9zPuHk{8@K0y-a6QHIB3d;UcLZc%8q6sq@m4x#HpzmRM1bKM7X}iit+2{xA=Y8GS5#f8G~vv6W^lpDMR0&TSmeG|R|a6Qt+^(XZO0!)DW=s+qGnY~3-d z=Ps%9@ph_MX^`JHcBp{Q+#;zehAj`aWk)I8@T&Apc`i(@Vh4iMn9L^@X?_DNVXj%J zirYeA7`i0%XSfjQX5{2|$2EI=n>eJHGEkmnIk3?%+U@XnXgp}GV%m=_H0}OWDx{<6 zINxGH%~7#AQ7hH~h4wLi;*#)1;*=f3F@d5-?6h6fpDSDFH>uABBakWjTf;u@AP>u8 zEp}H~WXVlMMFu0fCN-0RXH`~+C^1_CYx-}Lr`ibADBYp2YH%QdVIM=&QrD9vs-3MGkZyFAlguJuqHt=BthP0kF)Ld%}X&X?f@a~HZMrh4j%mW$kPim^xF@ya*`tz!$wm2 zm$2$AAJE_6?S&I^AY?`%wBxI8j7b!QL%IdNd1A&UPnyRj#Al#i!tyf6aw`ir9UHkP zwa>O?e>{%oKnjkWr1pnywbQROVP{zvX=(731NgLv2#TB|?x^j6n1XA|Y|KAP-*8)g zUAWlI>w}D^g^fdMxhU{CkW~x}g%=~}6#PDqBd>$uuX4dFYxWR@aeKOJ*f-Ret2~KW zAs(Y&<6w7-P2M^k^5qmn9v4|yo`C_?R!ly6VCBX*2~^N(U;?jECYx z`#s)6T|nC{zuz-be#TD>vIX9u#RJ)$2e$>Irh8`c5?vem1rN^7EgfQEjN+B2zUFauILk>&oX3mz59Gf8{Pz3swZlJ&}B+hJl zmxo-;d>0?d(@b0IJ{?%m79dO8eq`oTh2f*=%=Kyayaj zSfx8j8Wi2h4(!)0bm+^Kawy+2q}0-L!1a1k@J1dV&7vb}@06)L+XpbV3Wk9I^eL%{ zRksp*R*U^kdA1B2beh%?%|x|1HxN%Eu8Em~N#V z^h6ar)#fN0aY{&F5bKiO{8;9xG~ZbrH?~G^VRgYKel$Ts5&;$K&o0uUC6G1QPgV0dE>O%r#e(k zI5r0+Pqptw;3)|ZhA+)dnRD97bJ!Lu5N{P@WD4ES@pow6I-;JGKw3}S4vrA`0uBf$ z`FgQ|(uU@}b0}YcbmMhBOCs|rQ(wZ?V$9p`=yaH?SDiw8Z*3*^>?53;-8JJ}K;r=y z$m~GgqJ~5buMI%V*H{YM@JP991)Z+Prw8g7_cE?4GMKI8=*`27N4}h&^b$Yi1Q3kU zeb8)w;zdjJ#9W%i@q-5K#$X{{uMm^i-Q-lrDLM1I;ca8|K4EK=me$RZe&NG|C84sQ zb`V{Re#1{LR#`6F!e+L7&qYz=vH2{RnCl)fz2N z)GsHdLARC6v7Ss9l@inFIvYdEmUA-=XW%?3-NWUw(h12tNRn~t?Zh-2c0-p)yFtM4Tjywqv6dYj^(nWJC445WIxMxcBMjerD!s5AtuB}F-OK@PWH zYaxc?34bZj!kTyvuL!zjzW7V;Cy;$U2~9fU_`o-i<{%lhfI|2WGUW|gj~IGp0gMKg zV4d!L61%B}6H-tSy-d8=IbtAtPa8mo8n-w3;R6R=Fk)WNCy@dYeSW&%dKSr-nQ_~1 zHY&|qC)O=Z&362k^^&j{?&UvXUqiXB70oj5-x%p5+VqK0=4sX~onT4J7f#YjZ_0Jo z2}unY7qZeJ9>e!)_>cE7$eJ+Pz=j|kc7SXUyn{anfMrWNB50s5liupNK)po@QGMoD(6MRrh{A0S#x z4o;ApBR+}JVel0`5ii;KE0tGd2ejTY0)0YQudMrGmZ4M&0n%uRX<@v`aV!x4p3O!f z%Cw~I4K538`$-`~f<`@aw46#@_#nI{n7!r!>r#VQ`R+uPwUF*N^}-GU2qf_aaN#;t zHMkGn7jM37aq8=^@}5;hBbM(`P&Mw{d_-Yl-67LBhhm>d~}A55TXa{d^QG4 z!f&vFq&DUQdi|&7lJF_XzKSBVE*CY%6gsM4^(#@mGJ!Syp{N_O**;6d2qMgnrz;*2 z@68_NgjN~QR9I8>2j5dvc3Bxzxu~EDRIU$*s#c2dhQ>G_?hwilV6=kkZZSOH%_J5w zY>2W!TiuSSmA8k7xbgZAiSU|3;WZ_>I?6S=Lxiwn%vm&B$LS z?K7bB)>+6s7-Ku>2rzAu#1X+=c83`n6dcGP7vHs^w|sDRg=UitCwIq=SRii zm+Sn<`TIL68!xy`un|et*4>-H&b#+sd^dayWQ3&B`m1Fl2}r@h@ln#q0+>W$B}Gv~ z(1u;*(<)3Zwc34Dwzb3sb@T~SPWVjg%|kjfTb6x8Ja#Sb5iP&rf1qJd=-HaVs zXi+zIra0#E2DcRz`71Wp6ckti;^5hKftA>nrQ%&W>N~p;4#|(#?&bGdB5Mr@y$T*% zKN7mL4Jzg6dhqJrT_047ol6tXQIL6|LRQ>?m4R@tFmfr&)&=)35Cw6@Ie#wad%g*6 zgAN#a0M)c?5p;7D?+qDaXZnc*Yl?!fb_Xfft1em>+!vXY#ugFLQ7OmiSwLkoCe8Pr zn-9VywQY!yawKiAWxY!7y{9iDuR8@)NIyH%-P?1dRd{N~w^ya|#cgrG@r@yIw-!Zq zkLC#(uhZ! zsR<-u;a$L!5}jrz0v(f|s2{&~N3Wyv+>iDxZ;C?|fSed+&u3cj&e>_T0HI0}^N$mb z>Ur#)8}GF7_T@oBhukJ(WLb_PlG58uGy{i^yR`j>g=QT<<5^D}4FhM>uZuM2VlmEm zS873G^Yao4=hEYgvgXiISSM=0N^;AwA|Bw2^!oLpU9;X28Gn_WON}EsH}wb-R}VRI zyjMyq)PfpLQzV2|`^sCkyZ+eiZ#{pl3+$ePXmz`JgWsRWjVi7I`-Mhaj35F$W~h8J zrhX@#%sf}p4I^f~M3TNgWOBT`k}Vly&L`Zugp=EwG*YKIIj5<1NHL?f0g15|bl@Tk zxDv+pJmHj81uiD0x)y*RPI?-*iJt)`8{umXOv-5KH`ek?_cR(%euE+FkN0sknc7Qo zpIPpc*hKLt8S~|LxpBehOBym`SI4Cuspctu@B&j0`vj8?$5l3Om1ke~$h0~J5fyiN z%MH*B|E{_c5~6dDADzteG`&_m1-aAR+%fpia~U;tM+eoF1am%L?3Yb5!6fiBa_Dxu zB!ahLA}YCUn;%v&38zw2$pWpgj=9*0x>4j?s2b&4hOtNrqZ9i#WoTW8YDQxo(B1~O zUXa~5T*q#<(tLBh5P0pr6v{F>qeFp!P#XVREroxnrS`@SuNc*@c8gj>yEHfxyx_?N zMxHZXbFjmAqEJdPIaE3k#M@L2W1Kw?1G!PUz6mkGKxtbq&c$WP0<`W2a12BshRI-M#@4v@3Ne5^sQi3NqED1+g|V979g z@2+^1CsU8eBv2WK_&<|j9#KV3JlMYv+Gl$o<@(5H*32B8K>~Yp~JL!A$WP}>cp3-{4 zrGuwz=K$)IfnOJo#E3Yccut{xL2! zeaF`OPah+;az*b5zrNX}eo9>)i&DwGQkF(U-y5KwIi-3y6IL*6WvrRqBXN_){!rvT zB$ZtOcx19@42Ke|7WV#mP3nk_O@9c&&0Hpv&>nxgS@((&$%I+Zk$=st1-j}Xve`}V zY^l}kB`nPz!U`~5i`|@U7%a^(_?Top#o8%}BFF~=2uchN9P($CKE9)MrlRjg@t4^d zeH^#JA8F%kbhbKj%eUtPoz5kyrG$Ti_>tD zj@n;ccEourXq)ykoj4IQoG(isMPTC584GUa`ObpG8_tpdZq)!bPSQUWajt>G$`~us z?!4#Pj<;6FRCj+t4ZpWIHcCQ$DMKfR+;om5=dhO9`ll*$#B>_y$V1ayHB?d6jE9mr z${`2hy_XzU;(eCzkRKg)WLbV56m% zx;nk%duwElAAs)?^Luojf=)icuYtejsL;G#%MUN_cYhg*GN5l@LH_x`!OJ6m(0`5} zymFy~{61IkCp7+guHZK*yiEVkQwD#F_!F^x#n69K{!1!-IrZ=hulSqmPq_0H&HYWv zFE024+x?sIPr&3A4gF0rFOc#7kB$D#|0mS&3ak7k;g_#}<^K(`{LTAklm8Wr_)U^8 zThU*<|2H)8x1c|FudkTEZ-RaC=%0dqBLsiT__J#N_iykYDQ;+g?t1^``?Ju!*7V=h zgZsZL{NJ2^2FU+@cXtaA_~E>JU-Hg> z@2OcmYtNcpwY$2ys(OE)qAV0NBH%?3eZGl9DU4gvK3~5K_~&6`VFPq_w+9;9+gn>0 z8#-Iq*)o5$HDR&`+BzGW+c7x;?d=?$Eo{x0jI9lwoGgqLpUq)CtHS?f?%Bfs3ik8W zdkIw$MrnCTW*b9W3sazzGn1Q*b$x=YEr=8?u^bz$`jR4llY5EwvwHq{znla)D~~(b7~V- zlE{iHbYEL3HKY{i!+A7u6Y`n-sLjvi=+eWp9<`rdwN&UNDhL{^&QqQiN6f5N97k2(lu(D90xK$F6y+tc&|uc>x<~l&{&PIXO+BVeHe}W8)%tb-IAj>9y&rjljbQX+a9%XkeU?|Y60gC z2$^}>C9ka-ag>1AlZ(>*Sj=6l%*kBYuP|m#Orw=_5b~JRLYLdQa3jrk+6;q|2XQpP zjNf7WAp-``BWS~GAVfm}hQgY&iMmzko&ys>G3zF;i{f3_O!8=DF)wewWyXt%fk){p zHL^2bgJr2#kap2xuE@h-^2#ew(Pkm|SN32_!+}izDPfxe$Tx_`=~xsj(~{{y1}Tl$ z!{1ZD_`%hE{iA-JOS2%#r}1kURgmBW^UN1g85ho;d7-ebJ4kU*+ngRk++*~drfb;9 zdt98RO4s#eiT4}M-{kwO-9UXC*SU}5V8R+0n56r+4^EL$`me~wy~QGrwY52V*yT2+ z84EFGCT&j}1zX7-&p*Ws#gm9}-9o+uOCCJ3=K35gjeiUl(sK?N+u1rlXU|K#Bw|G5 zds&dhZv=YBy)ov?kqF!ho(@-YBA^uM%b>?EZrR{l)tMHTFPSnO0uaaHSUPVB6;`vj37n# zojwID_lldejR0uz%x2$jtqX7U8@dm+XM#s;xT3{P9L(9y^4q(FLzSiyrjaOlE*s)bK9V)3);4C z51(3d>@EVs4KgVq5sM3?WCLpJ(k6m$rlpg#zD8Z~P?igOHn0>|U&z&B==Sn7Az$iR z4m25!N@tE(GGdu@S>T9n!v)FFnK}f(wct>WN5BrHdiVu^r0 zlPP2%R--iJqQWN-O^jw&Gys^yoLWTx#=G7!%=>!+wk-C;vi7dOZV}%1mP@lLF4~ z(Mt-4f?4d3p_R<;F$63hbsS8efAtbfBh5S@2#_Y(rRPB4E@Ar7BF-R@HH1F)A*(?h z7N@S$Hz$SzcSf~)aUXYRNEFi0H953rH{U?nf0yHw{^*E~TisLTU4go`_g>Un(K@y# z6WeA^h@k=Jw}U>b4Z#W3UFx8qXGyd%6sL_f4~v6M4+Pu!uG&n-2plc zOl3w_Hby_dG71WjaIHrtWV0C=xal6I6KpHFSCx054cb%m}IUq*0 z_w}pBOWgeM;gR~jDNrfF_bah$qD1S4CY}yk>^=GC$;te#j+IvB^H`jXv$>58|9fuY zm=*rl@tjXL%r_0Vkr~B|a1&H%&Lf5oRVHT*XS8k@?SXubN?#~zQ7C1SCKN0j#T~SN zY|nl}aQ~9n6~m9t)JBgzVnoqY%Ftv#)~qwZn+DQCCnmZ+saD`Aq*zw!o0+PRX`nOG zDX(kkPY;1Ckl^O_?j$+-;dexkjbuNhcMy{L$mg!HU>CX~E!j@w-Jj}$(~+udn6Hqk zL&K_&N+KW#f|&}1CaKbIKmMF*jL`^^*5CZ-Ysipa1|qrhm%&SO3a; zCu4J<&0jsLV4};mn*|wm^*+B%EYXv&iEOIdMuCO66Gfk}*x?PB)Xj6E#@w8Hsubwk z;L|Ly+^wn?*DJL@+%TVv_`SEbD2Ki1q|(DICUh+J8X2*^2^~t+Jt&_&&vHR$DEW=m zu^qaW_t+pz@^+HJrl1qq!|rWaUB36dbPo!fpZJm

T}yY?_XwdpWEy$!~0Q#c6J$8s`18mioy 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Portfolio at Risk by Branch.properties b/fineract-provider/src/main/pentahoReports/Portfolio at Risk by Branch.properties new file mode 100644 index 00000000000..f845130a6d1 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Portfolio at Risk by Branch.properties @@ -0,0 +1,15 @@ +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 diff --git a/fineract-provider/src/main/pentahoReports/Portfolio at Risk(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Portfolio at Risk(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..7e68f7ef5abb2cf03342bf3c1605169004d0c64d GIT binary patch literal 8469 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 S0RUjaeycEaHkst%>AwK*PYN^u literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Saving Transaction.properties b/fineract-provider/src/main/pentahoReports/Saving Transaction.properties new file mode 100644 index 00000000000..c4b5451f579 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Saving Transaction.properties @@ -0,0 +1,14 @@ +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. + diff --git a/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.properties b/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.properties new file mode 100644 index 00000000000..8d0ba7da71f --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.properties @@ -0,0 +1,27 @@ +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, "#,###.##") \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.prpt b/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.prpt new file mode 100644 index 0000000000000000000000000000000000000000..7eaca7e61c66c7486274ec103f42e76f44fd1898 GIT binary patch literal 6854 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 Q002b(QjqCNMsa)fA3{6JC;$Ke literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt b/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt new file mode 100644 index 0000000000000000000000000000000000000000..fd3eef1f125f9d3c0ea5fbdc936d15299400b75b GIT binary patch literal 14997 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 H&$s^%+!}DD literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt b/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt new file mode 100644 index 0000000000000000000000000000000000000000..d50d9716902d051e82f0507d6dccdc0c0ceda344 GIT binary patch literal 6565 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 O*l!&M3GIkqj z_W-y!vw1mNvASA2dzjm~u)15jy107)oNZYx9nFD2fTjAAIh-d|gkR>KEc{==ed?*m zXiKmtsLHZAnL7h)tbrb^K2DB}sY=d$4zSJjYo%gkdjK02eSc#S78UY~K=Xi>)xW|Lqq4-MUT$O+a=X zG-M>5THsknyyy}lm1A+Pef=<4g`-Td#=CGQ25z?1P)mi3o$=X7fzdiSn|fg!p01Zhx-j^5V? zpRY8L7r7@_8oQ2X25ENia|+epFb5RE#1T#88(+)0R7Uz>v7GlP*UoD~FugBlQWvf1 z2F}Q*S+2|pzpb{&657k$#O416I}JA@(R;H}#k0?7K2x$kwKR`sLF&}W7l)y>gyqmq z5l*fyi6J1#L8BomzKcPQf^bl(iJ?wd7bo`dq$qeW3OJ>DR_XlQ;mj+n5`%M{cJ z^J8m4Rq&^2FX@K9Sh7C*;>|Y*H|*|F3{@}jMe3KCFSmi-C{=^&%N zxSZBp4FU)MLllILN57U$vPIKq#sjK*ivYwTZ9S=+2QWbun>hD!>`@xV-da@k57PS1 zyWy^*MRTE|pR{2!64t4XNzb<2Dk`9fCT-4Q~LjSM~JKNX>t;j~o+x~IOM=LTA zMr4Py>CnT`jeXwj*bFK~0~QnE1m|V8y{}u1=7HT1<%bj;GI`=N!q>*~ zrqpnJYd#82B7MtePW!jt*t4Bg!JE|Mg3jF)Ub$3k47M^PlaOjKzqB+;&lgDxo2~*N`1I`j-P$N!s_z!b+3}ny60E0r~Uf@ zaFnz-_^Tkqp6$;yM`qe(qYGoh$kQc6!O9SuM)-_#(=8_oI}SLNhLi}ncg^kG<$?@qkAXG zWrf5@Gnr17`r#{5a%b&Er)d2ulFak~{#+VVdxo%WWTaz6z8)y4m@sH>kpmq4^q zgKB~vO{A`<@Nm2dU0jYP<@=_Ls(w-l4s=2*yUV4CIEJ%bajz9{KHX%)#860l^^h;B zhSl*dijA_NNrs(?xz^Icpe8YDIg8|6$t7aCG#laNNbMqlw5k_uIz+!>v~CF!)o29HY)sP_ zU_!di+S(zdVVO>^q_pD6n`t}D!FZL{|9Zx@8A36;b}ID zznuEU+l-Mxic+pTo`{$FOX%~;|Lo+W`Lg~ip?o!l&me$)N*6EwEw0f1C$4~&cGgb6 zN!7B=Uow$K1{%r=xynvz{cIB=ClfDGkQ!Ssp|yR(in-p{FB*+yQaT*FU?ukw zWDkRB5aPOYA@Ju}fI23-L8S6$F??7Zi`yOpy)==#wSeT+Um*~fR#-*?P;tdGmW3JEg z;<2AIG_t@Z3E>>%YsiCd|iRON4&p00J=H;&*HZY4}eQ8n2*E{xCCl`$?jOzJFI&;(ITGi z3T)M1iv?cR-cw6ZQ};k3!a+DyzP>wI82}ecD|(Sm?sG}u3wv3D|5U^WW$f)7(l8}K5W6$WHHF$;`#^}^pLDB%(>V3_^*7TVK^r787EnUT5XcLk);?n@RbB7(@da!$$2RcT zB?dL^s12!%&@{fjJMG)}>Nbdfn!C--_a>Fajv;P7JQ-Cc zJQ-Fig6l}N`Qtncm8-wHeJPr1YN~`v!ATlp`P{tb(@L1tX4=@9bA>JBg8aW<4@D*h z-Vm##DD=2X>A7!V!D2>GUAw!6J_I&0Qj_EuvpYoz(bRH;KHk|64D**|#V?}@Z;a?2 z^m7Y&>dbw}&9yNJ-kg8D`Eg>KtH_5QuyWluf#sdS7M`QU@i}@kJcM*4gT^Ejmo4vu z=>06IBwdfKFfBe)4dPv4e_a*E47&xjf&neiDfPb9B5cJqo;OA2^-??cXpOZ3Ru(qB zb}vwU@;)O3#&8f{jWJO=3Vyb=t(j0=@I7_SEh!h|y1ZF4}clKb*kzif14Xy%QKftTqb*^I= zS0AoOexA8co)?gKb@sByJA>=pIssJ_$rhNVWK5-Ls5^sPyd%w0TSyky62-~C;>2#v zI19H}&rDNNc?!-}WjLvsen7H2=By%opZjny>6MB;7yP={aJ!msOlYox_h`Rh@xDcP zI7EHdV3woKt7=`&m)MED*!ZO4FZ5Dt0cb}B!~KkY&7Lv7!ApglnpI@kSO=B!nDxByHvp#%h2*r6Nw}-R;sX%&0N~UG-{5(A>2zdE1Z`#DD{?P%BPCm$Zy&6 zf|U>9thR68kq=tG2oblik*ry#Gu3YD+X8^^WBt_rs8No%T0 z8pQLHpmXE8=c5_sI7=8*vhlannR)9HN{n`@ib=h0Y^M;mvBH2GMWh*jBQdu#%k5LS zg{$^@AKhYN+(=A~5H9R;=;URI<8+PrcK;4TIK*Y8dgyMMZ1kQEKvTRwP%Z#=QP#TC zP@jLOC#(Q^&OV{?b;aA4LL#9bY)MB7^7ajotffMVl<38T2*PGaosUqP@%0TEVakrM zq=0gEYy^Oub?ARp+Iw*lcU`y&uB_zPP`UnaT9|$_GIpWc&#Z*N=ax! z-An7E#;RlqO-Dgd>@|`NCQj!I*&yD}>Sv|g{BoL6{xov5LtCpNl9X&U>!t5&$Ep$| zlDb+)EVbxtVs7_Sx2@s$J*5ZHi=jD3GODn#lL3SJ+DMwt1c*_1No0e-QvJT#pquv12#H2; z;>+ajq1`2(eF6pb&+o3%QDDIeOPg(7RnZHtI_(OrWZzZ1Us15~Kt$I3%C~^J8+luJ zk5|jDrA<@W2(}mB4a@4PnuL^pm?F|9UwBxDYS8;~pU4lzv`AO`i735gPGzc;+RH{& zK-I1`wJb!3To=I#ryd&^rvNTH$CJu?ixKeWjm|{`G7!hE_ zT}Fl77VvavyHRS{_(HqI(0yuLX>~H+udq<>Y`G>)fyHG%lMmZiG7)X%Zc<7>i3 z@3pM4pw0Nv0BAAJOP!TU;;y3aT~thAq~#r@H(lacUDksA8K+84Rf|3+BK9puDAp0? zdvk|a($wXCb4H!fJ9@#Yk`;xq9zRYVpUOTw5KkombaQ~SA8**^xg}L*Ck?{$qOuv3d}L)Fchy|k7laN7KP`~Ox$up6smy-_64klR zp?slTb2@I8TgxR`<5)9HNpZ~e|M0pXVlQNy_l>vehw>8%C%P&$64J7A_%6s{^ma^- zA^W3VEl)Aw+JZR%+~k$VNa@D*CcAR?s>{z?;{3vRgDc~%nG{N zjm-ht(1;g(?h%s&4TEs#iB24;B*K%`W%36LYgCw8k&4sC$ytRFjIJ*t?5f-6rPbmh z(P0vLTwj~o0ujTzc+gh}kJSo3X6e28hNm2QQ+yO+3BBZ9)e|2sdK2g5WBDcVxI>#a zANs)szwTQgj2V&$Yq52j`TaZOw03co$4I>N)8v1zRcFPQ&0!}B(|nlx&DK^MN8k=W zjx&OFM@eT0CbWYEcAGmTMz0UFKYAs&SLR#XmU=7j~1(iBXNZ#R?6a|ScReKyKGNmAKI%S*v#4+grl>%bBpb3R# z4Bk>qM^eH8VDh$_l_LRGYQ%G{&;*9$aSI=NPa)4Sg+caL??R^CsvrjKa3vP~@4yMF zFO&AfeXh_8cZD|Y&)Q*NPeqzD*`hPzXiuBwFW{PPN7YL_m3f}SVOP)0AJDdSooPGh5dgN@ZhOUR&%S4MRiYnUHue_N(du0GNA$wOH0uUK z&@wqlTuW}%oC;5Rxya-%)e}(MyAWE4tVp0p9s9=~@%p<(kbf&TtgyKFf!volVx7a6 zLc`#_&zP#?fB+>QEP8W$w)2E~37q3bY6l`m9LUth4M3}4>dpgvYX zm`q>$`W+Qu+C>ZvM(3>?)l@SEyq{-R}BZBzSQ$HrB> zXD()5d^f$6upa%itDF8OQg!vY*&69LPTVQWP>s6$0$xq#boOSg`0q~6?mH*^D5aQ1 z!;3}1)xLnwM5Uo9w0iSi%jO?Lgm8FrIQcXK(|ov%G?E?PGK94L43nc$YSQR z_N9=)u>G^hGA@O*KOkIt4~mB`5mkGKACx6<_b3qg8(iS9Pz-xfWIw)mZZ>&sdE* zvA3U^$y2$g$VjhW!tTB4){I#5S+#q=B_uk_PDGARjJQlUypB^J7?|b%&7?M+HW>?_ z8i^{K(}3Oho$~&-&#>lkVcT=snctTcD)$kVYMW$8hgKK#{(cEi$mp;D750Ku8* zN~MRhDkB45u2&ogZP0{m0_M%A7-on0P{YOfp%Xpj;_SI{&X#VcBPZLIyTJ0*BdZdSUE#yiF&iG$WV zT31slS6zh<3A{g{=G>EQyT)i$9ax)8WHcY!f|KyEGu>OU4i1GaA83aJjZg8<4ETLH zZTE}4QC^q8O>_5*GS_zKs>q2>s<2!QBr#|Ls^wqiWxF(JhSrzh?a9%lup**{)P;?X zUy#>{`qz2gO;+VxVAcu`8H&8i`P{gbw@``Zz(ZP9Dn}>6BQgC2S~qD-UNiQ*tBKV5 z^~Ma$_DkXcW`n(Pe%*+!2G~~FsS^!h=n5LfzRAtY`!A%sXYUb)dAmjA?Jd z1uCgr0zxtcq9igeLIRNC=SG054q%p0VbeW$DkpaNNC5Y?y zeo}O*gG-1$sbR=99eD1YT?lQ88Rby->jz^KM-%Z5?Z;$n1JkHMem^QN$kifT)%<7g z?xPB*{Ad{u)ou+(BbZGJ15QG0&7|_&r!+ZzNM2;6NGKt(8`C{@ANfO_O6Pb$U zz(TF_uMYyJa)Ib$$yWe(bfs##n3%wu6+RiDW~;D^s!N>)l;=^>+_z&PYlw`A8$a($|M!jhM9?McD784aOzDhO1W=Jc|!!>2KjTsg{n_HEt&(aMONDu>ev>Ccoq6{n z1PDQ0{qw8-@J&p4#)R7gZ+VSm>-G%lZgw$*(^h}sjKuu+fmaK|yO8fO%Qe05*bHD8 zha}4xt((c#*lHHqCn_83g%B|Z7*pOYE_$U=6B^E>Lw&_d-R2oAuarK6Qyv4dBbF=D z%e#-nWBMk0zD-KhKhn5#1J0aUX**Zr8Q6|&p2Jry@}AS^vj%l@ z8i_6MfPI4@t64@f%rpd-I%0}E$C&hS)RAbI-6-B_#7@f7yGx8D5RISp$M~je(6YMwCZ@-CpxWCJU@J;k-MP2rhE9u`X!bycc2w-#MhXTEx z$;x&kseEW}PmtFYawbS~zg^5(kvk}8A1A$JxS~T1iz&`Xr#c1k$2x7e!nm9;DYGx! z`AqQ+rui&s{{EK7k|h(fh?sp13OeC3!?ustgo1vQ!CFIUsRWPmYo*Ps*f%oMDFob| z`3|LkD1YbDvX|7PrpO8F=hoh z=iIYX4Gm<+3J9#;@k5WQPZw(OJdjoU4%1DU9lq=x^1>%J3!Ew5q$gz)`SURZF@FO0N&Lj@E3gmrH} z@niptk>Wpvu7|t1GtluD4Gm;g1gFmMq|Cigc$^z7 zgQ(O*J;wn>q0J%rKjFqXHt9PlITa?+YAsk|9qQqDuGNT=Z4&eeB`)6jBfU~w>F*0p z8+xyFeCNWJQ95Y!5OorOvH|m)Tw+Ux988|(2R$`)B}gbFh<~QcpN9M)|0U3$wQwMQ zGvj}fyU)z{Z&7>d{;xdw-zNU#9G_X>-%|RN1D|;NUxdKlT7MFD&wS)>(R`*GezTK* zEB?tyJo9+{kJ$gz1jXW^c#Zz+s2=T_CKG&f2|l}|M{x>Tkp>b^<0L3%j^@$^Jh{1 xTl3EV`G04eA^fwR{jK-sXZsvJza^3MAA?C<3HJFG0fF-LTYutRILMy={U7B|F$Vwu literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/pentahoReports/TxnRunningBalances.properties b/fineract-provider/src/main/pentahoReports/TxnRunningBalances.properties new file mode 100644 index 00000000000..45d459d028c --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/TxnRunningBalances.properties @@ -0,0 +1,19 @@ +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 + + diff --git a/fineract-provider/src/main/pentahoReports/Written-Off Loans(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Written-Off Loans(Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..4eee7b8bebb25e8943aef59c88b14455534148b4 GIT binary patch literal 8739 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 + org.apache.fineract.batch, + org.mifosplatform.infrastructure.report.service"> diff --git a/fineract-provider/src/main/resources/application.properties b/fineract-provider/src/main/resources/application.properties index 3fd1cb53fa0..adbef7417e2 100644 --- a/fineract-provider/src/main/resources/application.properties +++ b/fineract-provider/src/main/resources/application.properties @@ -1,21 +1,2 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# - spring.profiles.default=basicauth \ No newline at end of file From 85a80b5e2e467f0d3cb663604efebd21f034c64d Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 10 Feb 2016 13:17:11 +0530 Subject: [PATCH 02/25] Pentaho reports changes to work with Drizzle driver --- .../PentahoReportingProcessServiceImpl.java | 21 +++++------------- .../Active Loan Summary per Branch.prpt | Bin 8686 -> 9151 bytes .../Active Loans - Details(Pentaho).prpt | Bin 9655 -> 10150 bytes .../Active Loans - Summary(Pentaho).prpt | Bin 23008 -> 23695 bytes ...assed Final Maturity Summary(Pentaho).prpt | Bin 9307 -> 9855 bytes ... Loans Passed Final Maturity(Pentaho).prpt | Bin 9048 -> 9582 bytes ...ve Loans by Disbursal Period(Pentaho).prpt | Bin 23194 -> 23887 bytes ... in last installment Summary(Pentaho).prpt | Bin 9579 -> 10128 bytes ...ve Loans in last installment(Pentaho).prpt | Bin 22860 -> 23552 bytes .../pentahoReports/Aging Detail(Pentaho).prpt | Bin 8555 -> 9083 bytes ... Summary (Arrears in Months)(Pentaho).prpt | Bin 8630 -> 9192 bytes ...g Summary (Arrears in Weeks)(Pentaho).prpt | Bin 8785 -> 9353 bytes .../pentahoReports/Balance Outstanding.prpt | Bin 9436 -> 9891 bytes .../main/pentahoReports/Balance Sheet.prpt | Bin 22446 -> 23549 bytes .../Branch Expected Cash Flow.prpt | Bin 35048 -> 35549 bytes .../Client Listing(Pentaho).prpt | Bin 7662 -> 8177 bytes .../Client Loan Account Schedule.prpt | Bin 13698 -> 14409 bytes .../Client Loans Listing(Pentaho).prpt | Bin 10456 -> 10948 bytes .../Client Saving Transactions.prpt | Bin 8451 -> 8950 bytes .../Client Savings Summary.prpt | Bin 15945 -> 16637 bytes .../pentahoReports/Collection Report.prpt | Bin 9769 -> 10282 bytes .../main/pentahoReports/Disbursal Report.prpt | Bin 9334 -> 9770 bytes ...ted Payments By Date - Basic(Pentaho).prpt | Bin 8515 -> 9011 bytes ...Expected Payments By Date - Formatted.prpt | Bin 35580 -> 36111 bytes ...ween Dates Summary by Office(Pentaho).prpt | Bin 7745 -> 8313 bytes ...bursed Between Dates Summary(Pentaho).prpt | Bin 7509 -> 8076 bytes .../pentahoReports/GeneralLedgerReport.prpt | Bin 8548 -> 9036 bytes .../main/pentahoReports/Income Statement.prpt | Bin 17202 -> 18156 bytes .../Loan Account statement.prpt | Bin 7694 -> 8273 bytes .../Loan Transaction Receipt.prpt | Bin 6795 -> 7314 bytes ...g Disbursal Summary by Month(Pentaho).prpt | Bin 8131 -> 8691 bytes ...s Awaiting Disbursal Summary(Pentaho).prpt | Bin 7965 -> 8523 bytes .../Loans Awaiting Disbursal(Pentaho).prpt | Bin 9048 -> 9591 bytes .../Loans Pending Approval(Pentaho).prpt | Bin 8800 -> 9348 bytes ...Obligation Met Loans Details(Pentaho).prpt | Bin 9061 -> 9592 bytes ...Obligation Met Loans Summary(Pentaho).prpt | Bin 8752 -> 9315 bytes .../Portfolio at Risk by Branch(Pentaho).prpt | Bin 8671 -> 9220 bytes .../Portfolio at Risk(Pentaho).prpt | Bin 8469 -> 9025 bytes .../Rescheduled Loans(Pentaho).prpt | Bin 8415 -> 8960 bytes .../Saving Account Statement.prpt | Bin 7565 -> 8133 bytes .../Savings Transaction Receipt.prpt | Bin 6854 -> 7329 bytes .../pentahoReports/Savings Transactions.prpt | Bin 14997 -> 15703 bytes .../Staff Assignment History.prpt | Bin 6565 -> 7135 bytes .../main/pentahoReports/Trial Balance.prpt | Bin 7978 -> 8498 bytes .../TxnRunningBalances(Pentaho).prpt | Bin 8743 -> 9238 bytes .../Written-Off Loans(Pentaho).prpt | Bin 8739 -> 9275 bytes 46 files changed, 5 insertions(+), 16 deletions(-) diff --git a/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java index 154fc740d28..3a8f80a4c9b 100644 --- a/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java +++ b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java @@ -8,14 +8,12 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; -import java.sql.Connection; import java.sql.Date; import java.util.HashMap; import java.util.Locale; import java.util.Map; import java.util.Set; -import javax.sql.DataSource; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.Response; @@ -24,7 +22,6 @@ import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenantConnection; import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException; -import org.apache.fineract.infrastructure.core.service.RoutingDataSource; import org.apache.fineract.infrastructure.core.service.ThreadLocalContextUtil; import org.apache.fineract.infrastructure.report.annotation.ReportService; import org.apache.fineract.infrastructure.report.service.ReportingProcessService; @@ -56,18 +53,16 @@ public class PentahoReportingProcessServiceImpl implements ReportingProcessServi private final static Logger logger = LoggerFactory.getLogger(PentahoReportingProcessServiceImpl.class); public static final String MIFOS_BASE_DIR = System.getProperty("user.home") + File.separator + ".mifosx"; - private final DataSource dataSource; private final PlatformSecurityContext context; private boolean noPentaho = false; @Autowired - public PentahoReportingProcessServiceImpl(final PlatformSecurityContext context, final RoutingDataSource dataSource) { + public PentahoReportingProcessServiceImpl(final PlatformSecurityContext context) { // kick off pentaho reports server ClassicEngineBoot.getInstance().start(); this.noPentaho = false; this.context = context; - this.dataSource = dataSource; } @Override @@ -190,13 +185,10 @@ private void addParametersToReport(final MasterReport report, final Map@^oHCI*L^@T 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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Details(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans - Details(Pentaho).prpt index 3429338206f138ccd6d941d51c0ba63d56f659fc..91ae1be4088cde84c5713ebc48deeae90b6d0d16 100644 GIT binary patch literal 10150 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 literal 9655 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 Z$HSx`4FUPK5&rdBdqw)XUbljP{1@L_Hzxo9 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt index 34bc1543dd9613178f28baad24fc6d91a154d59b..a3b582964ef798f9b08cac2d52b607d585db9d05 100644 GIT binary patch literal 23695 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 literal 23008 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 IQUrwm09%AFr2qf` diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt index 0426d38ab1cd6431e214f07341204d435425d06d..6b20dbd37e890757a2c8b90b48d758bd9e2482da 100644 GIT binary patch literal 9855 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ℑ2?n<>UqRr0A_`9PGR;cO=1mwt137D%XNwT#*+23Ed+tv z-S|~v0nhU)+e!A+d|no-5>ZC8y`!N(Z^8_;6`nHksjkq=FFT)xL+txm`Af}@BKn>_ z!ian^XM%cq7=5vbh5h9Iczb`|r&07}(_ZYHFq+3<#rk86MgJB}c%3*hahg$VEzB2t z@2i7v6*|3n#sZrxZCYVSr>IapY9&VR0u<0L5+zyljyB_82NKUy_QV8)tga~cRntGM5UA> zKZenf8|A27u|jN-tR0y??IxLxFgQWT5Pfkpq&OBQU2|US&*0(IfA*~+qcR&QUp#O> zJ}3F$Et+RPYv7$8RcI4mjxbO36Q)dn1|jH)m=2aZ^}0ldIGu%T7g;Sv3Iza zlctP+3xtbfObZ=GPN9W|1}p2AgRHtluOfX%3Lh${vM1d1#v!@*(jbV}F^5eHXix?% z4r=l~Ct+9zx#h3>6Zq6fTDaRGa#?I;k_%_=OvKToxfLZ)_wy*$LzB~(tYOJY4Jj(o66O~;io_(;)(_(j&DJw*wx zJ~OlwMKc`%|Cw~^W9ny$J~&y4EsRo&q7+UfkVa+mA(EnT$I2I?jx2rq$`Wo4$B0p) z*mkpgd&w~W-GYTByX9k>Y9q@itEFbB@+jXW==$-qCO#Y1Ew5t;iPW&UW$1HnK@l4CEI zlJ8W5n59T=(*7M{+}zx~nYv|x*RWZH36%L69i9ti{@2w=y>gMnvvoHjo+I(wijDAS zp|g683OL!TKrGy2hzGV9gA;F4CQjX;wKCJupcL;`#GytCS9hvmrfP zaGEIY^FU7klO1Kx)JgDS!$e+s;2Oj-sK%=%+LkO_7iWHna(UJB>75LAvWy$mMi~i7 zJR1**=%SYKno7Qb_spnJ0S-NSD$#CX?A#o`4PV>Y4958WEuOj93>0sY4hrOctu({^{iWSbwCydu~sx~vUd)8E+_W^M-rUighte$V0|9mJ^RTPcc1x= z>PpvvVuq-i;a+I9+?jXkg$tL1DPCA@Tf>S@FbDdH{$Xda83s1d>@-bVV8wTZ8B+2_ zE1r2Jp971SC86!l&SpNcu_n8j5S_4K(KfmKbhF(jtdwmqdlK+XZv|$V5hwSrU1aMS{a!6N}N; zw>7J8F+YVN1at(apHECE+B3d`0Je)GW(=|1xEs(GRH?vQpqM79cNESCj=miy9%77b zaik;DYa;o)@P>us`mB?e*SYNt_k5ta#-voL>oD`aNLHv-l4XQJy)KBQV6iNOuB((s zTT?PQViwo?wt^ zMyp|JpRA2Jl7Vjp1;?>0NoQa8l{zWuD5>_d&B%&*ZM?lI$M^Jx!al4C_9hnM`9Yx6 zkv1*OkLKY}LV7Y(;J*|r1yd4QLh>O3?y1^V`Pl19X%z>5Y5zQZUNMATy~J$kYG z<*a6k5T(>Ke-WLFJ`z|IE|jB~?))&Vd5o6kS+fCn8srbuL1OU5R^se<-X0jdJ3=wSjXw3Az~$5hQ0~0V7%J;ouq3nQ zQs=Z;rk0D5PKUWjaF$qL)Ff66WmX$|g1L+{`KfS4XnATjvQ6b#0Lc~XL`PGrgwZ&G z>c{pn6|~7ulUX>ySu-o23%vT&muO2{^R^tJvOcth3pa}h7tE|~6JR@wjRNa(TRy;C zVmonxid6*5pst_YTi1X8gi-!_I40;4CsV0~dehoN59Z*+?Z^^lPD@nmxOHsPb2(Yp zM{qKyq+j6x^v2f>n#WeVPf)MXcaBOdxW$RnlVasY+dy zmFsfl$*JcPTkyr?dJgrOOjss<^kW#~4zKDEd*KuES($L;p5fa)RDT#*K~TFn4Q5Rq zi!F`Jsj5{xz*R%xjWQERm1oxk6FBL6a?8Ep)^?)n%WHi7WSKB13w2&D9t3Fk07& zXdI^_H$mJ9StJOPZh&cQqg$v*pyDMS%gS@Q`Q#04(kf6ipII%gmp1xfXUa`Ez&|l! zl=YtY4z709x&eWPP=4B*v1L~5ygpN!!3d8sgi4%7HFG;+YhflZ|H`9XN4!;LPA37C z%wUyvWJ$+>qn|&3n3^q3>SYe<#9@X#Ym6fj3OjQo_4#W?Ws8g5BXC!cr4)f;a)h8fq!CMGccHyTQ-&M`^rcQse5=CGx?~t ztyh#+zpE+>(*3%Gcwk&&sRdS38B>}fsTmf z9io3$4?ilFq*`l5o!|swfRp(QYz=K~oQ!RLrcWeF%BF`IN%)!{rmQ{R1qZsJb_8Jx zYLL~kHU=bU6t;7fcp=ECJ=%sR>vOw|aj%Cx%$tIGZ3E!iNp-^;-QBiA-C=j}8Z940 zj5NU;E!B)#QKN6Rc&%e@qFy`Vd`9>p0fRhD>`lnz0G2S#?f$T%&=dW|UE>F+z14D< zrgC_>fup<*8ZzZ2$Pa*J=V3y{76=;=+e#{NVs#`W%x)Ds*fGHD<28nlp|ZMSmJp=% z0u~m`mDX~=k#2hb@o#I=Bk;r`S2KC00+yfFD8Rvj1O2fAG%_|Zw=w^*Ed5!pOw*BD zWCn|_-?5WUFqLG!JWqg)lra;(dj(lZZTMc^Hi{_9nl$Zd)wIYQ$_fVA+BjjUF46G4 z$1ynlo!mQ_pQ2-Z|b`=Pi~bF$tux zfU5r+$HscM|I&AIn@(UiOH&!2w>PyShsfTato!%(Zhu`5|vb&Lv zR6Ks5?5RwiB*X;zU9}3A`6YEh0Ij%;+o{aF5z~?eGLg2HSMsn~l@$GRjQi>XbW3UG z8Qw4LXXTsSezUvCt{LEn8>+_+P*nz?%!LH)SSam>2H5CfE+tper*$)E;Gvx7pxtrno z%WiY+%~(+dWJ-VgB%kZsvUvhGfil!-N`m)f&K82MJSOgR|J5_ zMu}GEVST3%*CjnM9{$>Bh{EVBa{AbzWcVq&vX7qaz;@_eF%ET}GcfbGC z^nXVu1bh_wy^5 zHvInz?oU7em9qcI(ti2*kuo8$X8PZp?RV&3Q~z)Kdk8-W$)C*b7ql-J+WdFu-+A8e zZhmFz|K{dT-t)Vg8p1zV(El&^|Ku9Kz)8U|q!ax+=JC6a=zcHUAM@&${S}D36bvjF S0KBaX1t0+f0FaXXxcWaL#u6C- literal 9307 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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt index 70da51a0060f22168bea5a4a70c00ef46a753899..b874416b9dbf62b78eb2a5020997d2a028eac5c1 100644 GIT binary patch literal 9582 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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans by Disbursal Period(Pentaho).prpt index 709040ff3122ddca4483f1122438108d0e969c09..e6cf011881a411cb58bc0be94a74bb7042d581be 100644 GIT binary patch literal 23887 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 o84CUVBL1iE_kMpn{(h-dtVv)yncP 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 R^GSgSkcI*Pm`Q$q`#-Oqmv#UE literal 9579 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 D1~CW# diff --git a/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt index 256450bf68a040839070d27a1d394059f5580b60..a28291f6fb9c9b9172741c20f41194d5c4752b95 100644 GIT binary patch literal 23552 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 literal 22860 zcmaI+V~}V~uq}$VZQHhO+qP}nwr$(Ct<|>8)pqw?-+t%aA2;IcipYriF=s}Nkuxzf zOFc5?=sEQ!1q?{PNt)ZQz znW?i2orkSWYl^fTFde_L@?s0`4H z4FpjWqP3Ek)8uLd$*FfwrewD2+D?i)pTQo{^zx1kYY1O3j#%l+EY2U#bJHmfstHaH z=*7!5awlP9D4azFhH|1Cj9}P->)J*5dmAFl-NF^$a2gLZ-fnzkH-deKv&nf@`r`SQ z07SG!xmFDmTjiO`q$^x{=tEn ze+pF9kA6IkNFDkfzxlk*U4AsxEudE=Yt0}>HG>2ob){PKNbRS?pU5)NgDdrFO90fY z{wx>xXa%29NTeF?{GqX|G0Nh;$T(!>I0an-Th<%;SgB#XbTg`UUTJKrryZr)@UX`q zENetvb(576EC`}-3NeyOG74DW6R<&8Gb~4`ImU}J6ce{(lM7d$rZImHIU#;}>&i*; z6;z+Yu17D(!`YG|-=kh9#Cd@yL5peQ(;q%tBy7801y|bEd?T?y3Ii$VFD$V zGin&x0xLTnxd|E4I8rtj*xy+jX8m1w5mNEQzd*loMkwvVI6TH5vG4^eI?%JB3z7I0 zv#E8DxG8~#-VRT0VXyGaSTSWYI=W)0-YNJ|*s^W{15Nux_~{fDqyI!W?<*B`$EBUR z2U&7)jJ`lE9o9Xv_w^A!J}1OY6Xy>z`V0D>t(ZA-4BYICcU2bAh~K} z#`xC+-y0#kM?`P@=jOvI?{j(?marL#8f%v6CELo=u}*1H728T0`8&ClM?#MTjD62T(w294``-34;9wAAzYEb1)jP#2K2pK*H4*gwY?tdJ<+h;re1}au z1sOVz5!p@%ngw|5>rCvYpg==8&o_w8{y{3pSk1d>SiijT6YM|W1ls%M1OH$l{R97h z|45PkJz-+#VrXJ&W@%^nUtIYQ|4r7895y3D=-neq+MRnkM5UEtQ$>rAs1RtSgD&Tb z&EcvweH%Lh;coBIx1>-&0TC<9_VW@KLu;BBcg-EZ(A@j{u~FUC8ng zVQ(K-EZ^c$3p>J0vxERy>l22gLzk#$PC&fJlWD6jq85B0@f%CEiMM&lRPHPv=nSW zqD$3MU=Pp7J6M?#gaS(}##4jIbYPQFqN`Zs6j*w_JM60&->k!|F9Ll>6LJ}a0wg?$^It5hAPc?yf~$sYJ;%MW&tp>dOqI(+)pt9J!V%Fl z$zQ*`Ts&q2TnstbWs<#E-GDqibnSRZ2M()-MZ+U##zq^r+yKy_)15T7hB!HqunR_| zyIwjD#QWx~%YwzhV{O94jo)wrN79ymQhZ+OBmVrnZZa5mZZk0e;i)ASb|Z^{N8f~r zTEF4~h(6oe$5M3eZC@BE+J9dZ35$kD(Ta=u)>**z0}o6{(Xt6ewJC&0z#($SMkup< zpamK>q&(fbMt@X=GnbwST*4Kf4u4^S<^w^pxQJL4WjwxJ^B9qgqbd}c(0wO}`9>)> z6T)_0suUjdFjOd!==h{lXQ{00*EQ@9-6WgQrrW@vYkIg;ShkMlQ&if;!BAc@uUQr9 z(JF6m(?td|Ij+vc=1+=m?E%~;gJl41`*dd&YEDZUJD*y5`TrF_a@zA3*vX1WFGJC| zka31iC9?c|#;nMHE*vy3I`e0jg-Z%Gu(VI8*`Aj4_W$R6;1F52t);TS004i8|2JoZ z`#;X;Y;0j_`#*W3baBvbhyey{|Ffi5IMo}wgK&AsR-OTG09FsX(vfJ3z{7j7$-;tt zx!Tmf&99SpcSuDyaa8ypXy4uHMT$E_^=z1qQ0M0})uoGo*yM*lJUI zI)lji)*dNo2qSwUm=uBn5+_O&i>J^PIl{x-`~q^rbf@S>*Tg3qCLP!AOfjjL>{nB4$@B%5JSDW^iD-^X?{wi1x#o6L! zy8dL%`+rza0jv6)`iHR?=zn7Y`~S~^y{nV4sWZK?y{&`2tDOn0iSvK4$u({eYM1~) z@Z% zv)CJ8F4tpw^VZ7_7@G4C7i*OUR~hYX1+*{Q!4(}jb@d=P%ZObj_^lH9%$CuK|C;I+ zmIXmIz(2jn3-CWXhF#sWdj30K-9P!i2UWEH4+3XLoBwn8RxNFN>`qj_e0@QTt<;tV zF~{cfU}S8E9=WyJn-0mSHhCu2;lvDuVaUnETG)p@Z#a7A^lMS0!3Y+TdG}j%xCgG% zFuW^zqbU9s8r7kRVXfm240Jg-wK0_O=8bY0#xf1U)X1GmnJUs~XEQTSU1r^dkPA)N zB69#Q2Q0*g%_a$xyn9kam%$Mi+329N>15zyDK`e|+$l|?ju}VVnzAVS3@*^H`-kMn zwJVQa(5E-{?jNsJo@D~+RF3EDx8_D=3QY!6jwQR+=04Jj#mT{Y$3Z7yb*D=f@I*sM zKb)LCpZ7z1JZ^+^LVQ3)6OggD<5DNO) znmPV8kqDKa8S{hVC~F|U6pS`{5SCaB38nV54z?-2dQ1a&ouWljYNu&gq8qhz(n3y3 z7GfT7h_Q@9M5R0(xroeMNJS*%tTM>oGjxdf9J_=O$LSQ8vukTzidh7y-P%{#=uvn+r>wJt`6!%h0(afj{=g655)qHSHPSV9d7;!V@^7q? zemRB)NLP3(d@%E%BLxW)Biy1?F)WE@mIryV%%rxnFe=&dVojx_NC^%$bZ73JBqXrN zYtVwZWFRS_)NYVIfws9;7>BZ}#SDCALn5Tf%mO6IP!g4YteKbb<Qw z!3$9Hqk}feNpD1uc#1g}6~N&H2!>gmsWFNAS9k!*r5cDh^&8PCWRF74ndn$*qbWfP zA*6JeJ=l{@K;CDKNt^kYsdlR#f^Y>W29tCI<`#-8D%9SUN`Y4nnMGG23V1yAT!Obt z*?CMYdmvex+4+iFLLfZg`}?D7Xx9x(Me>6~f#Il^fh^j`Vk}iJmM9>N0|TPHXcf9< zZg|DzLRP~`RCCUOltKC5IDq`l_)rE1RCQC1z=q=L3Vm(N5tO_;du{L*{X7A>>EcFGmJ< z2geHJ1!YPW$wazl!kex+R+zB6<)(blq2X{DfWhxOI#S`*4;b7ZLxwoQ>H(f5EsM@4 zD}Vjtf!|tlxz-aIp6f(f$k^MQR6VXsY!b5@Sf64ok#>WlxB%nMZh^Si2AW9n0a9Dl z2yg?4GAd{5KN{?YHSM*7Juw_$p$YaCN&C?#oar9g+j_8KB z420+RaVhkmt#YaXPrzB!xaQ*Z1jMm7kpt-5j;pHO;OyqgTGjiq)+d~|W~(r~IQ?YV zc^t&*0Y-`a@v;KD=?B4m>=52IUwzn#%awGayxb#gGIiTkHKdza$1Ls; zZDDcNP;{mWH;ja(szr86`GLxI6V*|xe*j<;lROmu-4PL7<-9yH=4m@^zn&nrRIF(3 z2{aQngd@B3_v=yX1SX5bg}6o%OWaS;(5eZ!3c=c<*&7D6F#TM%qWA+^D-{>y z8lM9lM;tw4q0j}(iTLhA=u`hmm(9X|*)5dJIb$hOdD=)bXnoC~OaHGNh#2(1&p$p9sKS+cqi% zZF}N?P*3#UsUL6;*C@J6>Jhz$%wuMgQB|eO+^2ri1|xP-dnGwY{K9?0uW3_s54i*K z&Ox_1LN@rQerkEg!ClUYuHlQJ%+xVl|G0rE$1bZ-InkD9#eu*n2!!OGA%PEZ(62$4 z87ww+*)g_15eCBG4oj$=VK0mFmv02Qy#%g9xnrm2xMycE}-p-bza9e$gP-dz}ON;R#H1Z>a3D`KQn9aYyjRs099as+@P#n zK2T$AhWE6$vgSlIjX~DbYG`3U2X6*#nwp?fLm*79swGUUu6pY7|IM`(?XCw>H(03L z&?unPxevvJNymb1sG1HOOJ>kdIJ)HN>Bci_SIA@6eD;aBe!< zJdEG8lv{_EyPnt{EO9L3ecu=kbx6m0>f8!B3Nj6Y(a-%lIQ_1WMtlI@`_&vIoc@y7 zkgP+)++~mm1JT?MlGb&Z?xaF<&aKhVf)b;lJ^^_=7Pu(i+Fgm&n2+(rJ-={{V9$;u zwIFND4bmNviQjhrjdA|a;Ng>pCukM3j#uU$!?WB0bUSE)m*v{@>Sk+kK^Kk&V{adm zN=FHdRzg)0&faPfq)~2vjWAgu?BHK_@0tVTC`jL={CF6J?hb7Xw%1{76y6(DFIKTQ zg%{`_6d~uQpRGoQVb?|=`=d13H1HV?8;ZKKPu*~k2MqHmYrcs48Rj%Qs%6gO0$YdQ zj?yEYnzvMn8mbfxnA?WjwlZ4@yk9@l7BP=@kVNdQy*j5vMVQf4eBD+m+Z@Ncjp@h0)m2b1apI1~@R#!%1xAAg` zjDGtkHW(;0a)&w0J^nu{!iCvkTxvuz!UZ}xKP{Ap@kVE6qRymbEiUnO|mfwDdZ z2>_5v@V`}p|8?|i3_a~#|EH~Rle=NJ#epKQ_lX+xun4qr%W7PHPIH4|kzJJG2SEFW zO;L)4gevm$Sy-`~bi=Y|674Y|VvE$%(?fEs>-2ahIl2`596Z89c|*ZfGbm3M=a{za zA^w+-g7|%Bry3H>8c8YA^d+dWr^Lmz+LBKPF~2G263PpOCQ|Av^b`;sjM`vWAb1zZ zQ=yp=0?5R=dBK@s*+>(sJ{r0Q_8e>2chrecw36-KU!S62S-d%+DWk%N%34ylC%&e_ zXLU=wZaW?N2uR72+Pp8GMvW)+DZ&qMZ$n&zhA=gp2g(=zy0l#-jHXoHMq>xHz#@#H z$QpDQe8Q?>xzVZwb^MtE4rXB}_~-FzkD?+IQ3gA){TB)Uo2Z882ZIRQ&y3bg`H=Nl z_-%E;Rn?z(6i}J{F@P2CB+!p>t3e+k=0gk*16>)W7lp|S)H96p8eM3$Kpo;43^Y-! zpTtxF3fB8bsA3t#SO+H4i_!$8G{cP2B-QCf%JN&uH*G^%+`j5V@BJ^}p!ldDKyoM( zu}v3qsCHWEWsUpw8iSJgmv&l_rZ+UB%LW3qORo{x04SibcqHhwdp(KeP^@TLY`90y zYDz+j6=WdrHw9S~amW||6&r96Y6Z&=ASmHL4TcsCWpn*UMPV%IyOWNfGq-f5jZnu( zG%_$G55h48bwj|^O!)qpO58HFb>>7F-NT3}SbGrWx-0F@1d;mY(!!>YcW2!q7&o7X zN)Ty;$zz#RAglvk0pB}h>bOX78P~OW;$#;hLQGCicxYA7gi=EonJTZWY1ubxGLbah zLyGwE0_nf=A4a(3JQcOvU@fsdB{meQ9z+0E2e4?qk?5>22Wmb-GJ8SICkG7Yr*Z~y zWP!gvayAvdl*99QXTpd*3fNpslcZ(1#(>{R9g=I|WJXY-MR+S_;m>CiN}CDud*;9A z?H|R}@dDs9vEY?%f`r$VugVUdJ=a#c zXI!vRF{avL+;|^bM9U#IM@tdTio$KZrNQbar<%%=+K@kWh_qCKgvx8aU=GTumWR&7 zrmaw9su?deY4w5yG9NP2HGKqrGYjoHr<9zqr?FzpY?!f5W~e2I+GxVK6%?e3e{dvx zp?>gjYu0j4gNq-egeWvsDKQbJAhl!NiKnU;6JwG#upKX#jW%h`9hn0uO`o`@NjB$6 zDl>TEVMiiTm-e;WmI+t+k>-LnlgF5T4qVg3euFV@ptI!JUZ9C7;k|?=+90Ow`5cD0 zxz`>`?5~sI@H5Q1rj0rRN1sYGc(kEz#iCu$5m}xOCpN_27(Vo#g#t8x6EE?8eo`Jn zfT?`LQC!oNhyj=M_60n_B>cn%X`X{ObW?X4W~$*P7B>PszzF<2wgj<-#(jV;ESUS> z_1+e3FwbzYi~|RrYR>IVH2;aJJ=r^eDuBzL>C@|uh#wVu?9tf`XDJwn)}y;+$T4<= zu_Dif!6U!^yJ1c+VS}9c9@%p={jT7!K}N?ffDuv3N-)u2?-W6L&IX(*%eQ$*~1#K3-eKh-T0R zDdWd>_W>z^E^|A6EJEF#Xnrs0lDGrx#|ch6lp6@#E7!B+>|5@p0VYTE`xDyra#|_r z{`RO6*LO)48Hrc^@X3N=R70|)mT2wWSeiecQLJ62_+{4IXAJd>O=>4o#PNiEdpwVc zPm3P}9HV{8?RRgS&J~F7@uX#aCO0qjRMnaC;i}I=Z$?Y6`fD>d9c>HkZkvkaE_6ZN z>0{wFG?4?6HBDZsZ?8w?Hyf1Fn^tViL|3`g$UrwPMD|SF=b<77luBGYFK#mf;3gx{(>TR!FKq^;u+F;dN7F5HF<}H&w1?79q%R_p{GNwx~ zcB3NKwHPIN`J3J{>OM0X_6_o5a!;4b`!x&*H@P7>f2!_u5i81ZPDsvqYs-~Z15>$3 z;2h;bXId+jGd9XP4tn-Xup>doZ$>CJ3x-Q@>IQgXQ#Z5f_#+#3g1#vg}>zq{2x!#7@EDC6@Pu-rA(~)2l+MAA z_U8`&e6kZ;v-#Z2oaY{Aw|U+k+hTF4Q8^Gm09vX44hBF0$Ko9p2mS9`C(zeL zp&j7_y+Mdi^Afhw@V-uTNxz3L*gsu4H}YH)r?t*|pLN`0Tl2S(!24%s*bomIMs6`7;on6T6ac7JYlJ6HEl+~dMV2>Nb)_lhK$Av0c?9GD;rF?OMcW; zq_dv<<0!mJIguevhoGXRo?@)mfFbBC>el{x2Rn1>sftLi;RH?4L4}CwYfs%*`3!;P zA2}Wsj;TF^^?%P3LPDT#YYoSS17nTDxmflSS<1$rEN=V!3@t2OG`;=iQV=2u@Jolo zOxJ$B@WV#`c&+f)+CK}Qs~${|AgZJ_ZQa@VdmTPYYFKlf{eB<`hdHKkeEApB=22Qk z|JGN;mYmZ|{;3xS1i*~5yntKjGY8l!1E7bzgR!Yb9kD; z=dwwSgna2YGgLuDX6yecFELbX?rKy*ctqsZR=KKjSOBr@%N?4O| zeyEbsy{IC`4fx2xdAKIcr2Jwh!K=U~`qAnns>*)4SoX?m%aMx_iqV3xVm82*8Wf!) z)nzYmq#VCGL6@f|q#0veZUpI=v=YaZXnkDf*hCU* zVrT8dYw|?C3HKYx-34n50(pgZ;&pTQ*L7mw-l{(FUKmypU?PO*upm+pfYcC88 z9?vf~RrnWas{UYD-->!Ra68-of|rIv0L#~H!5=teQ~)Ib19z=`8#8=FPI-u&FCX^< zDeofQWAAI3#K!;!U&|hu%Q9+i4S$e2#xwLnei%hs|N0#+9)6oxHY{H~siI-kY==Mu zD!AeDnwy)J-bi9b+cy!`mij`wLQ5l}Mncffy}RMMGf~A};h4hTcLs^N;D>gtI

1wFgDmh(*Jvv4$xyAxoPXZYsO0>`s#Cb=-@2$~3UTCP+fZ>@IOIeU>?yBsZFt>@W-?h9ZG}AIV$cK}}f*a6vVaoJKa$ zXD{1ocsuz?1M|5(v)`+z`LOkRq=Z4ayWvRLqM!mi&2Agk;m>~Kkk|(>6m08Aw)I_{ z7uRWhbBFruCc~z>l+x77#aZ(77a7$NMc+7R7GchTW3KQAt~ZS5#heY(({<{M4j(5a zAdNAvLp@w|0zSkn^q`)$cMfh)d;2Zp5Qq-5lYRCjgG4O7qq_lmQ<&r>z61j85u*Y? zYR0r?*eXwzyVnc5FFCKrL<3?p9WtDf&ILCx63t={+SZ$8rWWH6AwV~xTn(C1wYr9! z!OalW&)q~Fwc-x7{o%wV1|U(=N>oXtQ|KwOE z#AgH>_nE9HWzu#MIHHm=R`6MNl|#39_F0PeW=e;=<=zub{^49mG)g(~G{Qy!wuwRM z)56SM&SF`mtfRScTF<%+thq{>y!TXv#v3Xy^WVQltZj!ACumWtQg%#+d=(X%Y_a_u zG>YaD8#9k3Yt)`|u@fT8g^?+=;63X>%dRV*2fIh0ki zMBtY-*js~mBm`&BD>gW!F0~HF^OUU+F#sM-?EulaK__!q`|D)w>)yH{Jht{1G(KPi zycpZbbi22tC91k<$sJJ#$C1>O8BK;mS@oSfx;Py;#krSHr)=Cw7c87v$jdC9MK(6M zKdL0aV}D9-wS}qex2#*}D)%!2Senp|OQMYH`}foNUsrrN9{0YyFsg9e4it|nKdVqre-4!#iift@=cNxQ!0UNblU@-DiG zrzTphooiyn>GlIEO0O1N%Y0p`jjc{2lE%j{AC29dnUcjzIXC|}|1+L$ z_>n+55BHfLLuHC|nOqT4xA!ci94jM_Qp8*Neu9@S-ju3VFsFw6(a&TL#2LL@;et*L z3&?F+TuyNoit&PlktCowIwhF|opUn|M(xSJ7LyB->~$G#_l)m0>vQQE0p}cM#R~Pv z&5lEMU%zU_tIpzM$L638W~824Y`N^XF75b`1DcVWSICobiUT*d24Upa&6>k(z?SR0 zS=MmZ!?yx-`oTm?S_G}cZTCgTlsWF>>5NG+b3?_;FXL*w%sPdX5i_C)GPVj0>)^Sj zT@zV$SgYn1i}!pfPLCi2(YUwpjk&zM%wq8)>{&}texN8)2{r;5IS19=_=g7L)40uD zR85YF?(3)sR+?>6^vNOUf(G+hlDGO(ciOI6-KbCWK<#7Yh*HB>~{ zw9`ur0QvLH;cg!J8btB5U1JW8k+e6@5d_i0Db~K`6Q)d@ur_?TvaW1>V2vW7v9NH< zNQ5!yJ#~ANZsE1<_iC0x*zT6^_3nvar={l%J=(Wn$6KGGRazpCQC}#+*wTt9gk9gZ zs5&?SstORKz#>VBySRCN;I!Z@$wAvewY$-p=AN?|+|^oF$}G;i_Tj6c8#g+i#Ma{W zp(cm^K<$S1qmks@TcfE+PP++~pyWu9Ig=)mn6U2wHivP(&yNWE^Sq_~1tFgH*nQ`Z zON7{Q;yeRgPsiFrKdBIfea#|jZcgQ50D^#wrIBaEJ<6k3mP9s{qY`Px$46;>$V)$d z2t8R1w$&QL^G9Eg>6vAuqMS1*H2hSKR8Y2~-V)gyG`L~XyVo3nBl@KPy=2lI>kU_e zr`7UXOav+Nblh!HwIhuvVNU|86(j4$GZ*3JZIo9P(pRenwj&HD0Y5t9ms%U#&zoF1 z>i1BVzuiq^)**dlpFQZY4&K(!#nKJ9YOR>~Z(2=loqQ;r&%DA>5Y~3R3D~ zOh85Hze=Stu9qda_id@o{S*S{@n_bCHegc|N2lK-2{{|6r^rF)eBB{8gVjxlCb2J+ zMoHQr^TlA2jj&8?^z&2+HN0frunQcm-FZWsHi_haPOXqJct3b!XU0$YNqBU?I4zyz z3a)C&x)ySo7iA3(6dY)0&Uh)>=p&o zb1`qdBV$N&em*{f;Gulv29J$9vimh$z{o$ox&b$sonJAD;m4POMl$#CVpj6O=eAz$ z3R=qVTr*htxyQOS^KBO_yVXxPCH0j6)yF?~Sl+Nx>dkk+%< z*f8Jq76bP6lY0&xH3l^Ii6wWKuSap;;$PjT3+BC{Kg)1q6H~Aa_-AkMGhOzz50&Ow z(Qk(J4S#qTp^tNBa>56Gju{n&6wWSo1h??HR1jx~UmptOgZoFG&LQxBepl;oFnlQV zF~xJJwwz&zdCc8p$k#S!Hzo5;t+FZSvRVFBpH^#Xxd{xk3?gH^ikMC(?Z5>DX|S>_ z!b(Lgv$CviHUevHp)-YHhPZx!B+F<-oY+$?xAGi(?z~Z2BNdFg!5RDk3%fY<(ZyLB z;gD!f+P7yAjG81zzOeGVj_<1wk#VYQ#EZ+shC6cdLelLJ3Sm2(F^SsOB4j19B^(eM zLm|4AZ8WfaGV40DpJZi~LJQRjTUpzb`C!D;m!{jqIW>49h8c)u6m?RQ?H0D`#`5j9 zzQ-HqUniC`<2q?R{>nZU+{^@xA~7i_Vr^pJ(R2uFToML}G9ouhLYmpz1(kk1CZsZU zVQGKLYbjFxWLS{yM}Veq;1i1-Ijw1&@Z?Nu@^a_SVEaz{{H5S+WYBBW6e1;DSINr; zkIwTX|GPw*>XVf>R4&B$e4EJCwOT-_{1VJ)0u%Fcg?-c%_c>9QtwS>#_c7sM?)O_+ zVmwKIkDGT(={+g83>H>2B|ZS*uc$l` zx$y?gK`pMAq!z(0G&V3h=H|ubEUw2(T-D%CzpJ#_UY|+)H`>m7>2>_t}XG=MP%uTF+4TN*Y+if~n zkztpwa#|$f1yGuvPIg4n_`M zGUNC%LTR#Smq3#YOK;h(ru8BD+Q&ZMAGFFQKB-*q@N#?y-ZRJu>1IH#QLy#LzEhvK z)m-^V5xnqWQ@`*|1ty=5%tMRmj{h}|m*O|E@-RN9@B1?+yElM8O{Q04?)?sXKOi*w zJt(v?bhmZ>bz1JH0&VAcv3(DJ;P^X${VbfDX+insW~`|IsrgQ9M@I9|+EC>z(J}i4 zeG%*$?Mf=WFL>LSiSraczI>ud^31#!ScRGyMGnvmF?s}%4#QV^cszzS zpq4FElBJJuj7Q}8V1;^(3;GatOo443@Ge&#(>8^vgx+fkNGq6}+r-#H{Xyu> zPMU>7+AKxnsEd*a^sW{D3t@t%gcj*^M|(i42nUIhBsq~-e5%-WHAPSTaCVT&EbJH~ z`$SQrIQ2rLkcWOZ=*PgwmY*ObukT4-{3MqguBr=BQ$@p&u5R&&1AIrUhVwV#Hh`<` zaI>c_I9`^-=w_Ly7tkRl7?eFvwX~STL_zdQG;cBp5mq83Tsoy3Lum(RnT`cZr%2&w z^4nwT^3tIne-3Dl+7C#&8neQ^!FD~D;bz;_-x!s;FR(xzBl{kp6d z37VvsdnG&7{$^YxCuPpFRqyvP{UpTs@W6L%-Ux5biKs|^cok1=M@Uy4yuKkNNB7r6bP)YZL9g#(~=5XUk+`z zvw+?RH9>u5k5b{R2%C(Sas*8#{#xzJ@_8y6p*x^hg!aU09m?|`TgUiPOmTWdq& zob+9|T;}SM6yFF`l*cs2#-<5Bsl=lyeXdK1wsKF4VMUY)%l18S>zaah7URXHzx{M_ z+j-McwsT2(*r9ZOJ#j^0N2%^i7QqkKW8Q=^Pz=E!*XuVbYs8RqX0^qQu*)5onq0BI zu*nUv%jKJjP%-HUBxhZv-mWBQ9G28tt+Bx`O(nocy6Q{IewM6kD0gM*%RaY+GRebUR2Y<{*v5z|#i_Cm3s z@6}Bg)XN4}aM!$OV=(oJ|FHLrhBvR0tG$f_NFxPf5foqQIBeO$Ebi=)4!mhBxRYl= z*ncZcNd$L^(m7KfTMH)`J9lu^6$Z!bnw@N=b0X~GTY9Cx&E2i=zR`m~O@Ht7$C<$! z=n`YsRqBQvuIH(V#gj@mm`&g6;Nz!6os9}GNu8VI_q_p=qBV8-vfnpsF&VQVcDoFo zM#FUIEplo#k(^Hw6}Q;TE+M8f+02z&ob|4ndL%QPF%%RX5!}$b7O;GeT}{a!Jmg|T zj6U^1kt3AZWvZIk93$xd#&gpv%6{d2UB#p1dIzN}2LVY6_+RWW<$Y1`^XL2P{ts7- z2q63Q1_FQ&05oKt^}CHg912%wb%MtJEB{9RliYlaoP6K9JW!qghOEg{^$Yny{*C-6 z&G{I4_a6B%>G^Nyo-?(-&>!UA=zmg+kI|>@%cg&b#(%?x+5L_EApgexlk9kmoqk`V z{158m|6kGn;xHZ*q2C9Q4en1y<1sqsW^v2UkUq%odo{mY^|u*+@*WT9zW3;Qf1&@y zf;?9CkVgpEzkT)~A1nL6oW+AOvU_F7_e{oPa^@cfugvp) z%S)Vp&#OQClLs9?{e*PSR{aX~f4h~(_zw=^5C4t(ARpWCGY)??1CQ}<@A3a>4gL*# dCFOV8JV<3ZnENgJvyVar0ATXLGkVWpy;OcQvwfV0AWgbZ~aHvbSJ0u{CmWu`*G4GKce|itx+alZAf^?$ec` zl)4y;tP+6D&dA=%+|0$5)x*xVIZ58WhXNz?S|Frv{o|Sjy^_0#nD={31#5Kz1TM+* z(Uj?0dT7YtB08;UVh`O*e@M;5FE^gnFy zxD#y6d98XMo(R>u<=dpaKi&Tc73bpZ2}#$C_y+n$XLQdQs){^3LJf~W6%Hf>ggp!d z#6M5#uPB+h8vV~qZYcFo;Piv9af+@(rpKj*=KBcr+c^OH&=exa>?|00QLzqI3rl7X zOJl47m)YR!DT)1&381)8osxBPIK2`TjNE~Eg)?SHHTm|jWxDd7S7SVscD|Ha(1jCf zPN8N6$#E>6stNAQs_XzxEr^3HjW-Vtkyxv7ylexpdR!xHxxNJ>%JR6wC^)TOQ+p)= zCr}ht>K$-eBwK$w#G@I(ye>y`ik z0Vkn+_W7GdLJW_`?~Y@ynmRBvcmcP4wS3sWg!fMClhedQ=lpCGGtV4o|% z3h3~&8XX)?B2v_IaWD|4-1!t5c!Z^!y&JcuP-*?wP$55MfQf^>>r?JLM@uS3OsS6@ zMe$vIKFo{Yf@ zIKB-JSv!%Q)pNU}_gf%>O(3Qpu6L4GY=nx{bv*3({<`38(pg@|!5Xi05;k%U2e!R9 zGBZD&Ts$WV~ZxpCp&Rlk{XGIYV*E(`+mbT(pvvAJ400F8oC+bzsP%GuIB) z86obAHhm$K6z4Ff-yj{Oy0#awpQlU@tT7RNnc%%Ux?yRYUkxKt|MKMY%-$cXnDGFZPHi=FLxN8E zloHZzqVtVD%|yuEzC3J2ZZQ5zlR6)SD@A|-2NLUefuWezIr_Yub%j06km+T@(mjn( zO#{;OaN7Y=57t>_mhErW`No&WczSS+3^y#lNTlT#upG_D**RQ0dBrim7lUJ$^Hg2=Lx)U9gN>_8jIFKa zb{|P-3AEs$Xy;$R(tq$g4%lzM)?Ca(Yf*W_)(*6nJVkTT#F6XVDD27g7M)28-xo~u z)cRs~`l3OgyT~^U9bqhu)QCdau|%W1JC05$t2>f1*7LFnp{9!YyM*kS+EK+vOU51j z-N}KHsy<&d6Je(9(pNQ#jd^WZJg9SViFh5X$i;gJMRqgE0Nm+- z$!qx;w6QnrA#OC2kT-sJbl4|;`*c>b0O8cvQwnqdL1sj{33r3>uaJ7-5V_%J{;d@7 z#*~XQx7lyl7vO0aNHyb6r{N~wW>r^40rkZBLj?DAV0!ipH7(rta3JA)eU&UQ%NZw+ z=@yNQMM~y8mt*!L@})8Fg|r89%;BxvQaTJ5_Axddj!PDIj4&sTehL<^BX*#T`@7d( z>@DHwlPNbHn}4jcKz_P)7-pkttBrDrZRa%!{5B}Jb!ndMImd#K{ODdlLqJ?Tb3D+fJFCtP9nExZH_qg~G#oy1~+t zZ?@9Rzs2v9$a=TBete(w(P+z38q!c-V`)BDDY(|lA|`Ai_6h~5`6DK@x@T|^SE2Q? z?noMy&6xvMLN`I?U=R%gJt9e@6p?Vg8+N#dg~cJ_lG$3pslKUCCQ4c?l*ZM)l#3?- ziNE$xY`zedk$oMjaMZIS7vz7}$M{qEOPo;3Ppu<=bcys}5IjH~i#dA=H1H1>%3rf`gm0iJ1$ViG!V^gPXl6i>b?V$#IJTAw6w1 zB*A_m9t(E0#y?a0(zL^C)_5i#d~Nc-&5m@TjJ6{(p?!<6E^VxK7tBvon~(M4KIhU_ zAT0ET7|-@tT|V=&hej6ICMB9@CRM|`nS<@jbacbVPM+Ti$}r|r2)Zdp-nZj$es#il zhRThh@!mhRzzgy@j-kirJf2VQSMxOfIgWULdEnw?`@b(=tz+kcEr9hv@`$8i?O?aj zw-YQ%5l}SzWp~hioz*mIMH!G2Zx>*0`a&@ zsMF$AIht=hkh|P4*F|GdgzBU=Haqjgt&KbsfIv;V{PBe&YBOO(5k`&fSG`3<<&e{H zQCs}HV|dhl15eziUh3S7Lyj;v^uv@YYU%;VRjdtWb;PA|dyOwyS(YB(+D#&A#Cf}! zAgp}BFqufL>_3-nk%7(hK`=b*o7moyZt z&MINIVt73_Tk9{q`3I4zL(+BIH(%SY=do2Y9uD1? z##S zI)H{3G8s)N_&w)0TSqBG4^Wg<^{cWeshRl0Wc6Lt?P#7@;tQega?U+bbGQBKX z)o))VFLz`S=v+iNlwKgVSgcwA{+n_rRk2?B9EbuWOo62$n%9h?U$)7C{pL3Bo5@! z2rZBz#D&sOP+&QliI|9S^XcAmfoQF4A4sxz@saxwQbDm&eJ#2i1LIhzVhCR2OJy=@ zN$`mL?v=O)yM?%F&LtG8(P9ofuv5BNSX79Sy72a#;k*-&bTADzCKB|k1yEr9Fc7%M z{7gsGXM`B8L~Fh+7}PMB6mB`oL?`UFtUyh)l$6qMXnZqcB%Ew1V^Cyl4tJJ>#UeM= z&PE`81U1t^-+pDT4!qW8`);P3LS&%bcdTjVcc2KS-rmn)CZu_H1JqmB|;&leEvWM&d95_^T?y9O=ClgGaHu!Jp#H zh+r}}3(3?)rx74xaK3bZa07U428+Mu2^>7@r@}e+&N46lhyiN1+tJMUb+FpzixXkq>}M zH+P?Na3){%wFv_X-=W8C=a?Y#>)P1baj&p}%TnU1bnbJlMnxZ8yDR0ZrZqGV@DRhG z%VOmqc^+A&C3ZLpO?S@e z_N*y^@puv)!U7$bxbyLjAIZrTr&e|vcX~1fg$POm+XQ(uCWFS@dU?)ZPtarGA1G(; zZ`4khYIJUb#^uRx?dcmV0bgk533sGKUf8fF=}MqQy)MUNZF`Z3S7^B0I^&Z!2REXD zb=Kv&tn5bHKHnn~Q2Rkx(IW$D^gFW1jBD8o#V`YYV|*Zza!|Ec(d(VD;|_hCjK+kI zbM1i{tpL_bF%cgSnQs8jX?%H>P3-dkT7WVVnc zs9~BK9i7dJ_6nGk_eMry^4bf^10=PdHpB!!tj4~P!vCa)rmovv({+(15c^&oz}%;j zHIZI$UXYc%E!3h1S7WBqED}pO2e$?-c(g`Bo}H7`g!cHc1kB=!7@(<*2M2)(*2g{3 zTOm0wFTMwcS?`rBZ*V*=C@H^rgukdA?(m68DW0gN{V5?Qdd_=`5Tt^;1NPqnWQkPiPlUe{_i0MY)p*so;IUAV>2<1m>tD7_Pm=jDtkqXW zvwNAc$_{EphtxK;%N@b?om*WsesGJtr7oLh*veH7RK&LC4`55^4}NDh5gOAvrOggc z;nY_};4ilq?dzO6H9f{RE4zn%(L|a=?w+bFeDVvEnl%>iPLTSQ?t|-nQ+&bbY;0)W zd>hM#vRB`>w{L))45)1iISB%b9)S_Q>8A@(T9ZJEVoR2xwU#JzJiD)I zlILSeB^LPSb_&dSya%HzWH7~D(|Afs+#o2Ur}ph#)u+K3pMwt;o0M$6XV+%x5LSia zUrWV^ZC@DCgvR(z%Ft3_wo2U&;It1>}uA zz{N;v9oWxK&wv~>z2N^+W)uqEcnvSm=&xz0| z&4WkYs4R^ZyxWmIUMTqRrY9zyzV}S9)g{4JG#3x#{X-6LyNCOPPUl*a1SP$? zAd4H{LX*rZAr_>?a?!>$eK>pXa#6bM({X!NX#KW&lyB1v6oUGy)Wk>MU+0^%WzP>6 zHP3K@Dasd)c{Zx~JcrM*K`uQs;SKd1rtCX;W7V1?O&fgnTl-4Z7!OAoS^U>&#^_#4 z7*PzP;^?sKJ^*@ce~&^dU!J##wv0vF)dj&am52b=Jx)MB2dy|93Vc5dQWe9aWFTRI zN^~?GltR`T%OnT&TXZJ+d9Fkx1+P(bY-m&wj%^|}?*9HblW+W!X7I{MiQLM(PJu{uomnDs{0J(y4} zaIgJGmuxd8U|_!!E|N;@Ms%qz^oJWV?t`wU!uc0(d*i_h1t5B|a8$d)Fs#JT@=XbV z&ju1Twdx_15fkU7NgE+2B-d5nV}<=luD>7Q0ktG_yFHwy`LuqcAyx7B#gH*hmqRJu z3(7c#K#5kxNW4V5Z zB&vlu7};VOk({IeiyVhNMbPQ8=Byx+FOxiqEBuHwy8cTVWGMG3nPSi05Q~YbEvANs zJjS4~_#eUH1z1q8=$68wfycfX!+NGV#H~6rKx>`MQ>Xxm{(z_=zc0daUwjwBxj$Pq z3ua>qvjGTqkP^aC`GW9O>Kdqh31l9!oY2_#qAGVK^6Qjj_Ep{^@al&JZ^wt5oW5`$ z3^rW%vS-y0d^JrU@On>rAm9vhkI%hh(9K|pUSG&%W7F-*+RA2cX1=}Jsxqymw`r{1 zXiw(?_}*rJL)GR|Q^4^pA=HsDqJCdf`2#=vqF^oD3eG2IcnV2a`r7k5G;3^f)k}D~ zPKlCm1E!F7JRt+6U!&T^wl}R6jaoy$T4K=RP5ulJ1u@aoX<>VCLzx`En}Zk@+05uF zTzO>A)zMIJC)0GZ5lSK z)31fmlwb8Hcm-#8XZ&SUd9e1D;cN6q8(D{{EMmt(xLV_{nhI;lE?N%0I4%pV4V{{@ zJ~-KXjpFE<1hx*^xJhilcO8pDabjX6SvZ&9^h*F^steHir$%8M(?Z^P{ysrC z3eBjElvzmbOX(`y_;Pnzc3gP#4Q)&Wg}v!VRs9Tpy3O)}qIP6udL!!7aI%Ey=lb!9 znRvs349rRRk$9irEjQ9U&ELDCaVFb{Ya$A~BHkF4GC|%bAo{>EB~t}BP^yJ1FKAlBc(!fo z=|+b(HBO;CPxg&dU0ptXajOx}aMy*`AY=WSLQq)5pd8fr22FAG^+|&PL+Yq(apf-4 z)gB3DIsRB{aM2A(VN#NCt<#9y0pZoW)W z8Jp`IDgUf=K)hs~zwAj@7HU0#J3C@#eT|w&RMEjQXXV@XhC^Ejd^c-&ihy@6l~*+< z<X z_T+p!_?q#<6=+R2DCwwPh3s_T?s%Rrqx@j__TD|4w2EfTeXnHQt( z_$~6uQyuxUA=qb+lDxv#a=dJ1^$KLXwqL)#{iw7V(lol*cuMrs&5FS97Y?!BZjs#m z9O*qeyHFsk7Qo6y+#;o zPki0ppsIPvInAhQl7rzxxt38`Udphcp-K>YQ&NDs6ul)Zu!P|NLlOiN%uxEKkz0W% z-U)$J{XogtgGs5ifny@XPSxE>t$cH;Y?h!ep+B#0@11sW`Hf4RtzTGi?V4jQ+8%^p zli)~hP{^U_r7^GWLeqOsI05WY3Vico^^;UdoRXaAP!$^No!=igme=%1xJJXlTfP`6J+5XDEVlL z>rWt@m?l^h8bhmQQqqHQu5&wIr>^|&%b~qB!PTgbd|KQZP)G6)^?j43jUK{-xHHUK zj&d_2;cm}uAU zNO|CM0AJVE(}wf{zg?HD@vcLRAweE(y|ZTH(0c>B%vB?o0!qIbA-&)Kp`#FOeIgSl z%k=r;)6zVDV<+oGf!n@2aEa$7$CcvskG3)3h(6Sq=sn#jRRmE|gc4>N*6P&Iq7*vu$UZu^ws`d|esk@?qm^RD*$@ z4}@>Tk=OYT=G5C<@(*#I)@Tnmv)~Z!KkZxewAF|QXtK_3rP(LS&1~C2R&^D}J z4a*v)f%eWVYj2elf$Pm^G= zmZ5qe>ZJZ-JWf8U-!I>YaINvQux#zR^1S=4lsEF*PC`hU*IW4#JZGp{3%e#Qd@bZX z%cm>@ za~S1gECir)NCgeQ-d?VOIetXK`wyL}z4KT2c@ADrWblkFlrV12a=d<7f0Qc1&9^Hm zr2aFE>RbBfUrCKu-}N&42_z19s#*UGF5*8WwX3s{y^HNHD%XY8(b>V#?1{iNb5R@x zA%?JH1aEm)5PY?VCu8o0!sFax=|_D*3_9~I2y6|={Q)=1u}$AW#VI?1R%^@>Wm6Bw zbE8b0U>>7QBz9ThgA^~f*4y(wd7w%D?56`;YDvHDLpazMWeeuH8TFHivh01QCTtwCt^U1_ZgBmi*D4FJGBUA5G6wsx?m zb+WQNOxCnse}~$;az{aQWh9cM<*6Wn!I3m&ZbGFz;XHc-c*~$WRZiSXVZ`&0qJ@hr z;E66_)-Q>+@`HzcXGb!O>H2n)X(OsH5{^fRW{@9ht>lC}9e%9z@sXu;bSAkHtP_Mp z0YQ0g6PPOjIa5O;PLS=Lq{3I%p{NJTUe10gj;R~(%esa#5Om0h>pxj7igblpu1LeV zM}^dcIF%BmZG;k)SwOXUE?lk<9Zm$vZtGgiqRg`(Oa)ADJ*2ih8tg^}D@J$P(5}j; zS4kRMQFCbw%z@L0uoEWf<-C!$AQ0r`S9<_Zab$)T)c5xhd*N}YteEeGPq<4(_}X^_ zEw()7_7gdrrMTT(f zm=1YKKU38bq^#7qi;nz|tuZyq7cDAboGZ$Jf&wDZP4Uc0MYR8s;{fL25}x%)MBMX` zM8EE1EyeOm_u%^7i@fA~`UZBUP=3aNGjnmu{@Q&w#=_heu0lQRwrQ^^!&3IV$v*RU zUyEXkB=9qFBo+{wS2wV*#(kHc=WkBUQ6T8Y;G%&?xF`Q&0_7wy6h(5a7pQ+s#2H^T zV~Uu|j`kLUNJYIt339I{x#;U4la84WcaVwkyKb<4DHZ{YN?`%WS$hNl>Hg zgZfVb%ap^ZXZpT4by0gW_UU&iD7CKyp~~w%&@edW(Vcz>LWI)lxd`YZJyr5uS5}li zsZ%FE&xf`clZdB0iwOXdU`kaP3<;c3U)8#jKGw!PtQ?ib;K0KA2o@Sq6nlkIXCVe7 z*iwrUkI24vl!851@w1Un@}qOc%fzS0YQ2)HPI-Wq49dVRi;|PLp8ANjuUcskrVtu$ zuM(G|K__H@v}L(oTgc?m;G(1w#LwuY8sQFwhf#(`|A_;OuOBpzMQw*AcyV7;{xLFm z*Cj`3ez0T6D!!8902O$nU2*>KV_#)tjOu;qZ09hsUT1X8G{VJNuw+3vrjweUZh!Jj ztIB($LO+*gTRi!M3i?XD%H9dWCbO(DiGWF^TIu>u~h5 zWF3pgPu5F3&_$?aLFv-@1s3wDW${b(U)OJ&_8Nd4Jx7A@oL56bC+9LdXLej7Q+|$} z9gSGtN!^aEPWL`LpB)B^t@&W%*7_C3?GOk1qe^Z>1-4%4EkzV_dfn_H&jACuh=`8c zCEykm_VcnAbHI$rUK;0tony8)h20Q-=1`}l!={Z09Q>G8<*xrNl{#h#YJk{VVI(T= z>*f|L{S6-3fGb~bNMFC*oJAd1PyN|sd6RkBBJ7}-HqZN!^GeH9_qipooq}yCe5Vu9 zgkzJ$6{pPBF;2Q4Q_Q?=vY-td8o}=fXtA}W;%vbB&$8ny%5@sUg)a_F^D4AYR-<@{D)1upZ^j{E^cEw+zN5@U9xUFx4=jtLZIW1~C4lTlBuJ3NGk0b+9J-|`jIjw&eE@nm( z@SG)hu>}#zWEFlLApkCBN}65^YFQ4W3_U1(7J*!h=DD@mf&6N@mVTr-&hBR-ownakqWdThs` zw-Tb0(1fGwkTg>NOSZ0|$Hk12w+~cg;~C3py2;5Z}#H|(*^}^P>qh2-{AUfERh8@ zVi2gdANo(c%u6t)@h2?arwNCDvLGXSdo!R3=;wqhhd0W+V1O6Cy9p+rQi!B}Bam1W z=N<0f3+-FfFO)PJl}d1VoCxNRmb&HYFzgU8!dUo9x8FCbg~7ELK%B~$E8p6}rM2?S z2S0_+Vo-8YK@{s^Qlq&t?lW?!SH35WlwshfZaF^lKmv4nqZc?k1kqV;`%X#iK<38V z`;3?n-(z+ML>d$q)kI1g&O$U6^YxI`%zM3LotmI7-88;0Am2OdsLS4*=t&SA>52Mb z_|R)LC6NoU*|+s}A3)9~kELpkw!LvLspmc*99g&ExBL}LFl(*!8VCTOdZX>ENizbo-Ihws?O|w-?M0^;U_Ba`@z|douqi5x^`4nuMbXEvS zHKMmHfv>*$ydJR`UPO#IxCjVHg1*XN{zOEWrzZveI&mnG9L4VZDz7{G<7`S%^_(rt zNzo{5eyEv>e0E0Ez-oILn4T%AVE%yED7L*I(z6pQ2O4lO=y5 zP-Cm|6-I50=*U-X8-Tm2YvO|zSwIfW ziY=CqHx`pq^h2W#wWQ}-_Slw72qKK_>2uLnc*CJVq-s-plExh(B5o-snNtk1=@iTw z1#(t^#QJpXT!sC%uJTk2Yj}#LZ7B#95I*4;&mqv*o2a2{X!r`_;|#BfskX_1$4$?+ zdtIg_TF+oWQXoN&XMnRtE>63!kC zb6ZTdy$6o0|ERwqx^TGGGT}J*E|twTm#ofbc6>S)o|g3B z$*rxJ2$NHgBPS}?iUk|_y)g1c)FarRnJpxz*FyVgSGztP7*B`2ogNTmsb_Cy4Fu8J z*jd{c+1Z;Jfux7pVg2Y|`>webV4eV>@u)k%(HYlhdJsr(+K=2ay=%SFZ=i-4*2$ZR z7{x~rOZ90&EXtu+u4Qqejl*a@giiltl7tZkV{u}s;bX`LTti=8+^WY_V z#PvMdl-jAjhcfX+98-cXkUzBHzCr$bz&~9xO0U!=eDaj(4FG`t*MLE`mj4=SvHCs` zrxy7~v0JcLl%lv-RmD1qG}?lv#bB|9C@U^b_sy1EV@#KCqf))rg5B$kQrq{(T>XiJ z^%&YIJ!EL$7V(`o#_t>{?--aYBOfRlzenb4iQ*oiBpO3#yqitLsl@#5f}fWJ`idcu zJbIW!$-SXBAWdfkJAzKVu3ie>?*h{R!UViSijv6Fhl-Z2J9ukZ{(A2~w|6(?_`Ax7 z94!aHAxKTJmr_Wnfu!*-+myvSvh?I^B%Pc)1-mZ{n2i-cGqO4Y$>!VC<^R{fv!_U3n~9k5UenfrxaibTG|6ja8#W>Nt6N16$5 zX_66YA`aUx-E{fpPS<4t{JTHo^IH_8Cb!l9#rzFnKAG8POZzMC@ta zIfDusrl5w;A*{*u&AEH7gwE(2HzXD};4dmzs2{X2`|GmicN2%ahu0UE_BMBS$GviiGvmZ*F}=>(8an z&>&@_z?$N?y$_LuBBXHKhg#%YgBU^fr6hTE2r|%l(rbjJ@={)WNE_NAYi8HYUbKY8 z*L-{9$IDv`38E=SZJQM~Q&TD6U{-FT4E0FDtQvY1FVY_&Oz=h*A-6c=^m$A%)iMUF zmCrhT6%D&kd8bJ)i}1Sf_Z(a7DR{||OoN8sQIXRDSf##n@rb}HnhQPLBtW804GYUr0FR&R4;Q85=LPZyn3DrZG0w=iK{xr43YwoiG*&FcCb4E09;j}0mq}Nc0ZIPb7$@RhFhc>tpTEp>}Z)mCq@)hg( zWSOpM*2AsCsnWQc?%U2G(pEK~G0YTyNU#O1;Ydh(5k2hPG`6W+e2WQi!Y0QqQ%;Ij z^P#II7~HN8Dt}v3Bc#T!8B{zL^X-e3w9*H;6{%4*-GS>7+;G(NcfwI2UkXz7SLw42 z>$gi-#A0u}ElBU(0=w&T&#LeYvw`v7g-OF8C@9l*j1@aCj9q=$8@KAhI6Fnv;T z?w78~D10oKYIP;WH63Z?JjoiF>1yshaIe2QB0hLp(>rFBEUiKX5cHK5i$Do2dI7@F z872nK#Ep0RcxXGU?@?_hM9C-L!e|s%u3g6$>S*F`dt2mY-JA*HG_0!91z?zn_I7eq zLwqd@@<_6ppRw))In4n%n_k(IY?`Q>~B#_tmL^D`ZmCEmVHP4 z&VtO9mkS3^Cn`rYZ)3l*5!6sJb^2ceLGIV;h+|ICv6FemduW|J}8gM?rZ1YDbb zL}S{OTyk6lwr`(6@J6hu&0zl3xd^V&8Yp8378_FPoXhWOETy-8Q<|Lk%S3=*;F=2; z2R?L|NVzkH+9Wu*e}>~GqYKz{pc#1Y1}i!-OhqJVsPJX#SN$0 zOGhc3iPwDuyaU;8$kPdP^7^3CVnU~=S_7w!e1C4IK>Oq8o1WMb z;EG%6v1zRpWmQN_r=2S+SF;`20k;PU!(QVMc8bwS!#jfz_%774f{Jc|;6BFjHAW8M zLdx~9fU<$kfJiepJ$VMkh>_A>)naHJbt^Es;Dft;$Krs37!8dZmB^3^v;6Ltu+B}H zY?Qi`9;CF*le&@`@*JOs_Xaik4^}MhFWyWQ()cJrGQ1sIDrdXuUDOf#GPwpo$O$_c zAOJP3t`JH^8=MZFhz#v%pfay7CN0f=W+X}{&3Q{!MZLQnw+>v;Uf|cK)6HjO4$S>F z%+9zi6Pv$^%+39|T(N7<^>$ctI zR~Jxrk1RVZB6-E1vI^JwcfVITd~_2ZDgIz`xOs@5?YwYYgno+1735aBlK<^?LQUt2 zv%2Gvc{%+yRl~#y+xk(uRq^CUe`*8!XVDb znyYyNPm+*(7XFHu09eXrJD3qEicUnCs!{U=g&J%|_Lp3T*vo9j(E1Vo*5oEAn_ zE;n;0LrWXQ&Yn@ZA$ZLIC^n{|F!(M#E6r-9UYpKEw~ZbLH6{8cQMu)Hrqf08eNPkI&F^V_WSfM&)KI8N z1R=ct6?=E!!%$TtoKdv4>?mFvcpg7wvObCtP$yRbN7+p*ijnhVHT z_N8mHwpgR|jCRZ`Lj4uW!9{I-mL47-JTj&v$#n5t-@3$j$@}C~=+1 z6Y5Pldsc}8Uzqe1I)#gCelTr$B%n%j&>EkCb(K4Df+7Iw*8-%fPG z8rs>ie6`K|!ELCh4=&6YYp6gYd|8#c-ds@I%vh~*(BTx9H3pd|SoD41STCv&`R(2S zNZ^tB{I0efVt1tovaSe5w)Zfrg`7}n5xg9*A%&;SM$wk{zR!&8HYN9j6)H&$q*0y(l$p*#&x3x8u^X`zme{pdYieGV+V$(a1}$7x$i;JGrOZv+W-|VNO>} z$jk=WuqViinyO+!yx|eDGD*pn>8jBwndJh7F*556q+jZW{gU#&Uz^h1iq%%iNBj7Y z_X?1&`Kol8P$Z9!*SicPv}@q(D6V72`Y80y4<&lTSs~!k2(n& ztZteZ1|x1x&(r?7ew<7TCY}TajRr#OONv4OTnr~`bTnKHU9R-LskIo+%wjfG_}*!zo2AkwREGOlO!H$&lle_q3_%kjoI-ye zuhz#NED0|tc)Eo=Dxzge>+1^LlUOqWxP73w{*323DJek?PY9*Q08s^bRO6Ag;*1ya zKF-P7{hW z?KThHe^?LcomyfYteH0!qOa-9p5%(Z@U*B2VoP?a3~DV8@>|r2k|#N6VHe>QEN@`I z6_23D2JXL!FqT0~E&!j1cI0%Q(WOQT{x~rZd&y0zpwyAWoFtd7nazy4Zvok*T#OSd zS|2t-C9Xb$IAY<$I^^L06}Ju719ffUh^2sYhkTS+^QJ==x%sJ{SQ1UxD6bwP& zN73eX>*)Cv;I3rGA%=?NAs}}&7yR+|BSQ;GsFoBhN=;xLUCw3dB^sNWa|&}ZSDM}% zOboy>Qfk>g0ZI)KH4f=PPZt%=1Js{eUkR$stWIgQ)#DDDwkb$X@)i32gXS^NQ zK@ShLdY9cS7|V&!NI2OMM&=1k-)=$7B4gMHv+QoB&Rn8c68A87yLEI8qX-g3$IoZe zIhCTYe}o>*PPmL*}s)xT?}Ta`>US$z1T42D95=9?qQYKRl_wVBq+G|JI5od2;*b z$Me_ud1D$5K=A7t7yuIh(BVBBa2f$~9lnL`G8p?G`#1KVO_b-@nNQ8{-z}B@gp8tb z^$Yp8{Tunu4#0C{Ug&@K1O9)I|Lg@kM~-+xe%=}QPv~*DcfZE{+x|W7Kh^f<=pj#C zrhjYi{|TE<^&jlt_HXPzwZ7-rW=}%fe^LJa6Onn&KSaOnKScjc!uw71`e}LGJrO+@ z^q!+*6wg!rTr9sWJmWu$=WjRul>L6Adp@C)BK(Q|mk9Wr?Dq;y6aI(fw|!3bza_ih zWCTxS(|?iuTflqHgP1h)%c9ry)Yy)dQCmGBYRgpc<_ z>1$Lb0&xl#TKOIh#hCXZr||2MaW8^J?aL080u5tM&sd8#3%VZ!h|wF|VNR$GSx7@m z&oMngV#>%#FniM&!iIp!+_1GzC72QeQ!Z6eXbq*BadK}zF4FbSl~fQ2W(eeeKs84d zvmC4C z8AvVXaoiaGb`}u;%uO?|=<$_dDUd96Y-9);*25O{;+{ZdO#Bel-T0iS8az%b4II`eJif`vI!F6g)yHhfXmLBm@Kq1_I)r zm-W{!8QJOmYbE=iS5oBi8fmSm^-UQZWkgX?czt2f zrt7XR5mD0YWOp28>7=(FK+Z?~?CW>lpl&g)-1b>&BCD>9p@V$J#R{J+zm{^+K?q48 z)9;n7pT1-^&})S3JwC>yOddw@5=kX{R?eH3-P;s$0l?Tw!w?ePQ*Lf{yZy!s7ucQN ziZr{ECO`hR3J;2kkJaackSkPPo0{|bH5Dj$O9-FCmEH^Yrp5Tc1nYZz{^Y+!IK_-b^Uo@qu zWAkrY7jKRtdU}O;809=rrk9YP_v)(Xa?RmsuT=lzULik)fPodr?kRYlw@V~KK(><^ zMfj4xbHp9%C)xPL;hWY?2s87U%<*7-&yMf>w6GNwhQlexC<$f!%P~bA0|t+Vq^=l& zjlw$J5BoRf>9_sksAN@G^aO*f7b)h>Hl+%^%7o@p*!S_4rC$ub$Ka5P6CD#IX^HDl zz;P`)Nm%l?&mCLtcrCZ$FV$muyl{F}Fz?Z7909RcE;6@?O)# z@Er*YW`!Z)OEC9e(J}~qu6qfV*TiF{ENO+&nHjI=W^07f1w*ELC(%Pon;tY_0VnYb zy*smC*A9sJ8FDx#VziW;2Xn1348}O3sXR2bMt58IqFWwvB@Cg-UYi4AoZ=q#Qb0XkQoDZkHVkIS+ z*_pmxSVN0+l}fDXEDMXSPORFm7SC(35CPy$h{bgL@y)Aq*>=}fJ4dd&yNZ^}HxHGA z$gni%tmlF&-5beA!69-@D<%0%F|uY^?1^cP zf4)E4JxnlnmVc{ji8Cw#&0;vc#Z?_#USC*VFQ~a=js_3_rq`-KqJ?#o^#BI*s%olD zHm0q)#b1@8p+~93;AojeHNhQ>E-31)%9Q($y5vo4ijMPk2yQ%O!bHKg z<$4x7Vh*O>0gFN!;u~i>)xn#=tZOM8S!ai|KZ+FeBx4Xe=kz5FDnv?xz7|;;7?QiY z=$Q4@J6P-R9vzDpWDJmHv`3PA+}wBB?egX4@nP?)~55LxsosD4)|0pKwEv6){t zp3@)B@fPGo*@C`1fnLL(*j691x_jDr^@-V*<(u%zO;Ce^`JUZJKVKx9QMVK80Q5P3 zgroSaWk+;Y1Nyd;4_&3i4(mDZo})u`C%I_>3Ic)(`#(ho+J8p}*ud1t@>e3y8*K%( zF{8jO-R3q4#kmrGB^z(Elw&4oLDeBFv>~5;<>WeAX==(f{>8|%*5e!hLYtCybf?(P zK<#uQQg3HfK^9xVVVR3bMBs4b1qxElS4?OnXTMyw9P=5?{zP(%11qdgZTKlYzLW?w zh(sYG1bkWc*g;MvCfkV9M)TSG+JM|XhAj-l-3nUL)Q`RqZ! z?lFh+)Blw|wSV>i_b(5?Ho*V>`4aVQ(5yJt1H)U9_8w7%S05bsQqta3Kz7GdCs$CG zp$`l(6^PX4$~w^)j@1&uBu@RDnx&pDyLnXz2#iMX7ICmA*6voF=-Z8=Z%*(Gt3Qh> z5Wz)oAQh8n7DK+(WXs!dZCbdMpc1CqFw1wVviM}IxJ)g0jztpcHUu4gNk`_4E?9@g z*QI0eLLgasEmp+sbv9^V6PzS{S*N5DRI)HyDhwl;k67|;f;py+oYzax^G4^|X0IDr z{4(?2uF}$QF8(J#2o4_bN4;)QPYg<)c+5FKi_r9d5>6vyfDU#a9@> zF9}WZV|SQMlVJnH?P6;EyBrsiwobKPb!b1WVXRz^-9QeA#L%`h%D1`J09M~ z@z5Tnn=_X^b1HCvXDTh`FrXAhkrr7bmFipH*{(FR4HK9(Stdl7zCYM88u#@QBE4;^ zArz)43jk1G`!x*nEpJ$MNYXI{1*F3x!!QM@82J3$MXV!eTt!_D)^p^`}sk#^KNV7F%5;dT_9E?E;c zc33V6!hqGCJNbNmW)NMZdMZstC#m)YQ6skU-PmiSlzr8J8NH2^R4aCiH|%i6syGt0b8b5`ApxnIx>W1+d!1#R^23#7US64_i@NRT{Jx;+{eN zv{y|EPz*n&=d<1|xu=tJ+hPgFI&-Sd+eG_Cmydo{k#))(1?uHR%LqgpL7>Q_sTBze zoKRrIz1(7km5got)@KUoU^W(lw_wVadcg01zg0~w#g@K?$s`qLHjqOgcHSu(uL`F? zrBKr|5_(p;?+%3|fF1?YDfdFsuorOs5hZ-I5XH{smhvLXgq1suHvg7Rx?Ip2DLwj~ zxAY20<949_P;4+Oq<~~}@FZ)?Wf+7Al75!4nYfE}5Q2crvakaeHr0pSkN*7FN$Ui- zg1QDwhOA>!rBy-uY_9U2bg>M@pEM@JSAAoF0A$S1EX6hh&gqMJ>R+S#F%!O;UkhnQ z_BmLm=hd;|sDIht6ik~9P+)6`d&mD6Rc_S4vra}rje`b^E2U651T*xWsAma&)VB}{ z;GR(cp;8fy6mnqhwJd0j%4hc74TqF0tSJ<`fook8U{#=| zW(XtqMM8ALp;rgLFbpHmDLzFG2g{_Ssp94L7eA@OcoXB7qf^wbD->HtVdPQaG_+K6 zO2$o!<$^^Ml2jKUAbqAMy|W-3V^Qi|d|wjrF^OrS;>73$I$LYBDAO}_;lH#tOu>6_ z^w3(^dyi9m+^Di!{qAmm$8vXGIwZ`b6?j}aSU*szb2co89(iML9>{S|^}s$`ZB;Os zUZFc<2{kL?umI$Yf?MwSXo-lc$0mbRP1mm6)s=_J@ZC)Xpu$CG`QM1gQw zz_svdt^haK${m;+?`APooWm8kAr5dW$M;*rOm`F@KyvE7%H(t7Tn`@Lc(n+llCDaj zWExS`FlMH2Y@t%XQR&fziB_P5mmop}F0Mh-gBZ3=CK?*yHgUeSpl;a9xQHz68S{-< zKHoM&&SMy3zMK~b82O?1u8GFxdS+Ar`G0B z!0KJACo2y3IbfgD0!@)Kxm>Y0Dr()GodM2vC}*fv&Q)y7jaA^1$I*`iR~kcnOsm8e zW$#9mc$28c3}3Q043{go%+f)S>yWY+pvBiNSd3V=o3b{gPKO%N%KHsJjiu~|Yrrwa z=K?}LDeACY;fm;;>8<4lg8;TL*wt8Lh-lMTT)spW{(OCq7nB#j1OIMoa{M4c(0j>O zkqMQpuc|g>LaIc4O>|*!*t- z@IJq8GO!^qWwJlR=7xI<+@j&$f?4N|b2MNkx?uWwnA2LGorljLa*-MyaPXt791D(v zpuqRt&7LVcA5WvXfPzRZzUv#lg_fe_XQM;mgMjZ$_iA1Be+56szeltoW{!iQiuF^$*o3 z8E*X8a&ek)DeozQob%pWKYxip8EdWqTO7alQBhF}#s3o%z$FJu`bf2J;z});!3>Q@ zJ#DN_qj#^RY^Ch*vknIe77{r%=D|q)t-Br*1&lp@rusHO>t!|+-W_jHFtV3!1Yt#{ zMf4N`^1ee}V4s&hZbCfKSY>XCrq6tRLv53qZp$a7AFq-jVC-I{(PGn*3%f`g6rjXB z-rwtLF`AHHWyXwlo;L6KT-JPEm~tV}DH5Mk4eu*%=%y^2pCatJpYoZ)PpytXFT3gX zjft83aSqF0#|+Du(Rk0UP{wS*=>10I2y?HYl z)TJAMUOZT8j|aV4lRi30>foflUa*;z4!M@um=_u)Ef_4N>un4y;L@(stC1~wuZ^QADdDJ9iQz~8?i zo5FeXMlI%h<-AdYNu6lwlwm>F{g*cF7voNn*Mw^3_6FQQIR=xobMi{U{VP#|)Fq-W z0Y28Y?GayWhUyuDzWCEFaq=MD6rwQR?|j@!zU@<+0cByRkr@Qd%$$jZdX}cvZ0%iH ztph0Z0N-@{o;qbI4iv7rIWCa2s{ioIdwIAiiz2;9l!g?XW^S4-WR3O+%bS?O=q6r@C%Q>u8!y*I4v&`As~E+{?pa*8G!@p zIa}HP0tWU|G{G}G7+#B~^n627yx6*47=lRK)!>aYL#nZ}}0dV}Q2@!&eyQ26Zznx`dsBW_u= zh@ueN^=}_k2{iT*^5X^?9>2c&{-(NMQE+8NYy>~Q1D;mUZKBfqd!$CH>FfpTkKP2W z*)*-}MO~`;Yhk9v4Nj*0`V^@%<(kUu<`y=e%>XHkb!>wUy>zeqG&DPpiTZ#H9SXLG zi5i4UUg-+>T9&o8z;CNr5MiJWpYvN}8N$!%@yd#{aaI#AC^TePY%79nv-yUM_PE<2 zr38IHov>l~1qrgTCP^Ylmw>_}V6R=~1e((Q6<+nOzGg&WXJ75$aAR-n690I{HxAg{ zQK6~?1r=E*f6$YEl`T0IN9Q7uL0}2Kq0`JmYJeIH{}@6(Evd|4jiF7IyEObWks246 zvJZ++f|>JDTwxST+@%Z3$EQiQJ7*nly+JjmOq?zNR^#8-1INuO03b3 zD1N`>71-7aCjyZEqMcqAEzcsv?#J4b{WDg$?NIn=gzGy}N9wj_v38~}RKkb*tb-*Q zob4Y)w1{eRJ#o$*{xzRRbFsb~mJ-?^c{_xe%4^pR-Ro=3G&*ElXu0 zzh2)H7j5mPx25aXSGN*2*j}eN(p>K$EhEWO*3YD}I^Qe!XoIE+DKsGgp)hP?Qr<&} zGI3fZdMfamqC{1^vuO>lYCpb;b`OW-XU@#E$L)1g*H*~#y6aD8DxlgZ=kUIyqX?yu z5Q-KBX89W9PGFq!w0V|JS!yUHIlH*sPvEf=lGTjq*$l^Rn7-rTUXuIkn8akXf~;<7 zY8iOhSy;=s;$*I((XxCFvEN&nPe+%3ZFu$e zrUClGaxm%b(NZ|Z>@e&1V`0x6`-QtncHWjqa1J4Z(0!;*;d!#neela~$K&%l?~HgH zN;>8j%&j&fN9hOB?r_p_EzqT<O?W|^+-N9L_Pt5sf>}ya;)~9dr&&#^7bm}l6aE29DWU9SRekn^G|H??W~M= z;+r%I*(p@nz)rJk+f@qZ9d_&j7)& zjgwd+0*4;^&7Wmc(Z6l4UsC|CSIAUN7QNP7og8z3H@JFcK@?*ARK84Vwi#s@NGFTi zr|sbx6S+C06pK2Gx_7^z&7W_|>U>}!Ag=iTQ|3l_%G_WhyJrsM7fzuZ(I5-Mf+BKz z9YQmqfWbs8m{c6^6A{o2?^oO_oNPnRE3mg118Izzw(e>_R1-LCq(a*Bi8cJDYp+HS z={lAs;^usP`9_6w?jx+lKGTOLS=ODxNn7|9HP$k3TJZ_FX~T&39s;y)Ga(eD{VNgVu!b5c>{z+RsVGmP{Qx_h#w7 zPQ1aOO!#~*zVlRlKVo1@U5WfWu~635NDs`7{HR*o@b!ZX@&&K~&Nb;Ufaw_k$-aPO z8-4Qh-G796pQ{+y&KYR*Yb82WHLb>&aXdCvl{UUfI6&4H(dy5!BeHiScC=HhQBVgb z8Hm+ZmEO5T5L27YR949N@C)~Izs(q4Ki#xDzNuY_A(T&+z>M*IMUIV8IFLxAZ+pGp zZYQe4l)+G~4o+Os$TCnMP#kWT7hs5M^%p>G8&QB$c#)O)Vkgq&YvnOS~OBViQ3Z`)jX^kiBIO!<28>`e$qBXERfojl! zqL)lv-NPrww^U?~P~oH(Ng|60p&R&UZWzA&;cU59(F@#*^1}aw`N-NFg=e{fdLVr?U7hE5ULMYPhatl)T3s zSdJ_<0~3J5TrgZ=?t7yWq~9okbaW>J*nskBAL)?MT0?7smu+nZoU4#D=ng>-qPfO@#k1xiy<$%U1DTg1zve6?Na zNsJGiRB8t^{Pg4Rnd$~$PG@DlVDRkxG% zt_45b%wnK$4J$aqS}FSn4|Lsqw(v=D4wU%|nut0{lb$>ggYPY9mn5P@A`H|KqN#5d zHad>+siToDi9Xp_y_shu$!V%+a&_Eys3<$TejSoME!#ud$T_l4h|R#=U)wI)+~7Pn zW-$;G4YCw(jj&x;NPf)Gs@h^)H$QbLw&hMJRCgPnL! zv2JIp2Lc0svBF?RYg;R8qbDxd2rM(uis;Xb;kWEsgntBrCwbilh0D6k(1l7t*m~fe z?NjHSaSb=XvO?2D&MGmCR;JGoYEc2laV1Ci$v8rdK;X2<4Jlf3zN6hMuDe?5;LeIE zA-_xWA?VN@Wf|r<8-?a|TWCMc@A}l_r68e@ApV)bej4(J{F~2y*201KO;rEMwLTNo zzeVn;`~T9`f1CJ|0(>TAe@p&T(tM)PeTkV2OWJc0|1DH6|946MTl3EV`QJ0L p68u>J|JM8S*gl8PZy_Q1$6%6|f`xk?i1PF;JrO7^PeUOf{tJi*6e|D# diff --git a/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks)(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Aging Summary (Arrears in Weeks)(Pentaho).prpt index 7f2604b4de84a4ecdb46e1d8537dcb6a0e679a07..3636609dba5e4de767382720ea7ddaabb1a8cc8e 100644 GIT binary patch literal 9353 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 E0OPFvhyVZp literal 8785 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 diff --git a/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt b/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt index 9fdaf17a9d3b414ea16263df8dca9a542c2ab76b..7b9f139ea0e2d255613629033f2dc6dec76bb7fe 100644 GIT binary patch literal 9891 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 V;(22KE<3;jB%a-ZFyZg3{|B-67AF7z literal 9436 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 bl7Bo*3IIr`w}}X^*V-#)w(~j_1myn#tJaeM diff --git a/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt b/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt index eb5ed8665b91b02c7a8bce2595f54d14a742fc00..aa0c87db0024eeedfce5813f6805fe3dfe4cf02f 100644 GIT binary patch literal 23549 zcmdpebyQu;@+R&c+=B&zI|K;s1b26r;2u0k@Zjze+}+)RySoK<3Czj8KVC@gz3;u5 z`DfOgwGOp`bL!hw-PK+F?dp~m2L(d~0s?{pI`EAbkcaqk*8})169fnd0U-5t>~w7P zj14SwXq+s}v&Y&j+v(sSR_?Nz_@g=C8(vPdhrIHHq-!%HW|q`%fLi)sqQX=xR~++w z_IC5|8cNPq7@Z)WRqJ4iNrYyJ6TYb~Nh&d!9sezNJr22fX9#9mA2CT2mcsawYB#Ei ztw&-wYWIu~J{2#I=!!Je*a~z}B2Onrg9vSJ@xG$P5z%@}pXUv^w1G!5b1X)d=Rg9b z2$yOa$T~57e`Kuuyp`f=3$gz~*_KxRqYQX1JE5x*_2U~qG?uWStsza9REJ)4U6kr#sD&=@qja~rX##UZd=Vg`v(_oi{Cho-)Hkn!ST&f~NygxABF=`wlhPUPE+grT-eqNY4==6~ zzQ=1P_M*@lTFmwMaF%me(=`;FUesF&8d8_gP&T#ObR-@Llb^mxNUENx4CkwUgG(xq zO-|JR%1w~{g!p4rMg)N&F5}v^ax>ll$P#6fK^AQxcz&i3pC&?3Wen3GlZeD43gr~^ zzK_AJ(v&4tofTvS5UFZVtb1viYhY!1iOAYpZFasu;X1O&OwGn<%woB>UTU9FO|WH! zE~fPK-)Z}vXxH1iy$$sb%%GIqxLH54KNp6um2!G~Ex_QYrjSo!CdPuF6A&1U0TUph zOp{sCMtE({>80h!EB)Yr_d@&1Hv-IXeb)kJG=UJ@(1pFUq1HMnK4kw(ynBUBi@40- zYci-8CL}^+zF+H3iGU?+-05zZ6|i(iLW*^{9Q`|r*;$Sk-8>JSSt?f=1di47aVybL zT`5$NX`{fnhBc@e*KX0WJiuNI$`gG?KEZ^6HcK^b64V*ME`zgssT&}?aTJGi5EGYM zxKr)}?343-AtV4=Zu(nZf)J0Z3|Xa8_z<(JBrB(bu$OLS)4i z$qidle04SH$~~o+J-iQ^Up;UqfWsOltz3#C)y89@=oYs2lB?fWxI?gtAKTo&qB`OG z%GljV1c8sazkdt+eSuF0Ng1Yvg#s7C6&2wXhIFmodXwTnX!n&G<(RU=iEO^V6Ls3K zUIX{^_D3`B=7`%*j|&oEM`YZ=X2DFmOV|!`TT|K_*#f;_@uOKogLIep1O!dg_ion@ z?_J^X9i!ySl|^o0gn{5JCH+{4t`Zvk61FH_jdsh?ixn`60L$q=)+S1HsC~}zcI;$4 zVexCr6w_VZDn+~*=n=K&CH2U z{b&9Cak{6;k2*(gA3ScGZTG#LFOZi|6k?-dgiUrFVn=aNbWo7MCf_bOBq}ho7ihnI z%Pzr`A%SMgHgt_bFSsBF{+L&=WQB0mma?0yTB1zy-hKLwMbBOAcMVsavRMn=FAXk9 zT5Hp<>WW^LwW ziWy_$iSegbi6Cr3WZ)hS&?T)IyvXBMYCSN)F-(CO486^A>^(JH{Ek&>fk8eLUbVR$ z&0me$>*hO5_;$Pff-#h1t(NNChoJewq5FhaUh`$K;RnX187Z6oE6u*Gz(FIh9h?W4p0~br$R9GnXEGnDD%}E&#MpEAA+C>^hd>a`1KLV5_kwS>zHyY zYV(WlPj54kHWWmghV1+6+~ z?vI(JN`6tYoemW+)Fv#JXh7zfbqCOkHPQ=hgH9X*F{{m2;+>o<(gM@B!}nRbxHPwX z9?u>)`XazlDrs5;MIH(QCbq-(Wr*myH?_S%JN}()lcqRu;Yda?&rK=Funed|=!Md! zwCW&}!z{fZrIk1g2^?u+Up$8j$-I(E`Phv4C4Tdl=xtN39Z>XD)MeE;vQQwTm4w3N zIV8PgP$9so-j@sVZ;Ii`OBc)%n^=IFCwJh3tD6JE@F#^{^B|HsO2RO8LFcUQ;g92p ztw-Ir6NJOSE{GSkd%O0o1$6723082{8(6n*)$H7GN%avlaY2_fX?nR>o4-oFr_vE= zC^_PvAEjbx`fdrb2nLU_0%eC4u)}B<8G`ic0FKehOr$SxE)Z5P1Th)d%U`e!?Q!f< ztT=~)ozgu}Fu&N49*g>c*xgI8qiII7kLX>W%5IzP%bD7|3PbS@rxamEmUqgWRC_Zc z&BQk6;g>y`1pF*Fz`wQ(sMLt*Ye0)o0N#JJj0vD^oZlOOw|PMW5ki5rhM1GlQ}CY4 zm^>U}zJGx~piIlct9MNnO=L!e5NKP|2l=bM1_d;aR)DV8fYycsNLvFtI}=MI+aD9F zLMX3fCmo#N6_;QX7yUOO@*xqbEg(8v!q4;;SyQ3r7;Oh8UJSZMHy%w_>nD0C3mid; zIZNEWu1Dc8T9oij9$cx12oG`fdB)Yv6Gir8OJRlw$ULQG=DfxtF~SH`pwcNaYBYJC zO!9o>a*9RZG_V@4e3Ky(Y3;vuwVx~c3zjS7peDZOFO#ZCcNw;Mu@J@m?RWse54?l% zHLdLNuG+>psZ=~nb8rBCozfz1&&Xmb8dQpKdGo93 ztH=!VS;Yi4nrcoeL?I{cucX6V81B^cmBU00+n$N>J&Z-W*-6(rygh zo97HA@Ozf=^<>fIBnU-#i@o;o@`3S9_rn#b3IL<#Rbm3i^HQb*mg&!*q6&#r)yE}* zM5_}+u66}+u50~U(0H(vXrC^D*S87+#8Q$U|0PUl`{X{A}2N}W7u*F#ei2{74ge|LVL zrI3uFh_tMqA3rhWAhzWcu1$rWNEUth0zE}Fc|uz6LB(zb#ye$-!0jBfN(_zNz3a{4Mt0jSijQR4~7BRwDTG^8bFeN<8WRQ}dvXuOUZeVN-{5y%B%HRC>Xhni5x7V}CK2JV z%G#tk^(WcD<6Xb%SY{kTL11NSQX>zgOt@-bev z71CG~3fMP~JsY`alkeHGT9{$J75BFAt>80aEbHgYo?8!^v$rM^n?>{Wnt(Kx^ji8Z z_i$}8-@Xmpy&T%lU;CC%B~F1|fk58FI9D52o7>1J_@+40fUQ$>!i&C?fm(#d0`C&M z=6GKcsoY$vl*Q6-L*u36eq8VYRNGCNemsS=#fMoNPVA!<64`WR)wm$T%XllJVSSvr zVT%dzLz7q>KQA;JvVGkac&KQ z?C-2ItkvOLLLNQN9|zALL&C^yT`IM_Q9R8JQB*t2 z9-g|~Om6fYt+%#s4%#xR=r!^H|8*?*l-*;d0T}IE0dEYz+s;PE($-wZ&cw>nmgc>U z)q4XQI}-!jcY|%vesoB_tFB)#k1ZkbsoFu%8CI#g;Yo1X4&5`nYrIl#AO`8z$eV~5 zM28Vdbg4g?l|e9HOW{NshALz8o_%qHi4a@t?C^~4sT4oFx1x>B=~jCPIC6(u1^aPF zKNd1TK=I0AB7a=`&yOGD@Epww@?IW57Ez%*Z z<nW(16){=IkG)fo(J+P6HANEqEXx^xtmS*4q4k?zKqC0x$?8 zJsfIT(|sfber=*LZ7GchYLVcuIFhmR=G!`t_^VIw?_QG_^iba}I||DNt=C$ag@B+r zH*Tl6k}?+fVPrSRV|lQR&%>;mW>-==uiMSJEJq8TRF?&ybLhF_OEGuT&`d#pzGGk?E4Usd*hj~*|XMGR)sFEf}`B(Mb=sBZM$7?hI_ zHg4CGosv?~qOO(y%%7qksu^7;2r32GVhJgY7SvCSE+Iu(P$5XcS{@v1- z4C$iM8NR(ohL4a`-5G8#nJ#?%7=W6V<~KR1!YMPiZlNilo5`X!#!_oTsI@|&8oQbi zCACKC8Rc<9y_CmhzZ!kgoQ8RUebp}~mzD?dlqI%=TZ>T zkb4)Ku_gZ8r}lLoy;6<#%-2y|j8%Lbq}_^sbQiTf`FD!QW(;Jqrn_PBJ7yK^@r}6@ z0uIKJ@|bU;x@5_3XiyXkDGEjwZrEJe7!+yL5LaLFprSxIzohEMKFx+{}P*%nV6Nm&{I3+$xQ-ua0m)9hYJ6hSW z2L7!h5BJ}xwOtzzgC*VY$ia`D;7Id7%uvuzUpD6iI=Q7aL(GQsyDS}}!ehKZ#M9j; z;fA?a{!X(-?(C(`UzSo#EB6|Q7iC&47{iBwCS+cF^$c9`D#m~OLm>TP@C}M60q;lW z*h<0m(WT~vG&Hj;JK`t}C#=O}OT+b9nW z7z*DB%JWi-N(%ip#J5J8hFbv=azX&NhxYtq7CM$Dh6c8O&|X8a?<70uko*AI`Gz~n zOnM##ha?ar-Pb5pHobK$rJ)1s>p+EkLWK$DhCr?lR*{XgvQt<7qw=oDS=5(n)pf{d zY2`lMv6`G*ZzmkrK2)fNpoh6F|w-5A&mb8m&&2}dYj7d z2@AFXNrYks*Kk<-S#Eb~a-!hgAXb!MXu~@<2kybv_bU!dZ>5~VsUT-eC(h2D&qWWk zqv9(qj$!f?9PC(Dq!FX01C}Jv5s6>ntid){(f|)b57N<}=o9)MdaG4Wy!y0o!|hNn zrYfbj)o)=l5VO+t(qm0l;hS8lQ0;3d(r|JZVG4<27zt!M8ko^d!q>iXDy0w5x|=$b zz8d&IfmJTaYghz4Nw^=I1Q-YcWY*p8fj?;jf8RO?o?vSznV&dUFjqYK=Z5?-iQC%i z+8DgIva$QEB?;A5a$5oaM*+0vkCy!TIXx>&I|IubR>h^o~nEWHB(Kj$Ou{8OSX#H4W z`h9M*@gYR|c;pQ8v0-fC4IcBj_$|;od~F{yeF!g_88Ry^>CAVDWvth$caC1Ex{kX{ zcLJyV36WN3ufC3ms8QO|+?C=Kn}`L$xaGNO@gT;UO-ajP%!E|zMPefgD05g$n8fql-=m%uaP0SOV zK&{8TIXBRsow)qB(db8F_Oo;TciAWDKYr)`xjgiTx%^#Bru~2?2)cm2O8Aer{xc&z zQ2sL`E!N`26x0JPo4A4(Gfy-7%(8gvP1W@lqSCHBZY)boR&*ib(cO_Gd!}sO{+$<^ za!3Y|v*R${QFQNzKD^-rSN0sg$s!6*4VtWSc037)D%*D{21e1qbR)*=W337%jQ;Xo z1E^Y_7EZt{4IpJ$-UvC+dc1<^3Zz>Sr&zrw-mD?gXML^l=n%8mvEJ>_MLUHY)FEt; zjDmg?G~90C;VID-MDExuQe4j5YMUAnmLW+fuFc9BqICs+?XaR6?^Vq9Pw%ddIQ!8v z+L_6V7ixWjYQ_$Xnyz6~_3S{qp-WfK=WZe+Sjl{*ys;!grtl<$A2Z}Tike1pa3y%r z3}@NM&-~wC#rlWgFSuUsxA69#K}4-r;rpkh*PJDx`%o-ibxR9iOEgW>SiuPeGg|62 zde<|fFBf|g;f>t2dT>`Pmh-L{L6#tdhNYPMEe=-i|!Z+T)C2gcqW*T!N$VHuw|?{ z-hug}lB_fcf9Xr*aY1rbd08Uq?#>Zimp8R`<`N=i^dmW8u5iwM3r61ftsCXAlcMhe zJ)4`;k`{W2Qj5&1^~)a4R`3l8NjAlcOYz|bxJFK@fRVH5LvV&w6~qFJ_1iN%wNiRaJKlO@{x^$f){!{nV^9}QK?!d>q)qrpaXd)cLW?{_(dir4gENy>85J@7%rMH z=vCs#tU~l(pwlLNZR={^%XeS2vtjD42}1G`>i8(Y+Fm1O-^rXGegAUm)ps^0z4JQq zHaOvY@GCNeC^XRe)7*=Y)~SQJ1KKj^TT*Gel~PC2pbx5|^lCN5ouO~b)D@wx z_cA`v$&B-w6{QJ#?N=;A;8H9BZ%X&(7U%?-bVTT?f$GqSSm-reU_Y?8^-oFL)~D#| zAI5zXB-Q}hz14`?iUzGGgNUFf`B{!q>SSds#cZ~4u&=-5%+J>Esv ztwj62b+(P^?Gc`$CH*Db>TI}jQa*SB5TlozBY+{z$fTZ!9!Opc6>v)7f#t*x604F$ zAfENO=Bw#HSi%Y+E~Ar1VRmyp?FC)!%7Z>6i5~r=k4e2MX#FNO_xhz_<&IqkNxAlP z^(P%5IAcl(uugfkpf44R6_%dP!cvhIem5aC0*x^5QKw(}f9X=DRkQ zUdushiUbGd39KgO8D;TuG;-W>W<5SuX1!Xl*u5nCHYGggc8bzbL{!g*=J`?5(miPv ziF{8=9{sza_wAOD9%2f$%6oHfKZGq)?x1w32R1fNos#7gT-*wbk}%ChHu-|tzPKw9uA%aq{hB8muM~D&ClwPhS%oPw`WgL0;4WkNF_hF{6?Wu@)lT;1New$Kz8yYZTUIvJ$t6C z(iWP@hSao8iR74|pOdLsMVMJPXqv@t>EYQHtsPPpVG$|m@f}+)K$H-ggloQ{Ar|UO z|FFWagF?K3mZt5V1+PfE$~Rj4t!7B7&A8Hc-&*c3sINO7%M%1q51jKkEe7?!8Hu3{ z>yW3d@Rta%(x}9*e}H3lku!Zp4mM?kf-V1>$@4Li;|p7 zG5esb1YzOW7s2^2;(T&f6qt>nb7yQ;ikvsWoX3l4-d=?^THmSjThADjMjNSzvmT_S zB=5bL>-iqhhng`&W6|CLasU#a4ubtLi|pn&1MCsH?JGo`F)7QLxFj^b;Ce1BXK4CK z0GumH$2enM0@lsRO$dv3tl%Sh?wtEqrt-3~#05@BGZ55$Q`0^IvWMV18Thdo`=vb< z1WV0CV+QY4jys(%=c%;IiOk=ihm&>s(Xl^Ud>x}}RFB?@3VCVQ|X1nQdYn*mH z?8q96Kt?+Z=3C3heM)i5*aPUz%XW~9=-Hj)^pOFuLOt$@NYxe2*^0;G1UW|vC`z$x zsf>{!DFp=^5(P#divZul2!`c?al0@wT=3kpH|JhhH*DmNju(XWdl9XzNOH8^m+jU4 z)@j*b5y(g)S+mWEwPtkqjV{>jMJYmj=py}i7`2GylXcZ(^eFPJ0oJRFL{?5bHN-O_74ob5LF zlDV{G%3bD}01^qqVIhma=|f_oe%vnvx4STq-@keb%@LLu?1iJc$;~tC(jBI=MilR* z(_Cf(%VNF3YYYLh@;tm4SdG@IH5xoh_TIIyAjHGvPci>uix^j)GF)3sX%K&Hm#q`HAMKeMztqLuhbZy3*SIEJ~eAf$e>k9 z=g2JjD<(8X+VAWRlvj+Ujp5o44@|ED&vTq3UUe(vvJC!DEQ8B# zQ6FewZQvl`2>ATQ0jw!gU)B~Gx7*{|p;R+_)$1Exo3S15q6&f z@9O%^j>D&%!c|>N>`=%LV5Xd`mf2oaestqu_%z3_$G|UKoGxg@o3@@8CQFO~ll0kJ zDY+Q!)VN=-&nB9r4jjf)SWK;yB~FleM|S>e?zkn21*{^n@n|Vn6c{V@4bh9eRe|$Q zn`cW-(nnv@9bY&Uaiz=nT)N6Ka!?HDZ--+Cf{`Sg2`qmZ##@_)Uw|D*fo2lzBF-a=qc| zV0tPET=05(<&>{ocGUo%P><>Am@kdc{qp|hC{o~# zes=kR-&hC2f76Dx|MBS;?SJv@|L2&9A1>%}xI_KHL>K`={zoy#&&d6G^_+tFH=IOl z6;9L)&or4u{ROy6kUO05u0DOXs9#oOt>EL`p@>+SUd?_C2u?M&py26Y3da&<#P>*! zlzH1HQiA%wASEFFTT-GH=vPt#on@Hw-;fgih(}ys|CyBN{##OF;wLE~{Qj{=ILyQ8 zcqg~TJ8B!AyvK|SftTNEo1Gd$uKuVfJ%B0Br9@*9I~dbwq1_4G-i+#@879b%=Lq!i zV9;Rz!Yh@a@h#h1mwGe@?)ga0yV;l|#Jz3V;ac4Jc0f7MXrA-HwsB9}xRTU|Gk;~( z^8p42S=fPN0wVm@j_oe#VM?oBCodSQhk;J)y-&?NR7Q1G z%pOamV3FAu6eWIGN~FL753rVCsiLL$$UbDKrPw$S4XETSpxv~!;hpWJ*5QIALlF*3 z-YP<*EM0O$xF8}z)UVV9L6*D=3`)53MooJnc9Z2DaqJjb2A;s0sEYk==t9!C0PF?C06}X zoBkjrDE=)e5&OSMN)$^gwpjfKQbOhLNQtB1|B95z1&|VE=YIb~O0YbU5=H+*O2D6= zrR}up9EqWRuZ+~Kw$up3v#up=c{8VKh^H_i_+2|A$7f2FHw3Q;$o239Mg3ImZ4`u=bnXnP( zqAfX#!6gDNleCdsa{CmOyE7O)*)mQ5{o9-aJ)9@7g&;rAxA3oY+Cc+ygV+@d8var= z6tI?isPZ-QS>wIduls#(cNOtnAlJ$@B=8Fv>{t9c%Tc1q-3Ts%naunVg;M>`A5&w_ zgBmComwXp*L=vSmb!!y_l=47EM*5P&7?VH+zX!g~T$VTti>w=+`Di4Lj+>}m1fLWNI|K?YbW`lWvB6)&kQAL} zre18ee62ulOSxygt|LD+4FjkNetHptnH0KXy`U_T zGJ;Jwxnpsv@@k5)NElE zX>X;(;v7koNz)sg7ov`!!`(B2msnx1i7CORvcZrbbf!_0D8t%;^Du04&V5t1A&G1S z)b^>Ad=4E~7EvA}Tc|At$D=Cx4eVCHT(RbSFraz3`IQ23#f}C^9zk+0Wlz;RS7cCu z@mMOk+HY-mn2x~r(J{J{(h{0<-FCWfYYelxzLe z>VYNhEvR<*ZvTEu8D=q#x2E))qiEqKG{%MkPM%V(OAW%P2a7(!D47i9RVk0K6dAcs z(93*LOU)d*<3-8qxX1m-xRd!>3V>+ zl{FIOZ5#3Nm#opF1Km2(0n#QGwLT{_BQ0N@r;}_Q3$9eC zEt{}RtOaO9A*<@vd zp;n@}xYw|hM678vY8BuD>Hy2fjaRcjiPWG)z*YtzkN^gY~+}z_;kMsdwY*_)8V?%yX~kV?!;efQNx~{64JM4 z3%T0;aRI&~*wBsChW{O#aWmPQKu?XGTUA*Yh*a|s<>stPJk<7b^<6y5^OyNMZz&?b zs1D#K`Mwn=EtZQp0}kPamYnv$1YtZik^T<$t>dzLPC3*pt!2mi=s1!A7SUb%w<+|XT#>peEbq030V5K+f zk-mt{j1T)Czi5!cC_Cc_1nznrTRP`jv9^#gIwhyAFYTOXpJma7#3C5K8i(}Og1TB`9L$nhL{$ov#zW^9cVa6Y`(d=e?4bp84zyye_C>+@GCWpX z6Gs5v6kj|?#(!6I?o9vjQ=i=ydyzuLC08NXcWB?6LPHl<255=AQFZ**d{!rC4v zv4(xR-EZmwLglVRbpjewGN$_w6hqHFYgr!`KfKgAF&jfx2|u%ag6|*g5B^4mqSC`7 zQ8@6v*tJi%TY(zJO(I%2W^px zXqMJqDnve_$#lq#f5jFYnhq`+68I$taknSMUg)#RozfQu;-no}(}Ty)G#K!l=k^1w zpk5z*+~BUCJuCj5sQAau@?R7|{HR<1xybputN(Awi+N28nMOdol>z2?y8q~gztR{X zQM|SQ=Fsox0WG)~U)pxxt~DM%Qq#rE=JdK0{nKc0cvSR6_hU1kv`o^+a|o&1CDSUz zy}M~%H13Ebrg|O6$ybU1G9&tStaLlK=ajL5``aEmXB4%AtT=554N4YZhk{M{5v@on?i6Ts@m)KW9a+ zxC9QtuJj!^WonkMG4<2iPtP3;0TtYWP_eh3bB1K$Qx2eM^QTSKyVd{XY>L? zm&@so^|Z5?=@1WpdzrRD=-$!KfzE1Y5<~|a3d^Yc;V(aKYrS1j+w>)ds}RstslD z_>6Yc*rR1}k>P%oh_~>GxhajQMQ6pLHA0esTv~-ASqqbVtA1HDwS`soH$IS8_y({t ztJtVYmg;<6YP**enr`q#^!32&U^DMs4&1tWaX#~!wZY{G?IYx5dMJKbozgUxL&!;k zsW8Qjy5X;V9Ow|{emp;(F8Q0Pjj5-q4fsE+Ha-HXHXb#>1>dAyc|AH9HYoVC4kKvd z;SzAo!Zf5>h^Blu7yk-*VViHH9%`W@uwH6B(YR?_xxUgj(BpB-PepxefW?vTXK)?H z2>D6K26E6uv7L`{KX`enbwyU0AyJ{|w4bW4*lqx(7&C|R1G914c(J%I==F+k zy+u9;B2&`HlQb0rJHG(m+z6pMo$WWIMBnE|Jk){UlWpFB*>5Xd0L9bd$YvY#WXR0A zKY4lL7(#v`*3$7h%58~w1bMNk;hbZE75j4s3X%-=c3!@ z-Lt0#R+xpDB@NiOH=^fGFZNa&gO6)Q6y_LBOusGLi2yFzg$71z!DQLBmr-cYtmmE| z=v@Gz6Rc%#>P-9!ior!gwGNFyJhoR(Z!Zp3I2mwjgg1DtYHSuH?MwPR?Bre=Q>eiD zrNZ!Bl73>(A~M+VjiLzi_BFwA_F83SuBwtm$;50%YmGdUU!-$|>zK47Ebv3=7B%pjPS9h@qn zEF(s!*-#Rm?=8#>s?Q^kn6MjBrQDHOx&2lHEF9#>!;X5oYZ|9J_daW8iU$);c7DdP z>7$2aX*u&mQgJS3JO`QUs0ap6{RfO}=grmyT+6~OaUK?^Lv4KGm#k$EHK~h9k4nQJ zh^&`Qiq{;)EfQSx%}NMg)m9aKOx%_@3Kw+0VYOGhEMt>{Wdb$?$vsp@uNM$jt9}u~ z(SR3t%;|;h#EBYhnvIJNA(r7!tF@z8x9FN_O(JaaxEn}}=!=m_R{L3Ah&EEE(ifv^ zS3PCTKW;Q*9EU6dyrEhH4pf^*Z5#=SBa1OOX6+PJuDj5Ib@el>nAiRraI^!KT_&5P zAcl0q`e=WAuUd1A=KZ;ttN-vx@HHV3*0VOMrQW=iqjK1zwZv@b?mTD2d#r40$w z(l5Nupp*wT-r4x-kA>is@gQO_YDIP>+_zx-t*rtLHuPQTNSpeBF#UNS0i^${Zx{2Q zee^EZE=CK~{7tzO9%##SuUY_wwVB#od=iy&giT5c{K(CC@TMfPT&}^XC68$s0D~2=ocX_hdr7(#P9aEEZ?qpTnQ<BVP$sz z)`PMFSsX=3Jhm-VXD3VhQ&KqbF=Z+EaKxn~bRAdR*g)_mCm#avOQM61ib|MT4xSqq zBJgD`1E56tlv9unB#&Zmf_z`SCvh$uB*o;DwJ!92HBv!7$|sbz+Ula~hkPxVus5tq z+Hg7Cdcf$bTl00rn$r-sMFce4foRwS=gLUD8>z^_WEX!!`$(T&M5a%gO!O@m)YlI$ zjjWQ+!-&Zqje@n6?eDkroZv%@^y7$kS%$OTPT$|(7uO_hn%tqk8gmmOEmzfJsk=Sk z)DcK4%>Q_Ax#l{kWfpFuaUg2O9?#A++KHJ#aBihg@OXQZ8LackRRLbFdW3m4C-&pv zdo;#(L{msmE52~}^^0$4u%h_yLVQGkBpCEM;De{VmXgov*|!g4hBNmPxsUR!l+#GS zQ0HD<4;+S(t$=`=0uOygvUX3Irz-x66FYI#iU17E#8*X@y*iI{M1#SjIr66Q;UZ_{ zuB$OS<|ajHxb30w1*5*YWgH3vcxkNzoB9BACyjq=k&Swy3|b>2Q|_#bc98UaV4nJX zjIz6q46w1UfrBRYcl!I3fcij~?BVD-HN}nb#$_$hAZ_)bAn6RaCJjaxkhoa2WDj z@k}yXjdPm96Er(>BI^jTL?_;x*vRLet-Le*6z}o4GKBG9S9gkkdw8KbYt%FiOJ=3A z95lcsG&>|iu()`>d{|QFe|x6NUhDDcuJO>K`#d(%Qt%QZw3D@!n{_p4o@_G&Mm^U} zV8HpMm_q%d+>yHB8S95_hPO@f3B9V#tAb^jQ2j$v2DKGe9+}r-7I&#%NyxmIW78bCi5RdjZ-Rv2(svpl|ESojY6>nNk5uZ(d6SfsfCNRj_M$~>n>Wd1Dc zIHL%^g41L%NhC^>&9eW(WHMg;RtW;(*wlQ0CH>}-1CE5;q=8K4&ZYTo@$uoUgxkeP zfHr8i4e5*W;HA$%`o%Cb1-=UpbqFot1$M}4HE2lM#g)+c$>Wq_@WuwXWJ1_kdR0MD z`FZ;A%0o7#sQO)`BkFW!&XN_1=pcE*GRu8uiry9q`!rn$QS7Wr5RyO2I)+vKBbqNk1%ZIWn!@p4|XY6|6rw7V4qA0S@!9H+r|*G2M% zy%Xuyw>FZ$iU51yL&+Fy{;oMP!j4T#z1I}duegOEGfF#I6yf7Mtrq}iaTOvH4k6%` zEE)Q>I+FxxMB5|sa!%JJ{CwGFmIW)0U~?K+PqdyBubtE}DR4QIeTMxk)_M=(~v~tCLGXqQuP-HV@%rSI7BgDtUR|VQ5w~ZNbZ>{m@xm3gL=wZ3* z6+fpS;3R&Gzq8KvFM@_GZH&~`Y+i!&JLiAI#067grd<*Ga8=Z@xI~hb8VB}WsJMF) zdQmZxo0qdliB%)24o@#0K}Sru=p6^3p&^sav$KWCM%N+OL;bMhM91Q8cAS|Q_;VkS)Y3s0+0w(&@m%gokNGN1ZQu%Q|-6vM3F8#_84dqp#_7K@`^ zG*^Q9mDcv;eVzl2N4%Jfq7vc?+fp{98u<`4MV@AI&`M@*d0LHxn(CRc>nsk+KC_G& z&IbdWki)KofS)ch1DecPkkV>=UDNDTNIy^c5!PPVyp|!{gIQh@q0|d<}S^*v+)CusFTCL6eyq=|b-%0Dj%BweTf;!8`+qYgrOG=Vfh?gG8hg&rY zakJZGXjNO2na^G{xxRUyQ;ijlpmVNWAy*#tK_c^|pikpx@ogmS=;-{a0N+nm;({tT zFDxlxX&O})=F`IF@6_-5>2kVhoRsOtWst6Dk*zW9lcwvbL(0t5-99S9eDK}-&eh8K zjbqpRV%-506IOk?)Y#O8st%0Q_|2~Pe4%5!vv_wMRog`E8wgsvwA}}{-U5wqD$WWw z%P>TyNvUg+Zx5{~)hpK~{Zcom68O!F%kS|)lI(P*(&|en9DTHWBN|pqCgtVhb_>2z zMFo7$>6pa-YP%2G`l>KBms$sLX=p4NKmq}S5d2Yc{CB5#kpQCT$IJ7NpTD2!1p`F* z$KQd0FoA#^r$-&Mhk<( z=DBWdh@a=h{GI0ibl1P0aPnO9EnrTz_@DDm{!cXjde+Hv&0>I~RGy!F@^{*wJn((FgaEK2z_!}wru<|NpW{3k^CW+5_di|s*FC*YI6qug3z!@KwZr$h>fb}) z>G$U*{CMc{>ptKo)t&&=%gYwEEM*rOcn140P4-32idscrE(a&|$ zgd+dZk)GtQ-uYP){X8K;`GZj$k^nm!f12>u zH08fX`?Jaax^eOe?T5pJ0HgD-Xitp$bDSRLyrm!U@+6;}_`6llz~Z~`xv_R&HlsCC;4}XKRWuaTXLQdJpqVZfEwqY4*mCY z)|2)p`P{A_D8H8HKSzlrevb0*$Lc5TPx4QcKRd_oPfAh$)o4FDM;~Cr>`z;MUOn#` zPaPgJ744V!`rVf2aYgVilph|u`v;W&5MfW|Jjveye=WU!?!0S2CH7BaeqQ}|v37j? z;txZg5ADxgOZwXB=10^$$vIinKahX7^m)|L{^Hu( z{{r#9h(CvrKY^d*^BeeUdGM3TgaDIU0FTdq8v66M34-x9@qJQv3_=hd+z|Bi?_A zSg!6rO?{HTL;qTD@Z7aktpCZ>|1Nfif&R=UpX76A|MfZd(;fV9b_?Kf^|L1Zmy3V? z?Rl4e?)X#NVel?M6hFzQ2KZk?_dRkhwnPbdb}LfsCL%w>oB*Sdoq{>94GRVZU@%-G z$tl=#HY^}uG&Wa&Qa(?Ikjn7+xe~G&e_af- z5k{lijGX(pQ4+ySca*_7#T=<`5XnTMEDcZSuf2Acky5*Q@w#pt=Y~ XBkW)WcAr6;o75PTff?n9H;4xSw?ZJo literal 22446 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 Z0}4G>>UMOyES2StP4{b5qUgMqt1sAMVI2Sf diff --git a/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt b/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt index 113980aa769a3790d01cbdfa454202b0123920ef..5fceacc119308e7dd15dde1383275a3610e3284f 100644 GIT binary patch literal 35549 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 GzyAU>oz2Vu literal 7662 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 F@L!)TD6jwk diff --git a/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt b/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt index c57cb3d17726c8a98a9477f780c7001d8b3d06a0..46c68f35745bf858382debd8a0fd81f4fdafa6bf 100644 GIT binary patch literal 14409 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 Ck=)w= literal 13698 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

o=op?OIMMq>6zva;$2qt=xSh-q>H{&_lbx7I3<_ zZyRH3K3~|UtPd-&?JCrBeFI9LK2)mIsz0$7znLE>8VFYHl}wJJH%2*Q&?jKio*N)y zNlfWYb5}Y|RBBCMN$5?ju;?godXvP+P8HeYeoyUH%~VZkY&Jxh>DOE90+a1B;tCf?-BV*{cV zHYUH(x|E8kII>h>WL2Ih0s$EWfN@z@2HUyHGQek;wb!>?+_2emz>GEXFsnJ4X6QZq z2mT@ks=o0r<3>JHMj*gLrZGi(m_qewP*kv)!F1h8n>x3i6Ay)3HtbHdhn_Xjxztrm z-p5zjT=Q!OXG5rWS03EHI|w)`a-{X@R0xYktrQxyWWJDPe40g-mf4*9q?1 z6O5GhVSL}Htz&|J#!jAEQ-Q)!6SJyqXgPfHaDCqOd%R36i`>qyJ(N(K>SqWOs9TK1=LB0^KShj)k~xi9+yE$w2*6uJ703 zZv>@H1r3Ex#eG|ws>;I$aC6mT3g65fd&q|eQ0y|2}1 zy{;R1J+EKviCv~0;l@7`B*u?kYd5|Oo>>E7_cUV%xXVFM7&yJYDZ= z%Uhis2!b7#v^@vL@7%5ga+EMLf7i>Ss(L82s>G2GymQtc2gP4rykQvv?!z+415Bl5 zZpH-NlEUGpP%6w^q?l=DPK`NJ3jqcu#ZS z4H(A`VV06B+Zgj`jV~Oumz?AFa*NG2k(n{Oo{`_Qx1$Q`5i7$t;l1io+>9gxT4^AB zWxfce29`KMVv7Zh&y4RkeWK@ZBgQ%BUbbtf`5{|0OJ)m8OSz?*VSJb|HOv%I--NUu z_V6C8y-R%nwFi18>ZMzW>}d{%4FzJkcNazbatw2cyUiC99V<;?)Ac313#L43{kaoh+@PuQJmboQ5(jYkLn3$~7~JF0vAhZ}8e=_-fx zhghpjiH9Pw9NEWc#fNFj41k$@HYbG4MpzO4DUUQS?`XdhKks}+i<0ChKGfouN}

udsCv_|eHNi-PLb+jU|yC;nPHyRD{_&I7{POf zZLw8LJ2^V3q&k?>wLErz0eOoGzF{CGA-?8{djDf=^qScPSn0dkI{nHe9cin7US>t~ zny5sq<(~qM`R?9UoI!NNdIT)4ap_h>vP7DQ1Q)iXy*Hnf4?ojPt^U!Y?7WJh@*T(e z03iq7@JyBtP8pBD55leSOP!)p%gMTs$d&I>FE?4A`-NW)p3*45vA38aRh`>X+6}Cp z#+fO!kcVBy#<7}V%RU58790RWxLN86OavSwHBHvipK=?eIIPz(FoUQUdL*LUjvHdb z9)=|dDix#UdG@t%tij^-yrs2Y*kRNqg#ohyQiC=L zg9`7>H@_}9aaeZ?gWUQiWqgMs=j=*e6Yj0hOS?G~Ucy_e1xUSW=G_2UX5P#$y~%_2 zBe*;K#pR94iqN}rc!Pbr?^sqfyKxghcw%Fapob^xW=l#kGmWWILmo_(1V6t)17j=1 zyg!H32f7UEyBfnbv#bixFGzV_9g}QW2II5X>{xYl%YP9VhoOS0KU0w|Nfq0+ig#=C zjomLThxjC6Fsq8B@N_2BoTA1}I02E2fJmbnf&F7yJZkvUYyrgmu3KPDVu!lYYh$CEy~ z8m8n@`n&AWTSjiTm0?s07@&(J~gRC}kD!KF6sG&I4H-nMo zM(I&+^*ho4Ub9W*^&E19R*(;TXfQ@BP;99FT+mCw8>Rd%s-~J``pR90aEyIpP~VBe z^2>c`JjlV}meO&4%6jBN_{^Z45pR9+2Y)wUM|hKAD(3qcvM2Zf?P)fs_|py6#!IdC zkB-~%);bVODU3^95M-~e5Y}*_1XDR;^%$?!ch8wINwT27LsriN?>kDPHH)1>b{@0GBgUm>`kIUYq zUq%S&5PO}`ww9+6t?yh5-CI-pvY(j1D(bexc;@!Ob*+qOF)s(%KK)4Wgwd65J(GXr zm;>}?#x>H~!mmO1am~w{J8~vX6a+g+i z)A1-Kad&s->Hd~P!8w)Py~S#JXf!i%wSMi@>Qi>=N64Ic#ws7*C!3MZJjPS}?uO4a zU@+wD81*RJlwf`H!5!^o#>}cc%w=x)7wN7TEt#Lkdgi;DJ23Uy=g(=fY~z@A(`sW_ z%p0i=A2II99Dz*Iob73s@Ym|Y9o|6|?N& H6QUHLr7JoluRRA&}{AF%O?Td<5s{ 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 Q#Oo*I^$py4eG~xrUj=IYkpKVy diff --git a/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt index 8f1d7bbc9c4c97e8329065b8021b4138fb866026..950a5c0adbd91510d5c60e2428154687c6473f8a 100644 GIT binary patch literal 10948 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 P1v)?m4gdgA|GfJ@y&P@= literal 10456 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 YF_}~po*+Kni2m?feqbFiC?2o=AH6!7%m4rY diff --git a/fineract-provider/src/main/pentahoReports/Client Savings Summary.prpt b/fineract-provider/src/main/pentahoReports/Client Savings Summary.prpt index 79888b06fda596004a1563db38635ec7fdd11350..ce7171940de01eb4da9f2f424d06c09de93aa0c1 100644 GIT binary patch literal 16637 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 GXa5I?6H%i8 literal 15945 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 dTWmQ0V>HT1fjkw5x-d>-|E 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 JqWp38{{VfW{fz(s literal 9769 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 literal 9334 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 diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt index 6366070b298816c78e59a78947269584f94ea5c5..c6cd898c4e5c8759d43e8a76f15cbed1a07dae57 100644 GIT binary patch literal 9011 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 Q-(v!l5CDJ~ieFd%0}HTO$N&HU literal 8515 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 diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt index db0e39fc9423130b577f147568bb50d84241583b..96486c25c030d76c653a80a22b0241754440ee76 100644 GIT binary patch literal 36111 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 F7yx-ivltrEsZqNT@ph{N=kPl(ntuxKYBmD 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 Qvd{ri_nQ|&`s?oh0OS;Gwg3PC literal 8548 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 N|5om!5<>Ox_8%Wg$s7Ox diff --git a/fineract-provider/src/main/pentahoReports/Income Statement.prpt b/fineract-provider/src/main/pentahoReports/Income Statement.prpt index 22f2e9b63a3e8dedf252955cf41b2ab8d81727a2..3882aa3cd28d17e39e9a4d04bc1e4aa73d89e765 100644 GIT binary patch literal 18156 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 Mnm=Z;|M>R50OBLrO#lD@ literal 17202 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 BItTy& diff --git a/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt b/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt index ed06b710c7bdf342d8436245272cd82ff265129e..e2f4f178bcb8fb3722bd59426fc8bb573ed154ca 100644 GIT binary patch literal 8273 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 literal 7694 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 BBi;Z2 diff --git a/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt b/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt index f4b6ad56248e50e01e885209427c07ab04257c49..f042d46021b1ce4f49811147805f9b9f7aecc440 100644 GIT binary patch literal 7314 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 literal 6795 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 Rd;kDAh~F1PSEl~d{2$CWR_Oo$ diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt index dd7fbaecf2ff71bcf692bec19c8fd9d48a49fc82..d280c265424c060157e9756973e464ffc1332858 100644 GIT binary patch literal 8691 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

HR9Wx>Tkm#8uI&0ML!|E5+l(awX{wBcUkwN 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 HD5(DectH;$ diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary(Pentaho).prpt index 0baa28881f024a8c5e4ec625cf45847612c6f881..b7dafb3698684b576e75dc5112a7eb90c63d7dc8 100644 GIT binary patch literal 8523 zcmbVS1yq#Xx*obaq(o_uMmnXtr8@>0fni8#P(q|@07>aaknWU5Qo2(>8cBgWdXDEu z&;PG`*PXTY_s-1v*7L^R-`>xD_NS(ZfJg`c08jyK-t|&XkqfW7VZXBA0RU{6wKQ`! zbF#1o+L^Jr+1cidwt?F@Fp-z8vYRBKLRbw{*>q&y>nDeCt2bL1$-vE6Wnra3&L1Ubt$UJsRERuV)f*Vww>W5?|Nxyn@F|B7WBIa z^_+Z@qX@gEWGGq0pU5w%v5YREl_Wpu6l#!T?ExvR*Qh8&5>wNJPhkNoPG5(*H@&(O_+wSsskTaR6*DNh^!U;Jt?X%w#}@ zhpCP)i9?4R63;IYBx@RDI+U0fts13nO6qPRuw>EBhnR|y?Eh3otnvVsC*Nm%X{MHb+1p@l~i(nUqstW!ECr@emv{E+J(Ezd4?8zdbs_$#^WP z4T)sLW}<2H2&z8Sh<{e3i=vC+N!A5pTR&>~>eV91dW!U|Ye3{86IO*1X?WMl5Lo*> zmg{?J2zHNVi1&#Wru^E#`;?q7S-_-vrklAN2tNc_(&l@HjQG;tsfGl$Q=rn0xf=EJ)Tou_MDF4!CtCz*la%m0 zkd#Q6NeM~8ml28pTw2$yJhM*PzIXCr+)WBGusxD&v6Fg8A~6^MLgGjiIq`@Urs;p~ z&XhoIgbvd3dl#uo-)k9nMBSIfkn)I(JIrL6Hc*PYqu(!dShqd;lUi***X~!};pdQ& z$7&}NcFxMoj3lG^YV;ztnNySIwNf)FROiA-Z{NREmmu@xU=Z&m4oA(c)T`G-%CCN1 z%=&HAq0cnEttuXoLuPc`ct!jJD?}zex;lQZ@|zD+EP;yz+Ud)YQO%efdfLLg1SVYD z>9rQBh)SMQcMhbO^gyM+!BY6Wv$y4|c=AM9z0g}rgU(XT4lo@iug)cd;`P>&)+b_E?@i(le)UVy zq|eO31-==pm4a8`&r2CAV|u2CqwEl*o-F7JL7$H(ZJl|%N)cRFj%6d=rzWAfK^5LA zKy7E6KN%IKD;|TMii?*m2ArD^*jTBHKM+GuTzEwj?w5{NReuG|wE+)t4>H-WNMa+^ zeOEpkf2u9;d~30V@*-GL2_MvvJXG>+4=mP@mZ};2g^~_LvQ_1>m!wx!A&tMG<^a(} zNzCFK>^KA-;d%^_me82Q#^0{+`?s0Hl_q2+(6x(&T^4ljC&9*U6rLwp@3Wn?kJ<>$+OLmvkz$3;xi$($m37`(jY!*_ty; zIV=0Sg*THf=Y{F~3U!1}^Gfd<7<|q=CVf zu*D};?=56JoVl#-c~N+_?+_UUd#8V`T?!@$y_jj*{%Cxkf*@leL6kvO<-Ww;L$~+~ z`sFLLy!xHk9AQzzBvwAt(D}ajRcy5V0D%~ei>_PB9*yb6WCq*)+t&eaMj;Wpe89p> zK~VMVsgP;JOlk|e0u=r8ls(V7@P?ZcTRBNqL@?i1w=!tWF8e!gk03mgETgZN{W0RZfP&OcX^s<=g!b`HX> zefJQnvmHH@Om2%#61oMFtaCt>(38OlUOQPYuQL?XU^KTjpz6@%{+UZ&zty6aJnxrA zE)O!!Bq_uy?!eI^&`G&l$bP1tXwQIS0qs$HPrbzb6?FfH;ZHpm?3J@-K;QtKG#mAd zO>svH^?lm!WyvpOymLghHC$#r^I6xp^~yRhZ~4f!718GQ<4C2*AXOK;bstK zTr`Am8Te0z$?y;azS3)8@*A&E$m!VJSV%E*j5pjACJS2wktYW+nbvi9IV4J z29ZYTpWxbznYok~M}2|&rT{|JL*Iu6#20Yl4~#l5y=_$NFU6L zC6wR020?ZBIc(VjFu~f-t^vV1#~lJhYI}(Wc!-MF8g5I^$s~TF4!YSRfe=vk>$3BT zTb$EFscl%W-#FFu{(*Nhz%e%j!xDvcHzv$F0iB&e;Ac)hR#UBrew9uROzE@h5Jpe) zDXKUtM2TYE!*f5SE@x^US4)Q0?;@;fGGAFtu2Obhqyu^P8I#`1c&@XRh%0#YaEG6M zTVGz8*=t`SGBD779`7_dLTOOM2Y3YqVi`(5KkSJB!iOMLbp@cyY0?L9%YIHVUEJcJ zvE|nFHsk1G$gL4}dBge`$s~|jLFg?JkA8f`Qt@}Q29s({)b&Bl`_R(086!L?+ zvI9Gzbwl<0nGU=|O>vA2ILVLP&P~iq=u-9BYAt8E&s$E-&f$MA1yK+#}V5aX+L5NTk>}}aOetT@^fkwFSA!_ zO}@$;e??%q z4I19ZN3rEyGvG8@GQsh9_*Lw-R*l>n8oJOQH}vL`a0S}ZJEy1 z!l9Yc-8PAFYG`!DPl$N(Kfa(P6v(jb#@cW*moB%_do#*Q>glecY5!y#YuDkFT!3*F zYARAe)?mhr(eh@#}9>rgg|^9S1IC9~z1BC#qoJl1ODnN7kimc-XFBp z)G-|~clP{DL5|{XI>+7AyJ$CIvWx77cIgXBkQA$tq9Fxqa$0BR+Hw^!V{~wuVoY@t zKgL<|I|`scsqt{0Dk16dQ784N#Bhu#VpfX;3R`om+2uB#gwmL1Ty3IJ=T^}oj`g7< z4zsNCW`x>uII*yKwkCrHD^aNu#>HsGsqt7 z#0GJ+hX5U&K|m+vfi|>24%~oc&q9&|FbXA0J3KMhGHVwWEqU9Xcjl{_m+2SC1Dq?2 zP1IcSL)h=lSwn5gk$KKl$z!Y{bjiez3%$^z73MoT{Gi>HihJMf*%NZR3~qw=y)l;& ze?;_SqX7UwOcdmPe);$1$CUYV$7S#0XaRI$|2_7gokJcs*d3*?M*hd07WQ@!dl#@J ztL4v0$0ec-z2hOS)V@!k+oaw5m~-~fB;DZBd7j}LZ|0nn@%~oKfkr)i?33u{c@=a* zsl&aTJF+54=cL8CVIv}dO%-9V-3yVLmw^0OCIac5<-&cdUbYc22Xr z_&1+S%Cojovm@lXKw}N+wnMcMW4W6fT=L+(EX?S40f^KjfVdLNqec6B049aF`+UuF zTCs2BzG9qyoBn*x|14g45QTKiU%l!R|6H*pDAyUnrK@kCJa%G~Au!pfF+-nLq~_5U z8#7yJ$qarJ?+^=yCK5uiRcHXd(z$&SEKfcNBpillK^gBcAQah%%Dt#nNYl$u5VTQo zVx2HdUkOAL_4&@|e#DmktoQNl(Li+M7@NIp{lrn+R9+EQ5_grNdZwfXP>Bs%KK8)J z?L@O4A4&8$2Fm-%z3n+Da!k81t7NorWd->v1pz5W_5)H&gp&K+2zXa>0DEc4Qmw-V4r5-=$k)!j8tpg0fb zu;e3j*#bYNZBXa2EJiHW!KEua;6u>EL*YNrriIY2Ym?}{jeXVHVx?bJx7G#fEPfNy zfscn!iWD*^P{uTZCW(R>dT-T zBQNM84|_}<1&V9e=b)D4KZhzRNw!ZaMciCwXrF>|q(MNmEUMA$SH8@w$IIshc`B{G znkP-jx1v5|ds<1Q6MNtS-Mz(e7c|Bt&By;nQeR>w`poG zU#~;Yr(C$eR)EVfG5IvM>5=1S^kXbUK;q?r-$pZ|?=w2yfS>}+6OaA4BaY3dqynEK z72h25SfjCB``ddBsTyE8OEvSUv~-^-m^qMWNX04W@TN@y+1!U^nvPO{+FMvn$jKk{ zZ8|Y!S>d%zB|mVjiVqKU>Oa0W=q(<}-Js;Dem?znWKJZoVgM?lSEvV~wJ{)~_^KXh zaaPh;ny;MA7_F|eMhSyt+@u+}OA zlu;FiF>;yGf|b4_13zEY!|zlmJ$c9Y_=66d{2GyNz3InYjdf=nK`PDybbr)I#XXEF z4DB9GR67cmHME!Pg@|IxH#u}EPYxdILC7x)bE@qS#3Q=S#qp?zt-r`~(|mvTRB|qQ zI}WEjt!8xzs%;bPBtpgzG^=Cw&Kc9XK0WP0w(Vr8{7&Zs%@8<>stl=?^&Wd8Y zh$wzRHB&6Ryh>w2#4Iou-uAmDnPGj?*&{yVNWy&qqGB?A^Me4hO@C7-yEGzMoVzF7r0ar8a_^C<c^1xCk78=|&LLlopDjr{NV4KI>zhhgb|XY)uBWt0Xb=wihY!nN-K?)Q{2|;L;0c; zHyOhI@MUIQV1&nvIyk6EH@u@|g6MGU#UzJ^EaWZF2EW-=NUiL9gKD$Bn7`s6W1PxR z23n_VWS5Gc;61N`ouL3wv*{|$?fmAU-hycU@hak7QYA5S20d^f;N(=qP!{qT){ zUMkty759`Ew?hYA$jqVRnPHv9yVkRVRkyF-Tzx!YlUE!Ym z{sS_;MEaA@w%FO>+uPeYJFE7*OE{{%9kDYB+|$pk=H303WU-OYUO#21$?|dRR(3TQ zMZA%nzTQ3och6qOdP=|ZsxrA!VAo{|yTY3*rMM2p9LoNR*trw3q)Hf*D)0Tk^u1w; zPA^#4^+ki4P1bh5Vh@KX*(q=27gIZR#s_MKI3a2koO3PUGA&d%sReG#CcDXQQHT!? zTfA~niBZa=yew_!Odwb2CHYp;rI?&;jeUCPzyl#uL9|fy?#I4m;d_D(k&m$<_|Jd%41wi z4BKUbVWI-j-P`QUz#uE2(@z1nDozoMK!q7}Ch#%%dZ4la9T;PzI!xILpC^u#Y)$|K zo8)ScYkA8>a|s=+-ufU~HHhU+rIyK=CJkIeo(a-+iw^f&rlnI}p;Ro|RiiOdsEzxu z)lbMCRi!GiT9VQR)5$Svr>=*sO@9u^KJ{!el50?&G>XHaGGBbuKWAjl(xf@-397thzF6q5f9M`s#6dk^Xz$&otfQ9jqUM#wh`>sT zv$Vfws)1^Owa-ToT+BJAKG)i4R~;5%pYK-+s$q%62(jj{`HlO(v&x4COL?uZ0^-Ap z3ER8^EbPI~K=9AUn-cX2C*que0RkIu-AD&E*KKh&xLv&mihIz*tw;w7^&=K^Sn8fj8iA~I zEBajyDR|@XsY7IqgGagvr5G=_`kW+gS&px2$`QUS79-UbqpEiAW;HWXJ)MIu2h6+l zQE1e|fu-$B>EtMNF)<0+wIIlYfQg$kd|!*Fx*BN`@OIOLgh;0b^ZvUg$z6Lmeggk;ADf z<*g;*OBp6bsTL@N&i!M2#Tt~w7^$sW(UqM(_mvO15A_zw=0V3+uQW1+IJB*Kx?Xo6 zggxOL46G+z-6^VAdo211nJF)Vp29IBfIvS3qA<Xo{9kp5ezKUqTe7)VP8#hpAxRXX~e?uTFr?&tc=f;(soukrA_wOh^-1jvx(f z;Kk31Da2Ju7Az*iA*riJ7xEbs5{%>iQtwRP)4>>!Yh1q;q40q30F4}4)dZ!{K_ya% zPEyyi-jR`&MM;-qaua)?z=t0~M1Z44QrnKOb9*eYm!A5^3041g@kn0Un)t@I2B5P@y6PDSz=IN-yO8t(f zEoc_>2m&g^@~tDa!ksqYGvvPB!6Ze83nJ4VXMfQNX_-E-8)@THt58;zGn=PTOd%=M zeTfIvP>tnk1V-ydwa(evCIMS}f)I<{Z(Wz;pY1x8X1Rk!5_NaXd z%BFGGdq!Fc(uxqpX88Vj&Nba#S!awapW#~#3%G;KL+A2`>Rxcrt!Ok@(bM$hMw{V`X7SI zU1$H7(f{A_$1i6OVa}9cN9%WWp1;J9yMBHp^UMC8)ITw%Uw(d+>=jIP`44}(3;k<= z{%QZL*Y7Or7qlM?y5KJKUCwpa&96%RZ*G3)Aa~sy!9=<{jO6dYf0gBzy_>^-ulv8i uAHs5&h0SFD%>wTFm>l!d`!TM5*}r@s!6um>uSj46GW)pMphZKV!gY*9~gJT7Gi7W6<%OFK?SGkZHnCkWJn)5OLY27{QW-kBr0Q^ojY?#{yh z3hCX|a~TZ@4tZr+E?Z+L#M}(##OZ2lQ=6a&?S4QIbPf#cU20g=1Sq?RNqG1WDp_ez zVDL%9_rlp~wWfkeik3P>Zw^4*yU{ZgP1s~-p|Z~92O7bq@y92;#hdT@ZzO2(n>|sE zSWJ27!^=(yy`dmY>{OK9IRa@@rs@2Mjkr=m`Joy2>KMG{GTlU#r$)<<2Ny~!sU+V@ z6sX}^;ewp#+*A3YupIH0{P=IX12dpXzN}k*KvGEmm>@!Ry;Vb~1+o0#_O~nYsuj(k zho0#b$cVu#DqirG$fxs|Og8zMR+S(9pYyy|D0|()5i)8_Eb9ZD!sSd+OL|@JYmx+9 z@!qO(y?Rog^+N4uNIX){s%MSP=6GKtF3FMME=|XTEj+TD$PdJJxH$;2!=vpW z^>b!7bHkjz$C(G`pQS9qN1G&dE0nDSq5;Z`C<@;tiyi4&OX=1iH6KBItpDoCsL~n>Kvp>;t4LwY zPDeZHlvv_=Vl0!$=uAZ4*M|5r*HZJ?YGzXTh9#pC3ESWhq1y*&JA4GV=U^Cv^raBk zqE%}5k-pAKn^-8if0~Q`6Z4a_cN1Q!-i5UMtP;Lo+i-6enDUZ6F`Sk^=Qd}NnO&ew zxVnXJ1&lk*T%_W}x>(ykDw=LZbrbyQR|pk4uGpmjNbrP^Y`xxnC`r zC<*0WZXD@zvEDIHqFIK?vjgGIO$3P5m+Z+dEP_blDY&7thYfF`w-BJs~8+p-TP?eQe^ax`$N zR6RKZW;CH?S9x2p?ghB*w$ExO#Yz*Q7pX^rdvvHOp|?BD!<_pZ6%y z-5sXJPR6EY<`5|4zKGoWzn7+OJ#rjRir?D^V0;sfR5FASCVn)r%nz0+C~*p5=%uROLdKNN#jq< zI&3;m;9-hNCgc1`LudgJ3f#v2Qq@{4OCj~l7>Vr2azmm8c%*>W7R(P(3uBbh-E;)# zSRIaerLO}(6bcwk&Pa&D1Iq`w9Uz~ZpCiTbO zAI+GlSR-nm+0h~J)G)OsvskV5o~XVLGgp0Iv{@k^(Ao5UjJ>^&7rMpEZtu7R9GC`ItM#mBFHeP5fp3FHdTe!W_#Gs))0#j@ts$F{K207^?qNH9O9`ZMP9I=J1Tvcd!X znVRP^^{^OBgoaxSbsjw;i&Tv5EQ9paQjNL|x#eT)+O1XL>`G6rDt-tZK_*&{8TTcf zuW?P1({W(0P`ubOXB$SeSOLD zqP!uu*0-JBSG|v~RW@QolCHJ4y)`lD4Ys_#2SGEcXV>zs`8vRRwem z4YcB`Pj^1%-9_S`s|5AGqG0FjXkrHAGO@F@w{wP?a+t#I%Y}1PC)V9-g7kq`pzDln zIruucH$^9;Y*AqB#?w0IWOA?rXQ%~}4eun>>V0*o%afdV_33DLemI|w5@ntT!bqm; z!k2w_C^9y1jh1SfomQRfVhXh_-QJm;IB|N_KMgFT~8$C2V{SF0CTYUpUDqXTEpi1;38hVQIA*$a1dX~7tmWO@`W)9 zLCj_<6XdT#pCF+h?IPo~iKv3bZVu*J(J`K~vuR}}t@DI>w!h|a*Ww;5_?D@(6|7b| z0$k9n5>!XZpy4RBEr=gTe*r6V%c~g{)hs&kvk<6{Pt#oBXWulhA_PAIoP6g;bp58W zQOwzk#GDRG)hdBVw+aKRn!bYKIf~OZwF=XW2wz!Nu3eIlnuiMsekd+^m3OiWLiZNj zB0imc#i4>6=XJ&%sf9bEWxt*yawrg^$O4*xbXyN5JwDCK8^GwI2fbhRJl`mna524H z&&6Egw_DWd z3jr>A+snNgMFCFK6yp>=^A9%?x$@KaQq%Op`@p!<;Yl20Vd2N*7TS0riQ7-(G4;3t z5wH6@j*4T494oM}42r(!?9nCDTx4>a3MAO>)ljbKe;{+zlCl;Kp^|YOex{Y5)7(Nz znIYe3jHX4-{9vp+h0KPt(SeA^BKKQG4_bh(uMG^(rZ<3@s6&=HJS3fAUw`oQ34n)E z5)+;Q(+J|&)sLlVH9BpYIG8GQHySwkNZQ&dY$BBoAkp$8q(WL@;pD-kG~@wZ4>oJf zy^kcTO%%XE4~fU}Qh!C}|5-hn*8jHPy9eft+X?@7nPAmgm!@~%K<^jz0tAB_2j81V zsS^Ca0hQfv4qHwei}raAfxOQu93{al%wWl!;iVMxFGAWbp<9Uw2^7Rtow~$)B3WTL56z8Y(r?xnd*Y|7 zot5k1N2nhv8Tgelvu8w9KOtN7e*zSG=_zECODNcH(ZAUf@%keFfZzvRrdRlAWY-!u za|m}N)aHrZj^xpUNcXS6!P4=a2az_PbW0t;!Zwr@NYrstz~vNQwt`-=cb5CSL72@l zHN=7R8I)@0BqNU6XQoBwwXr4En)XuB?ljHiM^$m0vAJX}azSlc^?4g&Q4Ev*@hItU zpCpX=$;0XG3N^4}o4<`T%}K?623OXskg=r^1Z0ydsf#-B!bLVT?dH)+MtO0OWKv^2 zNMjxv_&h`vW1zaT{;geEVLTY2j+JZG(OFvwCA~ij()iVE7a;*b< zp`=Df*kc|y$)-0p;>zA9ezgmwRiy#D4(c-uSwSg)E?{k%-724ax$bo=vPbEd;~<9a z-2#SMrqDcgi%TCD%z)l!p@ZT`-L`eQ)nfJZ^$ao$rTjXFQfa}&FtTvrL2xQU%=YTx z(c0JLGHqtJz}=&Av|1B5sVwLa-41uhC?HX zq=!*REH7oiaRh#OuYurV%hyl3d2$j2`Wq7aIRrDFyOI+~QPvVzsysOwJ|wYr_)*{F z@O0(%GPir*D(|3n&zl`+w$Tsm1J7D7gyb}1K&Du5Uksf%B@k^}@9OG4qr@#DuXQbP7DeZ%@q{tgndR)Q!Sh~i2p8bD z66<;P2tug*V- zVWYPB9zcp>T9#xhf1Kgq*?QPp=2FsArt7x}y)nEwZY(;%b+LPVPDHi+Bp{5L+4ea) zt$|Q1-aKJ9{KeE8f|vo#o(@-g7dPN6%J%$ib@mC%R=3nT*+fd)+Sg~}g=J8Krl&Vx z?3=?R(Uu}l`S?=v>181~r(LeV%!gBhd-mduc`1u{fhpoF&2KZ8hTT0}9qlXu%e&KU zjr+!@h0Mo{(P(+i14a7mBw?6AX95~anlN+vgvdi5xV(${lZ$~<1HrB7&`nj z&gcyzTQvZ^nqG96Y6}IOfza$@enfyyoAGxD?CC!Kh+Ri7Z{3$qy>5x8I+7*&fMe5J zMt!wg^r+#}Jy@(q1+@~(D)+YAH^lVsWxVIGAmMX!AX0;WYl#n+{l!~Nr(3rxF=0o$ zpAO&of6(5)*i5ddFHfK&An;NBr`Ljec*Vxp&CdDPv2X9yJak=?|Mn#~=Ne89^p=K0W8cv(6McRr<~x$s>loj93Lm-dKG zc^}Zr*Ii4K7rgEh$ZRkYVR!2#*x&cQIh|F8Iw_QnKWZYil8CXf);5Z`54EO-hz7d` zOt!8lB1@=DOtLcB2aoHS#RDj)6U`p8SOTml4i7~~KKJa908A*HI zQ503vTghn!=@XKdRo=iawT}BcfvkvuHOzV$jMz=&anl==@Iw;g#sEpWP}FZcPX_D) zaq_f9C3NyoFnL)LLL%kiOlY`m0+kDr4rTo~4hl&;-}-l!w=6w~ltg;wE&3Q!S=Zqx zH!bG=;*>0-I3#0N5djx$IGB##v^)8(KReS5`nKN~@l#!P$BO(I8wAqXqb>Dh3XhB( zL`Zyyi3QE!bQF!{7+*8V^GWAWzbr!u=tBivGTA5ZxE^`W zTG>BOjkVqpZ0bYBkYyi9h2V?v5~X3j0>egl+*2sWXM*&@cB#t2WePPZBr)UWTgt?F z#wx+Jq#lXuSpHH`)8;GjOGj-AzuS1mCQ>a$R0>-wgNx__S9x=x5o+8mllV~4BvJUPQmUgR+#!bc*9 zN0SMW9YsHnSb z9kkIMugmjW&9@}z+DKaX;=n(S`WTM{b)}FeDAwHY0x^8g*Kj9?jA_gtE?QgbFMj>7GXM-MBIQn#snmS?a+&*s zOOl)so_}PwyNtB9RVE8Q%jSR-iKv`Te@+p{ZSQ$-cW;+#Gl>`%!ObfB5R$_b0f1$< z9;tIwB)J`R%Ag9-lJRTASx>Z4eW493djVsiR2|QLkKjd_M><64 z%n~QXm7CE&qgd;{B5c#T>Zg}qMwz@`R!99lsA8Sz&@YJojBxmKYS?<`^AU-I43`KE zF=pvrUD=`{*fH0YP@Xf5hpf93?GBAv^2yy(^7A> zL1nW6dJ>0Wt$nH8=iNz7_2`O?o()JfuBDbhX#62w3KL=;+06_>(x=NMx89>0Z;TY- z@Ne0<#Jrj}`w1HC^W_M@-tBA87sdRAeQkAu2Mq{CC8LUxLz6%I2FbofT8CZ3d<0#2 zJw1=sOGeJGEc)rc1`Z=#(!h)-wnCe-u?>4|&LNG!UeuRvQ|~Y@O@b8CVaWN#t821XKtUl$>>`b2w6VE#pnYr;gx;RQDl0xkZ@aX3jecKzU$|t*%b+44@I3xc#TVzU z_`=Mb?lJ0L$4JenVP$Cs9NF`8Rtyh`*M0V>mJw{)H=+pLlOoK?Nj2Fc^Vr+8>t$Or zS;viw76wxy70g{P4O10M5twL+IIF!p-5MIEMZ|%=udWm{#6hX2mD7$U98wH)zN|h1 zGy?=&WKw9X41PKt4;f|~&|*pU+E$HGn?LU!{*Y%S$6OvC7oJ?|Ztl|X*^$ScEDte3k2VF9+!nDXJd`|-QfiaJxULEz!Q-1D!QKMlc?Ye52L z-{%CM?=LK=7~TisW{7)X^v=zv{}F_{??NyqHyg8GVd&M;wVM|t@j56cn6*%Jta8aR zZq%7}#uzj1XhQJ7P*oj|?G0QblzSX?wewm|EzS;-hBkZs;MwL8T<@vZ(e|PgQ=Z3| zZ1$&FQRSB?#T_pSpZ7s;F1d9pUhinLnY<=q4AXpMQd_&nE6-n3$bs6&0T{H7P_rZI zrRL_~>R`?ml$3ZO2aN#4wWz-f=#hGO!yH|o@FqCZlhr1=Dq1%?$Rf|ty7r@pB3ZJy z(NtY5SEu6-5WZV6Qrk|HC*`8B9u729>lV=DuAY72{-jN@aMzas zWL*j5-lEH759MkwbTt|+nUce$n(PCz2#MCD?UpeK1xNf0oo6efX%}}Ywm;Rc_y}V) z;V*S?oM6Ao>Gid%%#+azT(}^KIz?4_s0t~irb+39t<49nJ(HB$tQIhQ2qIMZR$Mk9 zajW+8iwQ+tmN@-}0Y$80!&>j6EYl);otOT_@^PhTe8aUgyN^T9?V$&qqOwV=WI_i- zk2D#LE>PSh!i0u)B20`cuAI;W;H)SBVVu@)koj2`dMj%~^4+do4HP;MIPsQgy^8Fi z-iPR$@5|6KK6B?ySxKc=L5ZWgW$#iWol(h3(dxB_bKu15vnMI-%O&k!1P+N#yvI3X z3z=dmPFDISQ8OVfuQEYEFz#v_Z4^2ppztUK94K%OVef*GF4TlGC4t0{C6iE zdHCr+remNS1}Q4;`z%pv~?|8t$_e{r}!>rJdh|I zyBproLOwoISFzaBsR4OqFdMs=IHUHX8#hHmBv9pf*G8tGUf01>n%w5HV3NPWyRn7*Q)KZ6tI1*sf*;(VxJ-^42u#i@v?(%_-yaiC+0n zOa|WOeK-ngPbH>eC4x1CV+va5y%?2AbAP_=*;=z+o18h#eAN>C>^3`|;E?M+Yd<&l z+6#llcO;dX7h`DgK^qB+S!}kQEq0i=R=*Cf!qWEs~*J^hfs7n z_AVqc-c^o1TxROdea~FKdf&G{(1v){0IiI?@}qd=V2*I>N;H8B73w(iC><(^Lxh=hf3Uqk*qQTXeR z|NZ(GZFsLmg7BLU{FBnU=L3I>%H8F^We5K@@h8=C&wc%tg1ho}$5#HrPyg2Xlc%_+ zVSbC+-4gsk%KWYPCxClTWBe9{JFe&dlNx{P{|SBG!@R%6>h9cdum2nL{ag1>(D5D| z{Vn!)p8wMQ_fYBIhWT>29Q1xIMM-Xh8q?1pu%$b2egex3#HD zSW)O?!|pls2sgjn(}H6fkHj!Za5srugPJ^m=h9iIB{@D`A|ofK1qCMy2pF`j%w(__ zcu(QX<(>{~dvsf3VoZ)F$W&~NE$mXXzQO%W&rL=qL&+Lt^J&Gx*UY~V`3tn5_S2vCMq zW~VeI%jV10sZUfnQGsR}e=WaeN?0`agy2-VCq9zDwcKfz8+kt$!Till|7qFDZc8Ug zXO1tqqh%D*KFs(tVRWJilk=+5m~Du2Z7XOkgu}$w(ZyVtqcDtt)@-3q>z^X-*@U%- zOS>7oonD)0@XICKau~ZI6f5|S;+WJWzQ>4O2JZx9UL(WMLd7d{3%k#k4W+E*J08m} zbbPKyL!fApE*~OtUvRk{!}ZFUvUW8K&h(@jP2|8!+lhNLjy*#em(`wO5MLH}m2z;Z!@&%uBLD$F4iDWPWkbu(AabT` z^>BdifJHi}$@)yhxWkU9L5&c^IN)Y-!;uoLvr6) z)p8%q6Xtgp$xT=qWRg|5x{|?GXzn$s)MUm-U+7vl!k{xT2{^zM_dMlGLZD}PPeZFF zoXSCw&s*{px>urzz$j1TGPnajD@Ffwl6raw+Z%(0{(QoD(o%~hFybV1-*=9sD%(qR zlNRByP5c=#Ph4vAWy)=YN1vxnuH!`|LtyCl6Mad-sZXF(+X>Kj?a)=EKV5buQl0IB z0szv${v!Tx+1bO!?5D$@HT3Kko?-ipRG`mV$T|_bl^Zo`PP@R5=5);iyx^6T#uK}P zDPiKm*B@^5R90eZs8K>TMZyj@1wLIK9rZ1@w6Qk2!O1*jpsYT7u@)d@Iv_?GyH`Pm zM|9%r_i^HDUq@G+sAN7{;XG_Wpv;pXq)s#6u9y zmM>FVV37veB-)QOZTAj|f|LdnWw#JYr);4H0(Y!8)z^X^cbgD~&6R*K<*I~rZG;W}(PR2nd|7N^_v48*(N&#MH= z%zu<@W$Q)c-MfADvUYF$3wLveMThTpt1o|P^CHYB_M{*8fu%0Ca@4aiKGBAYuK0;) zLa(_`T{Z}**o6u?^~I}#nf{K)u0~ihq}n*42a$FVB`{Ms)aE&*S#@s=)!r^@=D3|- zVstpZJroz51Mym(&+c8mc;~8V@VIahLhtI2>l#@mKAuHrN?4=2u zZla@oB7pp7?jg`=e7@+d5E(sC^tRnumr?#2_@$VsVB4~gc*=ZcReBw3avOzffC7cu z{jL(LpJrF+>$ZEm3+%zIc-4j#9el{4Sdv(GBku7irHG@qkn^>iw!;Mp)YhsTt?Ikd zXV!EHn~GQkrK~K4PqbPx0H0M>3rQ4i5w^bVz8Hr|o7v{K!>f;Pn|p24@Gg-*&c#bY zO!mt--Rp%tt0$3f^rDar%{AX8eErT|Dt~3~J9T!R=euc|$PU^mMhUTLZo3tt^aJ%| zJ-wY=nu$EZx%}*t=qZ{uICazc2H27rcDl4s{A{FaYu6Cpt~?+_?XDQ3Ht{>)&#fL& z&}*#+-r`>13lDrbI~mylZH%0)?CpRo4o>zCW=_slW&h{xqb>}&KblpN9{s1?S{5!O|(Tvv)japuvQgd(RU-iWa> zOWj@miM_S52Y2?Y$%Q>S4`GKs$g9vlp6JIh0{}o9%1HhE@SnFI=dG!cvk}nV#mU4B z$ol8AhwL45xr6U02VX>g-DzTP>tOFLphhA(5ZpM6hKAoYr%v@mi^0I;RNZ)fW!P#+LX ze2j`>ofOTEbhit+BHz#yfgrPo_9}dd4Rx)ECB1&C@4ixck;sz#JV&%ZBKT>rEHhTi=1C-0nkNb~8E{RxPT1<>_#@(IT^MjhWasBQP!)qn&p}ubw z+s@!Xes^+pyx85`(Vxw;Q9L0w^Kx1?@MAtt@0ZRXQr2Q3bXlsjo?QQSb{Ri&fG!&$ zs0C|}n+to_+kRq3^KR3S3){Q+rEQd#t^=q(m$oj)CZV~McCOBj+yaqJPlW#U5grr+ zJHk>sV{GS}1R^8D5_13cHe-p(#*Mlc-Ps7AjRH`h?4ZMkc`I?S;xqw7a8_dD$X16$ zcGIhI&p)eDegf%2))Cu>Z&<>p?p^r$MX5u{mPi&`qBIc@DUpa6(cs5Y5Z?{ZNKkAt z(uVr^tXSUGa)@db8}bOJP9E9YnzG{yoKLb}wQYF61!YMpcD2lpPW3D?b1~kZwqY);EI&JYq!i^A-rELlzwhBYQYnwx-VTehT%dbqMP1=|5Lv}GT&}Vk+f$H91 zAQIvvz$dU%)TU%6t!Ss9tFXe(*E*t6u(mH_IHS?du&deQCctm+5e@WbFgeX3o^rju z$@0APUlnBVvq0SIXrF{=nSWluGsJ5qA#%Mgx@Lny-;wWkRL6R46(KBX>cx3OBB((a zpGQlct5#SY?~#Yt4@EdNfRvLHL^kMaIz#|U(1k}4&HJ)u-(4{e?7GRrOiR8a3@GgD z%RrXGLNnY6q^U>J8x^p8-JK0CPZyaQ6esO!L^D-V=IeqfU0U$iI~3#n2oOfd@l*AI zM2H^>KDuCST1Fn?P(Vh7ki6mPyp$0)RxF7Z>h_$E4wB8&$OW16$XMI4b_ws$qYq}a z`r&9AR5)69CkNz0g_bcYb4m-k#FgrEer(U=S&TP|ogOSpra4#UPJO?h-CCDj*Z%R^ zz>An+*>Qj}OF7Lk{7qMk3U|ou7`Y1xVR`fFDT6v^$ozzBTx=88I9_5cDYfe-@?n|5 z;RE*|7#&B`^<@$eTY6gdJ+WCcQM)<2g9Fx#ZE#IhbJ}y`Sxw&_)EHLO=&nHfD%aCD zCOitBS%gK_b|Tm&QloCXHC;{bW|ElDc47sOuqL+9bCimy2~bBySbRNB_l{msG#Jqu zlvYTv1vuR7eml9_I4hMU=^`fq`N2}H@ey}i9<5t$9GCZTBv{PapX76TA`HG`k&Qjw z=o!wy?cI9K4L5alK$R#Zd;c2m&Wuflt&3ge)J5_j%{#h!iTrg9I>szf7ceU5ThCIxMT%FYRp*hTebyRy8^YVosGQXHj@>S(gyOzqPrPL>n_S*=Z*^orz`kUX z{Y17{DJ8HgrzDH)p9>E`rME|bYKg;AWapJK+D*xLwA%buFkXlzs?)nDRVJikynmJI z)3qq0AU=%KcwCH=lds?`^z|_<`I6^tmLvh6>2bBYu(wy;ZUjY09NTl$`Ey0*kv*w^ znwSZEfEX68au=GPkXp0|@(JM{@NF_hZG@ z>78t8JNg=esR$G})V|F>S zrS7K88AI}lBvkvUpGjEKRj=`8YP$sVA9aHz(baVll+We}Ax_QguU|CP#%aN5jhe%^(jF=%z8B6t*d; z^+H80--yX(%3Lur365SmJF$kYtoWiBCRj6FLgm7Ng z^uU8~U0v0Vbe?;E7g% zm2>Hr;(|MJJFo^>Dv2r$ZIGiyVVDp zjPb6OIg1B*W#}jtTl#*sf{43f*XGz5?`cHA9`O4{Off3D5-rpkx%8FfpPKZCmPM`u zDryG@5EC3sB(OEHw{teL`x!p*Xj!{1He|6&L6{FM`L1}-A8Q5?#-aK+tZQNzL`=iK zUL>B1aO)0zB2e(VS;D+C#2MgELA$gA@P2*gPB65!X@mBa)759Fv=1@LoM5O#J9=4z zsqxhdJu7p~nn9Oi;%5n%l;M*4VPn16V)QpV13=O5OsBW?RZ!b2r7#Vp@QS_rd9Cym zYKxFnfF+j!VwENcJ8}DR8YxmuWMr()mkzMQfa!-zOg|GfO_fYhNZUDVY?uq3rJ#L- zw4MXBe;joIFD!np_XuKOQDcY->@3*PAAN5h@O@NJ};H2h^fvupMX;re1Ci#M@MA3TtjoOypFFZsnAdcI1^X7omAoIbwBz<2$ zIaL?(x!G`-T|rucKZg1fpkS^=5nR7UQ<}YLoL8n4eS)&S)(g=DN2=$?t@B36In~=Q zq_hK$y^U2PwuX){bw9)Kz<$*wFcbxDB^a*HOQA5)npK&$ib$zDB14cKDP&xU-^l>Y z;;vyapT2z$*A*r7LSDLGUdr5&P`wIP=B^fz@8L)`^A)M{{R#etGN#I@_U%U8-gCPc zlPXn(rQqdbEVEAKS{z-)(o?>Lg){@rV#K|9QE5C`9c2;RONzaQ3*oPl_lHSmMVS^r zIZf#K49qgv)EQJZlT+poiP_iqoWqJ~&tmRdxUo2tRRVK7I_iSpo^ZI1(8(@g@evBO zEb?3KZ*g_KL&~@#P@nEZehC^+6u)+Q%87nmYsa&5Q~%5~g?(X&u5V>IKjb**AD z;4)8^OKOkj7euX=yw1yTTwe3AAkr)!ZddmCn;G&{FUDMOHbC+-CF!8P;YmkH!Dl-T zV0WB3um(gNa>1&G@8o!ss13o6q2l^9imSmht_m^@0U{u9$%t^DHdjEo=t;Y3r8QtDv4(%D(ih#g_V$p}fD_flb z;ECIA$ndZ;asrG2-P%xVROAVIxUOYN^fbl1C2X_!Vef5mxxt7%xiwzRJ zTr}E=18*&>#a~FV=dw$tQ6e%k5;et3C4<*tbs?gz20V*C|IQbO&XLuIunLy5YLD8q z1kPj$iAm#?yjE*lukiz8X+pj@Ts@l`sa8~WEgWAXbQOPVyqkiZ$hWw%2Ufl{9eOk9+T3!*B84&>zJv5$IsQt7+k1&_)CjbgDtu3 z1@E;yNB{u!KYI>nVrgdkQ!XzU@38A+Lxu(2=C`~^}TxPjgDKEc2tZG^Q)2W$=;;3N;bY+jK|aXZKT4 zw-CIXSk~^r)&lya#bEc$N{}*%2up*Mn8rZ}Wog3Qe9cm;rMhY76%2t8G-Fi&b9@ioYwv6!DUKX)u3(9*pCoa4u32 z&g*=!KXbBo|CgXL^J><65)J?uHu$BT+8BA*yZk&(_tSOa)1G1Xf{z#ci-HUW@`ISF z`gr{~bJ`{I=lgImBKp>W7&yk* zYz%ik?!0a#&~`P1F;Bzbd5(^!fPQq7V-=i9;{K_$&%wt_XP`!J30arU0g4Zqm=B$x zb#u3T%fB5-9?pGX8ftL8tT~4a(lC_2Xuon@Tc@jVzbS)p5W!_+?c&AA>hM(=@5EWa z!LbPBQ|J9J^z!JiO>bAS0_@pH((ejMdYxp z+AWdc?%_z)FGG*SU{)RA6xBp2$92?p4{rG)1p4HUP!V#d5jpWyhsx*MoW>q(&+Xjc zW^^sBRmMBUqX3ZRAV^>w7rR3dSeLFlWhqYxXY)m!`C7ZPm~3}P0psPQ!1Thiws(wU zt0|q5%my9ETzW50;At0-B>L&{1)e>%+_6iWUbJ(H18H)>Y7Yzops>cqw;BiN{GMv~ zywqA(^Xg{TITm-+RiXU7uO3EGrWBt8_15g>>w)bOv%0u9}3nqqH6b(b%+(+OORO-gifNHs0; zi*AO(Ll-Z1LSMNZAFNygT@d1li+jDTC+nK-c|xa)+-ER!ON8U%10|$nL69^r?)Q@| zL(Ty4fm<)7J-H||jFQM(^x^KKD;k?@zg`{nz@{AaGg}W$!6(+gs#|=?F{G!mw^8Oe zbor`;-7+?3q|A*~3KK~~KdzeU3W+S#Dr%AhsD*Xr{mkK(6g)fdLK3~MMgk5eI(Wad z!bBB|qZ+h2)A$gtIxM=0{vzVjuq|%GjZb-@MssukUu{g%PI7a+ta^N`jh{GHttll= zZ81_OzSd!Kp;>dhah0Ay>~mK|df>&2O{Ng!lZT$Py$)(d$1=ERsrO$-qgO zlo9ks*?KKI75h$I2~u#h(WcCduZUrg;Y=Kcbr<@LYy;Qfp8I|Ap>@^YSlX}_zKU~= zSxId^(NhSX74$A7*`_$6@tGLE3}{z_Z5Ke_(+CYxW_z!nCyiRPc|=9yh{4`((6w?z zG7G)ge4y0H&FpP|oiBCr>Lhi9BIs5~ky~E1ll%CEln8@NUKDgC?C5z2nV>(k{jLs+ z0#$m4Se!=u)?Cm=a5S~O_Q`{Yb6H!#cAF?{E34um3!`a&~V@huSwWX}? zBSxbuT6v_DZMWBojNiZeARrICd*C)bi86d)!Xsz0EsakX!ahjvAVHXTMfe#eTC1-&snsnJoh`6#z!Yv8PKE0S8~ zs`X-TpgDCipRh>w=6nIQ??#STy-y>aH!8BV08S$QGyM5-sw}aPoiqX;J)^W`>WID5 z2UjR)Dr1S(vptyf?TIC2hV`+zMmaCtqI~f<%P84p0((zCO~90$PEq6;@8a?M*`rFs zMMMdd10E@#b7*%(t!xONN~ed;sT+}k*b#cS4RFP#OzOWr-bTl=X(;Svy#2)X41Tui zX^O^zr!;6$?@h1UxhDv^F_ZeMuJHh~7TxIfjIg4HDO|MmH){T^PO5H~nf4*jzLh2( zT>vj$iVV6NOs(^08&E@%JS32Xtt@OGF&hK2mc-EiwHaDcttKlvNpC^g3Y3N7S%ecS%d``UV2>-ga{)V4a!rL z%mo-$45Il3YLsP++4RKumWLlgB86pqc%TVGEz_EVVq(-Y0%cX>N4c18B|g*~tZCk! zD%y5^Z*fl7o|`V3w=apP_ub%NY&MJltT1RejX8)A-OQ{cX`q7SqJI$8hHh4?o7)EHMb74{1!YoC;q zxoren5-a7jn7CcQGe@7Vb4iI!77i2Qsi#Z&(Usdrcbp{4e9CtHd*q%Sa%U($>osfU z5^a3-74vBtKDY+)N?D^b%ul(LHf_IlcYeyek4Kf}2l}E8 zefc)4+-`hU^HunMLE}4=k}L!y8Q_2YGk_Xg^89%D|9t=Fe*%aA@}Ivz0Pq0-H@Sd8 z_YnwuXbPwyld=D|e54ryh`CyssC-QImH}anY?#IacVC2W+?tepP zt)%*i{@ebI{^uQP#f^MaWVAbmF)D zMfAUBQoo7N!AaBumwJyURFBa|;lFzSNa=5j5JCBqO> z?{yTF`HSSYeN6V>GpOHWucCs{eaEI@U+vk>964@^Egi)F1(hXDE!DF**gTbgJ#g>6 z*R4Qvj=I`?WD->0hJOQKcWU4RD$c3#58|$A@ip|d&Y0dqR8<9dglcZ1N*qWC2oMYe z#D6#IFE3fTnf{L@*FZhwI0HxiNK?1sWs8dHcBz(}ZMvyruOJF#EP=rg+`e}y+J>>W zTd{A6KYMnr$>d*e)>luURVL|;QGt^Xg0WhYZ8_stwb4(M8t9}y7}XR*XxmQCW2Jn{)#p@&>@Rcyj^aOw{$W>aeyI5RU8wGb7DFUa*|Bz*h!8(H&|exk)MS&HNDyG<77h?nCh_Sw*>)qYqLr_SPb^&q?dr z_IjW$50r&k-T||eb>s%72nv%P3LYi|@!vzjrrz@0xyHvBp;1iu%S0dg=y45jDsFvc zE+Hu13pj2TZl`iNO^6#wB9mahfqM3pD&%gb$CIyg{?S*+Pa$CL2y%N0o@aMS#fd5R zv!O^{zUrUw$C{^@xj5qM-h}|#F6PZdnFaQJd_@miS7$Mvd4lq`=G8`0dEcn{qXn5S zMnt=$(cr_ujcv~D$P6k)Jr*P37{^7Xt+#Wv`mh#}tpfIaszY^!`Nt$2GFjpi!gK>! zBWgI_H7_}bSG~(84&Q?|y7AXrF#~XYlYQc&RDqX?uqV5#0yoKrc^%(Ycw~~Xk#pFw zLE^|<&;xh7(hqrg0F4~~5FW=<`4Dq$-}k-7rDeBp&x(`lua|Z`sfG2V{C|H)v7XMb zFm*Gvu(Se#fX`XvS^t9!L%St5obaQcjA4fkv^WEFQ6sJD+H`iN`{$}fTauYfAKol; zB|lt}@OyMFmQ+r-$@wLrfBlxFBjZRaS@1CIUp+(upp7M+Fj_8#;o=qlJ{h!nCloI{ zozyV>VzgdX^kw52zMNC42eiONC!aDF^6NU%(mq(5@qw2-9?3STp^W(OZ-YqXP!V-T z`G=EC%U*|2Q!9xNH%Q2SG{K|ws#S3Bf#0C&FN)iNq_!YcMb7{Rn&Z;&Pp6H})5k4h z(Va{~Q3ccs;xUG|26#oE(sj>NY6`cSm!m+M4aNT~Ytw2$vgFe+-?}@QRJ+u8GlF8Q z!(HG*n7t<^HEP~tx)(gEb3MKSVDictqge(di|FTZBiZN))ZSZ=zBfb!ql!(QS$~0Z z@whP+A5ce_;2KMFIhK?X(XAhn-U^Eg*Kxdz<=$}`a|$IK@+4kB=ER9CimKZ@uzGjp zTnlQczHNSCg@8(;P&;~ha&{0Gi9U;pOVr6tvdpeRw|9rFkfm30orYDCoG!_K_&$c1 zZoN~0T??1a84xsgdqmjWZkwxsJ?g42jsQfu4+i$dGPsViU@B;RzK-0D*sYQZf@MCY zKT9m>$q-MAdSEleqeN)y6_S*eAxJ`!JP3Z<-puS!dG<0%p1J*I5^O7OV41%Ccr8-vr zEHBioX}&(7p?2N@z~!+9txC7O>JCKSTJHeVxl{rwny(Eok54KHZG$JF%p-!;vRQ1G zj*z)3F=;NBLI(;~t!x^0qw!w&21loFTtd9iE$i3jo5Zn&oP;u~fpm_OUZY?;d;6x^ zs430x%&DY-cu3K-;S9Qn%J`)s+~l@mt0|B~BbhE;K_pKtelyu#R3c6nOwPrM;z5hW z(m9T+RL|va!)nzWkOF8tk8bX*1cV>$`cQEJrMWWqrPU zmG0MYy^H?QG>E=ythtOdgU64H$2zA3eMRO?Lc}W7MMaz!P(C!Knzm-Qy8NCZy36o+gLjMsu;yn z-Jl*e6u9-LUDHoP+xmVr$HA6~8YXc{K= z%X}YgT1Z10?yoP+=PW&{@v)AJ7>~a|L27Klgx2&9E8;A)UDO{*qqIA8#Cp?%pE(pt zgFuH!43;7k%6G?(^s=_zLtL<2DL62+@XJI=i-*#>xR-MEmPX>M*%O;Bgk@k`#VQ>2 z?#S&9yzOVWQ`t@sOuf_j9;n&9hn3Kw&-^Ix8n;7bKhy}v)#hNN=IfmAQ}TgF(1a_$ z{q&?`A=E!vf#_dWaCCPuw{&GScXV)abO%{5Tev=FCHJ^)q^EX7@+jc7*PKI*+1=az zG(cqa3irf=zg_;>%t#l?XgeY!+F6usX?>N4Kz@?OY`hQG2`502pwJiMbGFy=;-L=+ z8kv8Sgm9LLL<8^Y3v6emllu$ol-Z5Y3^QKE(5o`!T?cj-ksl0)s9YFYL4j`zd?24S z2;V>9_I|p*>ZkSJ(<$Cx8n`;!|L@I@>FPTY4dMo@89S2~(GVmkFe2WN>qFt_+Ae=8 zx2>?bl|=Ql9~-@A!&JhOwXOHqh;2S_Mvo3nVrzAi5G>o z+0HG-!&AhQ-6!2si{EVo{B>+TbJrv{m6b9i8yz=nd+5E#<;5LoNpB*z0_VZgB6cCu zQfgRI;E^w6jSPdeQs`a`!fVgnnJgAEcw4<@*kj7s(X0F*EEc@CnXRN#;npa2c2+DH z$bNw3K5xsc(nI5au&k-4WuV_3E3zW629fUO=j5h&GWEVV!)rv%QmBU&o>t`X?guNR zAcy}e97B?o@eZ_7gC}K8hbH$CW#LM}Uu#c%=R3p*0MF(?1s z&j`JR-4wjy6dDwGFIwC?ePBAe^!WV&{++Q)r_Awq;jS19VOT+95;N||eNro9FrXw* zV#$9Z4`Z9^jAS6xx-ow2J13G6IW!D&DU2XZB>e{-e{0gRHG>73a2<8k0u@>K8l@Q3 z3A$3rycop%{9wfQRHM&vfc^gBJ9SZ`*e0gr8FY-S0J5ur_BPeN?C>Bnxe0090=b4MLRLplIy0QXrpGaai`LGyJoU; z&67^1z6fx)m0XZ<%J|SgtHjM1YoSyYvhS_A1@LE#PvHv2DXx`JKZ|W8q9Ln8&L{ps z4YYx=h)|g#b!& z98}%i-fdFXjZZ8QRVNw_37@?|RHfW$S(1g7?h>)@rjtr|f144ggTX+ebW+j*{+v4` z6>4ew;|ZU7`)>YQQ|ZPn9PEgV*fMs=6`O=lVd4AKe*FEXdK$iq${gyR;x`3vW<&ep zUbN_%vO9YW5HT%eP!U`nLPTsV!;I0|!*-zN8KMv`_qpqD*#7`U8Kti21oWdNFrzEq zpv zym6rJH0IW{yc}l&wQ)9feg1WC!TZt!CDbkGksv1W&{>1)=h=)^apLoD3N zGklc1Y>(w-3z&cP2(QfVs;}DQoopWRp*j82^+A)}F-=xVPs@sBD(w76c z|5cpSOI%#2c#MFr!@Q>>uM@}0$gX$WI_v!6?)2_Q2?3zR(#0whh`Wo?Qa6c`Kj9}V z673PyB!d-ODEmd3nsu6YzsylrELK#ZXsZb_E{VxfH+-CYf%Ik$4NadCty>~5p1)|!i+zguKDRd{So%^Pi1cI&~v$)7hqxqh49Ma z*0JecV?Z*_n2x#H^SW_>5jI*BvZD(`(E^N3F;D$cZ)Y662G4lDnaE^Q`wsIQ($vr= zGsBXGMVDv6hZu%otd!5r>#~K{b0=|=p}!2B)D||RLad%nWZ&tZovn-KWa4_*Zabg^ zy}lwIffh8y$i3zmm36u3Lc*3clt~3G$i2#>9TniZKRk%6yCEjfdi_z-Wf&RxcJ7_% z@=8h*zuC3gEMI?}Y%gHGe2kQc8C?}a0<(Bx63r(GUG#dxK2K>P&VG}`U;}q7u|Kc= z3f*~alEkCu+X3qp)c|k0BeCyeyPaSPLXt0cpTFffrR-;MF*L}1t@hO)l3+NCYHFNE zbdn((+&k)oSi|tXS`Q>VX*~J#aP~vDEzJJyF@9&0<0fEFN$-lZ?U8rswU6*kh9?vX z?71!&ymqx$#=NldHk7QparKI&(L;Z?b^6@g&VxUTrp?eq$(@*QF>W`S<>z3B&%rz% zQUl^o0e53-uib!Ie8}bA&v8fr3Xc+@v;K#VXxJZoAMH-5uSuT!Ag3*}oxZ2hMji1# z^+C^bD|=IKNB3W^(+64lu9$I3sNyDvQTGgwiQk`I zSM5~P7zt+%I>~U99QVkzs?NnY7~{i9>5CJvmN}~RtY>@+Tg69Q&T~VSNG7EF(2dB^ zgI_|A7HgR*$<86KFFmPkdMx$HgI!?G-n7VpoBHfQn!+51m2*Jj^rmMv!(r3a{_FYv z8`~&jHJ*3L`1&Bg+t6`{Gn7LQ)K}`u8G;!=p zK=xLtc36FMHw`X>ra~#YeqO|a(&mpkleI2s7g)xAv=$oPp8{sr!Zwe>GUL`P`NYYt zOj?@n25iD}d{c{WjVA8ys*?#y?Djj4;B(-K*RM;yMiLVNS{*(^jiWFvHT%_nKDHLX zFt+L(--j>3ZD~3>eNWkY@}nf#POx=PkaO+ipeuKwbLf~!#&enAc%>@~vKhG2Y_Qsj z?F9+p(dGIbZJfA*-F`7{`o?MuYNfH|zAO90s(mpF=p*WRO&(0Z=V6!p62Z@ZAX-pt zJtR+yrnWuRvWs@&oMapcifq*2BWZ9hdi_UyeK3fKP)Sny9gqng3ZFfxmHtK<%H zn0KwJKZmtq7q{mzqDS48I`Le;NBFerNFJP97d2Ns;JMNW5UY8W7TcvQv9y*KQN(1j z#=NPKZL6@Fn93HYS_G+MZM`EfsVL?`XKT;ZQdq-d$h}(;Ki9Mj#Xdlju^)S3xf8@8 z#+3A>$-}EBrep8j1lx^$vfnvh#+vFIhls>T?@Pq^6g{<)&62CiDmJhy@0E394+Y0V z9vkAER+JDHILp?1;O$P=@s1_cIUu@*Rgn2}EJq#3mugkC$}RTN>(Pve<;&rSO}CT7 zk=xg;AHIm-zhR*3gl7&%OcD=vu!rVZv6g1T(9J9uJUJHCF!Pn+}KHQl%{Ga3!=HjG^^52 z58D0$-8HKU{8jAJtblh}G6`abSmL8==S8 z@3mg+B!y6!;$`+HLr}DU_z?_P6(EiY32-J-a^Yi+$fb*VpCI?Z@DT24g1vp&3XQnd zaNO}ViE@~6xPmkSCFjv#g-Z!>t?vZ|K`|YoCsr4h=paew)qJ2fdAFeNNWWZUGh6C* z%Jzo~a_?@%H@wW=xtJ^89O-XZlY(oy$Lrxd4Y7xYE+wv~MJT{gLJ(lzK&;-}u#J7{ zVUtQ@Y~iZAqg!J9WR82|p(jUy2Talix>DGbQMNo3hMC`(sxE`!W``s&(l6ZJy%G$2HXT_(+25 zDaTZ&0vS)4;uslg8GZ#{gL`B#yg|LMZ{`N}Ka1drx;qiWOW#l}p9DoGoAvgFIFFEV zdsSQ9CBqUhz1NYLs+L;`j317#b} z?#1SbLkB6JST${wHy!(RVkNH4nL=JE^Lyw)ZV#-Sh#smw_qSc6>la*=(MerGIBDV- zo{$X<{r2lEsY*~k*OO{7>I@;c#Dn0__Q$E2J_!x;D6IC;u^impGs{JevjpK&5JN|} zo2!7+E~Zra6j_$k2p8sIgQ%#DZ%fl@N$jMDz2|3Vilxi?j9x&*vu<1?5^2#-sWT*| zQcCK{Q%to&fJ4NF`4qRP5^L=)~uc<$FU#(5R?@bECErRRzya zK71RZPFB3vADd0;R40m3wiYVIKq^7zBXysV=}5W=y80%U&v{S9k}uE-;}&KnOIn4F z&G``Cl-lr4SyuK0s_7O8_Bm2xEH;sdU{UW_J2*jzMjIbr^_y`_);|#_ZC3-iy=)B+ zIBDA?jM81m=IEGj|Kxe1h4@8ZPv5cxu4tu)H8mPy7{lT2=yx%u?2#7J`f9elVp85kepyTD{e%&j}1lY z@*Yg*Yc?ONnt_Q>mw_9CK4hUtt8ORb@oDQwE(p!c`g(EK;Nv5}>SuUCI0aQt_EPIUk2PQDttAk2ZDq_RzNopD?b^HvxEX8+eRVcCX^^50OQK} zyPb=tV`?Y!ZhK5(R1|Bx^=M{isjesuRKJ(*y_@9uCUsnTXWC}mq`>qoN7Xwe>~f8g z2#r{7Y{hr$MJ;_u#N(-vjCQ$qcdEnmI%`$$G3>Jql>N2kpQl|s|2TSo z?vY&GyzMQ2S)gBM&2fnbBjCu`w01mooA1z|*QKs>Kdb z!?~dP4C|6o2HgA|Il!|$-gC`gXmQCC9XEF+bV?DN#uO4cDq6&0UJyAvW=ytYcM7_+ ztr!dLMVUh)Nt#OY!45~VEkj{JvBd~aJV|8ZJl0ftDYN zw4#jW*t;jjvr}Bl{0W~o1t}+1K30thh@xlj7on8_{s=QN;0f?K8oGC8gP+L%qWgfw zghJb}2flIMZQ(Mp{%)+v^ zNff?B95anuN;yqml{gM&7&Qf1#4;8>WJ`cvhD#DsRYb{o-$jP8d~Nz_B=S>Fj!8|S zxXRV3SE6bHWcOaNZyWu?#~#0g67*PEhY&!dhK6E7O-@_zSZY%jBTH=$f(sc@R!<^N zFa@k)RntuHp%86ns0tdNW{b$eq=Q$(<}hGV6Y<^nbq#a)%eMZXVu$Hgh!Kn#tGM!; z3zThhWw%0PBfzLr5jD68jXU&?Qb?o%gzBPg(ZuR37u2;d5sx#ji@5xL~J>S$< z%$1Q|yYG&xEjb85X5d22T;`S)b{+R9=TU8ySP&RQ$Ak9QK-K1En&$LkG!A|vyF02> z*8WCDQcIr?cC2)+qUu;%YB$G8tVP^Px&k@lT5cyhX0YJBL$X0f`k_wzXp_t=mLWD`v%`Xe&iD0;a6ZEWHrF!cqdhd3O`f$b9*oCblGtf2z5uiGL750hPJi}!KVq; ziy|x{&)|0aGlzq=;Zl({b}BhgCAVB29B1`O&B24jgD{saewdE`&PEXa*^`UNJgze81XuM?tlQBnSUe)15{I5 z#`bc{mJ31|PMf9pIuLGFz{lRG(fj^eyUY7e1jj#?;X>z*jyeaoJ(sUsLAkBB>6jhs z?Jc?LDmJcl28II8)!Nw3o&KC(b^zP)`zCaUn$XN;S2|Q@iI2a~Mh_y5`JSg~f96wy z`|nfY7f+Gz=3)wRwf}|NyRtaBI67HAq4k!oN~7I~uh}rdHhjzRk3sOHOg&I|92?97 zsMJK=hyDd2&B3|XaHH&-bRCo&a^q+;!>8-}J}p%RNGK$T=REYE_Za;8;YKmHc<=Zp9=?C_g15dU4!ZxG^d8Gjb*|9K4lC8glWF27&k|K|I%z&)4p-_%3+ z?}hzu&OZa>->*3EWR2hD@Nd39AKT~f`AuD9|23FY6=30>Pegh8tUn=7X5`Pm{vSw* B{9*tA diff --git a/fineract-provider/src/main/pentahoReports/Loans Pending Approval(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Pending Approval(Pentaho).prpt index b7a13299e7eda2b2fdd1ac8243ecd351b555e7d7..599871846b3b0d8ce9d869502927fd6ad0b74707 100644 GIT binary patch literal 9348 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 NGB5xD70Hjg{{xfe8A|{F literal 8800 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 literal 9061 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 k{;izcXtaA_~E>JU-Hg> z@2OcmYtNcpwY$2ys(OE)qAV0NBH%?3eZGl9DU4gvK3~5K_~&6`VFPq_w+9;9+gn>0 z8#-Iq*)o5$HDR&`+BzGW+c7x;?d=?$Eo{x0jI9lwoGgqLpUq)CtHS?f?%Bfs3ik8W zdkIw$MrnCTW*b9W3sazzGn1Q*b$x=YEr=8?u^bz$`jR4llY5EwvwHq{znla)D~~(b7~V- zlE{iHbYEL3HKY{i!+A7u6Y`n-sLjvi=+eWp9<`rdwN&UNDhL{^&QqQiN6f5N97k2(lu(D90xK$F6y+tc&|uc>x<~l&{&PIXO+BVeHe}W8)%tb-IAj>9y&rjljbQX+a9%XkeU?|Y60gC z2$^}>C9ka-ag>1AlZ(>*Sj=6l%*kBYuP|m#Orw=_5b~JRLYLdQa3jrk+6;q|2XQpP zjNf7WAp-``BWS~GAVfm}hQgY&iMmzko&ys>G3zF;i{f3_O!8=DF)wewWyXt%fk){p zHL^2bgJr2#kap2xuE@h-^2#ew(Pkm|SN32_!+}izDPfxe$Tx_`=~xsj(~{{y1}Tl$ z!{1ZD_`%hE{iA-JOS2%#r}1kURgmBW^UN1g85ho;d7-ebJ4kU*+ngRk++*~drfb;9 zdt98RO4s#eiT4}M-{kwO-9UXC*SU}5V8R+0n56r+4^EL$`me~wy~QGrwY52V*yT2+ z84EFGCT&j}1zX7-&p*Ws#gm9}-9o+uOCCJ3=K35gjeiUl(sK?N+u1rlXU|K#Bw|G5 zds&dhZv=YBy)ov?kqF!ho(@-YBA^uM%b>?EZrR{l)tMHTFPSnO0uaaHSUPVB6;`vj37n# zojwID_lldejR0uz%x2$jtqX7U8@dm+XM#s;xT3{P9L(9y^4q(FLzSiyrjaOlE*s)bK9V)3);4C z51(3d>@EVs4KgVq5sM3?WCLpJ(k6m$rlpg#zD8Z~P?igOHn0>|U&z&B==Sn7Az$iR z4m25!N@tE(GGdu@S>T9n!v)FFnK}f(wct>WN5BrHdiVu^r0 zlPP2%R--iJqQWN-O^jw&Gys^yoLWTx#=G7!%=>!+wk-C;vi7dOZV}%1mP@lLF4~ z(Mt-4f?4d3p_R<;F$63hbsS8efAtbfBh5S@2#_Y(rRPB4E@Ar7BF-R@HH1F)A*(?h z7N@S$Hz$SzcSf~)aUXYRNEFi0H953rH{U?nf0yHw{^*E~TisLTU4go`_g>Un(K@y# z6WeA^h@k=Jw}U>b4Z#W3UFx8qXGyd%6sL_f4~v6M4+Pu!uG&n-2plc zOl3w_Hby_dG71WjaIHrtWV0C=xal6I6KpHFSCx054cb%m}IUq*0 z_w}pBOWgeM;gR~jDNrfF_bah$qD1S4CY}yk>^=GC$;te#j+IvB^H`jXv$>58|9fuY zm=*rl@tjXL%r_0Vkr~B|a1&H%&Lf5oRVHT*XS8k@?SXubN?#~zQ7C1SCKN0j#T~SN zY|nl}aQ~9n6~m9t)JBgzVnoqY%Ftv#)~qwZn+DQCCnmZ+saD`Aq*zw!o0+PRX`nOG zDX(kkPY;1Ckl^O_?j$+-;dexkjbuNhcMy{L$mg!HU>CX~E!j@w-Jj}$(~+udn6Hqk zL&K_&N+KW#f|&}1CaKbIKmMF*jL`^^*5CZ-Ysipa1|qrhm%&SO3a; zCu4J<&0jsLV4};mn*|wm^*+B%EYXv&iEOIdMuCO66Gfk}*x?PB)Xj6E#@w8Hsubwk z;L|Ly+^wn?*DJL@+%TVv_`SEbD2Ki1q|(DICUh+J8X2*^2^~t+Jt&_&&vHR$DEW=m zu^qaW_t+pz@^+HJrl1qq!|rWaUB36dbPo!fpZJm

T}yY?_XwdpWEy$!~0Q#c6J$8s`18mioy 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 f{ZFm`75{%H2 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 diff --git a/fineract-provider/src/main/pentahoReports/Portfolio at Risk(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Portfolio at Risk(Pentaho).prpt index 7e68f7ef5abb2cf03342bf3c1605169004d0c64d..cc3a0b4a89670a2b5d3b698d8d3cb777a5fba025 100644 GIT binary patch literal 9025 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 X^3sqGrRL{91tLK5p`5MY{rvTR5lMd+ literal 8469 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 literal 8415 zcmaKR1yq!8(>~oGB_iD=El3E`jexYIEG)1{H!R)V(jnckba%IO2-1j@bi;q~``%Aq z|L^aeJ@=mHoZXq{nR}j@x#zl+@a#N255r;$WRGt4j-zD^2;35!vD!r z=+#>ZRS^~$1xYpw151!G(9WLK*}}XgPR_E60z2S>&%bB6eo2i%!BJ2I?1dw5rb>wN zQv7H?^hJ&ObRd4=a)-eEp%nXGC9cq(k|kYM@c<$th>ic7ETz2;aS(JD6FP3?N5qtK73;u`dSJh63r0F zdxvR;DP>RQn)EUP%@%9fhwGusKh;v+n{mg7?-|*L^E5Ex7iiPW5b+6Xkp6G4B#6Q;GBWa%${r2QrYgpF-rji^oN*T9a2|g?g zj3ojL%s+4IuP6cS4gO~*b*(xn@B0=9po5>%&sIplP6X}M%~q@nkiTeE@f5gTWGDtKQY>EG4M<5 zRo7g^WJL5v%j(AoVU!7h6%B-ei0A~SDObdR8IHpuCd^Z}V%1(5Wit-honAI3M~jJQ zj1re8d`>4>l%fCjVvd^RB9ew6toDr#1s1Hpw;u$>;lO$rDPfBoI4Y)tRD2pvL}~>< zMdu=t@y76eSf}Q?iiz;b-E0^4!}z(ZYS)_ywwVM9SqJX!9igBv*Kp!pEpvLP(f8qV zT8B7`GS3L=pU{J>lmZRZHMk7d*$dwD6bMb7Cz}gIajucUN}!8q#G~zH{_D7d&n@4VUP;B_ zp{H};S&E`_!S~*7OWuF}tf`Xj?(@p(Sk}i-9bDO^pI>-`^yoN+_DX&`)Gb`7^Z)#k z;zIvnWMFS#1T+R&f*z~LqyPKw7ZujovE2_fG(8kW{j0SyUrB>SLJ_nOhLG#ebI#W0 zIvl;wjt*ZdELGz(Xko`q94jr@3)s22xp5YPZ+LR4G(MzpH7YjkV9|bVz)^m3b9y@_ za{TFFJ1zY~IxQSpVQ!zaPj>b0Wc0>iV>bx7|0b7_SvYpOMaC0x2r0K~c~&@2){DE>7N%)3DEZ zdPX>yT!Zi^K^LOR(e1Fs(wU8*Ql)jZ5mLyH5Cr?}Mc;w)Ds$Ybe0bOixT)#2ex)+O zWouz{w}HJ6G7d*1Dsm0-#OQI`eB#^sku6S3=FSZHaUw*na?&}ynSf?CgdU{NruX@o z-l-X6r5FR!Xt2p!h$>iQpT7gqiQX5b3WJ<4Y*#f6Uuj@&N4F|w`lGSzENC9tvT)r) zAOPOrTX!@L1W_qm<|;QXj|QrVa5b?Cq~ni+E6E^HnQe0EwG?1-B!hu$(r!+-T6{1( z;#VG06%}vXKtyL9Pad_Qs$)J*5rG75zbH^9IwAeng2wJWT#LeidA%dIlWK1CiqDAm z=mHZunkuMvr5XW4qHqQdiGkhUb3Q102N5~Tf)D+}r59}pxnF(&C}f|76Q zjzhrV-J&gY5z}H+;vJ+3dv3xuU-%Fle6e^~Bn5)n8Sd5(crQ;!3$>f)F4GTUrHdnl3W~ z1d%|d1747`iOCM?Ja8#%U)RVj1tT#MPVM|o!p=n!jkkP9WF{MtiG3M2d)TEVqr>y2 zhv`;vBkFbht;P>e)s7w9s1|LO2Y&yjEsDFodiZvx`$OfMv*2H)R~4z~W)SLQHr#*P z1>%40f|Y}ixW+Gj=j$UfYKhFlkjHWq%T{v*Hgh%IFBPE() zCRHK0oJMR-v37Wd_i1L;HyOYq?|WH@zHPx_E40USfXRie=H;1?4$AH}kOLi+7KB-Qb~2 zfg2O$1q1KpXixTVaR5glF=+WiNBb=u?z5(`)pyd&1`qI7 zKbUOlGzgJ->JW}%venptRPr0MykYC^2&}u}Ko-#N`&{3m$?vZ#r+zpXaJF=YaE7@1uId_%% z3j3o&#?RY4i4qC7hmYTlD`6L{hcNOCUiqj^+<~6H5XbngY$89gu5VJSoq*zYwA=KM zDulW~+sh>hsPpqV&YiNOlX~?s%U;vh>^+25i-WI~*L6Esv+({US=WfHX1gZ_37hNy z335K=w!iw!^N0Gi_BIqb^{y;sy%gH{nlcJQG^QaD20xT!?-IhE12pv|c1fC0>EzYD^el2?A*;_!-~sNS?@U z#z=Af_@olgXEB2lZa&ClXbrfWln{727bOpLGejy&MAMGTYG5IxHxC58K(lIoUUT5i zJLonan;XFR;{9aNN+8)8ucJOrMGRfEDC#V|Sozr!MMEElpR0AuhZB{+3CIWKTQ)+b zGi9UJhDqadC8IFSGLp-l5IS+}Q=jJ{^a^zMh`_V_B7|p^^1i|<#v9pa(y=fr(jpy8 zvfDYxX;F!);Ua!bPoMZNkg4}qVfS7`qViGKL^NsI2vL!-)8rGr_T-rzedFsXa^dCylVw!=TI15r#RKM4jmaG0 zgPSmhdK)Tn2i|BS_IZ_~!lh3ezSPH&SIy{LQW$)pGf zMvW~1?(71Pr!z_4V3ZemHCh6M%5s`Hx%_KC1`m@)x0vRjQ=EMWoiJamP$0A5(1d75 zm<#y93j{pDtA1ni;N*C>g|-4KAtudk{@l)8d*sN{OQA1II^(J^)c8r}crwk-#Tfl$hUN0PPzeIhuu<_@AZ!?g zayh-mwp3s2`3|-#=*hz_W{{N?4BJXz2gQmzMS@cLs`x;R{})93mo1tosYy;ARb0H8 zBtEZAdk+M;CG4)f(C)tw(`e2nQhcQ*Zm_!Q#&_@`0&#RIZX?Xf)ULTmaNCyI;Cr$N z9@1^cuBXs(^K$Unz18~>OSbW;H-M97TIGQaQE>zA?DYk6Iqg&_S-x1-)-JD>(43F zm{06=krXZZ>CorTCOjJ{fK9t~b9rSUcvBQO1X_BbsF2yZJidO(mz;hZ(SNjgdij0p zqE}rt!+&8^+Abc+(AcN!IgaWEcQH){noR1HogRCIF-sXIzVikv{Oelp{wHn*0V*3p z8L7*{_?=1qXWE)$=G1JI-9HoG&xXA(ekRP1+tq!8XQd=^%}?Z}@RXy-o|v*{JM7fX~GW`jbDu3<-yTb(EBK~^i6Kv`Ew05Z_bBKIln8vX-TX6JT=9Y*h|3P z+lrT6R(v)09de50)FO5*m8QELk!)?~pnT!|<-nb*6`4E2A4}kv;I1uZPp_emb9tm; z=b~2v+}g|XmdlECD)^!;yJ`4#PvyY-Fp=9oZ_?xp(P1{CvaIRG*+-5^!e3V| z;yj>*nh~5*EZKg2L%N4Q{L+nCr4cqBG}|{S&9Kf=tbcE_bSepMk?M&Nh`{puX})%{ zq)(iDZg6Uo=Yt~Z3K7YD_3DISfQqm>hZtCIh-3LvAi=tc~uqUs&@6QiQ?SO3!F5Gk3v^fY$(Bva^i@Z>B}8F0iog{NSyKRHUO4`j1a_v{oEw)DcLT z)X_O|k-`qy@KHLBxCkmG!^ezR#HF#Kb9=X&+{Xvqo7q_?Vr%`X#Eb@3lX8%6@vNPL zD#S(Uo~U^9A|mgw#2RSN(}QNLQ4!JsK0Sk!-^m7^BOUbbo8Zx(@M23iE8u){zaJDH z(_mL)Di>mp@Z{u6Z;s>;&)5jbmAhqi4!hsGpz-w7l<7D;3+Ze(f1d0wSGBmC`Nfu- zOH0x?^V^G0*SRr5r{NRradT}9XU)uSSM=+%i#r$|VliI|Q_UZmIU9t@#sjqnh01V5 zGF9`a)#Y}~DT8u8rHTX3M_vpOeXJX9+KDN#W#%w*tZXf?4B9&2U<)&Nx8q%U; zG)dsFPSw{>iJRH@NxgCI<1R?E6rxvJY~B&&i%hQtL#xd;9RepD;A`YK1qlz%!hn5CvICIX~QnKud_0H7?TnwMeXe0?SlO5xs8JB_Yf zE$xbisYRM_9(~_jV&c=k`SQ6Q$r3%Hl&7OHAr6D??T~o@{Kj1mEG9uAM=~bFfNfnI z(8{6P%ot1#mH{#il0@xgZICy)^ovRsN1n#MasTFd!wac#Do3slp>H`SCK=G_Go1U{ zmrz@g*(KQxAfpKMVx&5gdLjpp0e&Q8(ZVFUjM6U+#Ef zhwY}(t@1qw{lS90zBzSd&m??K%4p*-(N5e~?c-6uf)5kLwC{?h*Hk(VI2}n=GPpP- zb)i;#rf^-lf@HH56RuEfbr~{ayYm7rgTvZE=b(LaQtjmDiwo#!4wOa((jd!>xTl)mPyNEyX zQTcSaq$R*+cC_bl^8(4RP*d&_`)$tmFXpFiJ?M|A-extsp_Claag+q&k zJD3q~DqVnJ$-2Kan|i2}->ZAiNY^c+doc?BID25&rI67n!*ls=O}vF=jI2vCI53a- z5RjRCIt|a9VA7Q4eOB3BQ*>7p{1LoxXk@sAKAsipQNlIQ*=TscXB|r$Pdb12+Op_t z>JSG<0iy98s2F|=(q15SV~75-i*;ClgBw&iJ>Q))sw`DMYm5(OlThz(h8aP3+wpy3)Q5b+LOQ*a(x=O=1h5CL8}CO zFSqoiHjRlWP=!x|TEiH;B=#;Q+#V@^vB1}ulxXr=sxf6wn$Kj>=E`w#@CloX&ISkSk~1U{WnQ28wxh_ z!B5;bF2+G21M|)5!&MUembKQCZftSUoG}_odFAd4Y#K)U=Xo2r<&AhTxplH>3Z4DN zcdDn+-we594ILZ$ir(P?McCZL)S~(0nCS~=%ROU=+b2R!>7=s9Ag~-J&NjK`O-iLo z;#%24c`0n5V^mAM((k5K0c5!uZ=I|xn^?IP?|57CueYWj9w*^JM}62LBp4VP?f=%{ zFrXdI4ru>KJNz2n)u1?PH#>&Jg`h;7AjclI>`Pp9^^$RGuc+i#${(d1Ieivm;Yhnj z&+C?N?oT15TRvGyplYXs8KRtSl{}Z~^6mT-Fc{5OqogKd>eOlC3u{e0GE7HjC2|?X zbbWmbY8)OnLJw9Tg5+FZD?fmV%Epl(h!GKZiVlBCoV zlIH2oBWTPv8yVkgNh8mop7iuZY3VbYl1xbpM)o3+_j&-o#-OL=?Nb7Xc)m=2KD?j4 z5=QsRWOJfI0z>X($gC)@kce-T<_LhqJQA1}lAAMT(OmJ&tZiLP7PRC(o5!!2?e+t2 zEwJ@>d0P;gGf`T*&ucQYnE_B zKL_=om}T{oz6H1d+=A+b5iI%b`4bCK8;Z=Vllkju&gI}si!!q!gwy<6i%^3(R}asq z7Y5=~t8w`W{*sM4=6Aejo)>+`Mr+6DUtq3r9#%92s6_Fpp1m(i9~^hwz&KbhCjIriMbh+mwnXkC_^m+RnL%)&G?dXo+utIbJMlCh@S zl&9H_JooRTEfGJtai-KAE@?)jKVd)ypXR>P*3fw+EcR;dJHDtBZW{ha3RusUdS0GW zoHmBts~%$Zgq*Tx_!_N~^Wj%>Z%TN`8oa6VI)*XpoECTE8SD(c_tMAsQZU?AG0P&!FdU``q z0pfLz(#)#Sp1D?d>$JWy*(ISs07&*~SQ62RRxM~Jm6K31#9pv=$CQ2aF#%Io~|dHfkP zU+rxTEbYvH(WiE-*0xsGKqzSnw0k?;f$GnW?Y9apBK&EIOvc;^N5Hwt(u+w$+;QNZ zhALT)K@KcaBIbu zkk_kyA9U!Bv5N5cgrT{8A9bPk2Sb;V94s6f%wzTV&s6WPAO7#_U&QaD7Cy{xM)yxr z@{!T~EsD^~|H$wDZQ@U^?2*0vEqTzw2j!c8fz*F%{Yf-E@@T(B85)8=Shc?u|3t|j zd8pqa2PNzNe^%;m{Xg;LM=brf^g(B_NB!T(`ro>LBD;?W^luq~dj3oIKjYDV8~Stf zdjx`iOC;*Q8~P0k|83*X=K4Rc!N083;rux={;l_CTY7B0za@$A-y8AYntvw9zuz(8 s`JYYfZ@oWX+sE|zEmBab;~$bqNe&Tua)5!sfPPk>T)+68JBEm;0gj zelvIeJM-?@-FfGE-V=L%ClqC2V1WPt01=RH?jb>~jnwV{1psKk-u(gq*qAsPFuB-R zSH>*Lx3T~`_g#Zc&$hJ!39LJVSY^JjN*qF2Iun4jXDc2Z9?p}IlT$Cj#Xozd*R(j9 z%9QLii94Nf+`FOGZjOyLHUgB1FW)e_04jWN73l4^%%(bO?aq;S^o{5(d9kXyfc4j` zP7AP~Mw*q5~A6BTgpz8?s<%>3@-xpdAx0O#KY(_BfW87Q(}a& z1s!2g)C1=DE=>;-zHM=DlS87OfGllt&9U>e}WG^Tq< z6u61BxFi0RMi!Bo-NYrfSoY@tm-rT~Z4}I6M0?Mt-vqI=;LVDwgRVcy22xh=9Uf-L z$1$v}JZ+jr-y&;32#m=aem4~0^(eAumI>B%$D*fANVfANyv*g5!Zf3i1$@)VJfH7} zzzRLmYl5R;48`9Z1EVlxNe6Mr(_gNFIK~3v8dp0LxE3EI068LTbC@+X>r>$qC5xLq z0y`YiK22s$VWV^ESV}7f^mh)`JqW+!8Ndl-!=1C$!sX=K zSx_a;o{7giW8J}&VaJvt@lJ<PTGeAbo5k=$)_<~B<5qbbc>#G!eyNUsH zO1YM>i}nRK&JM?vhlL$e)`5GX`qyH_Tun7Piz`QB%abhp7V(QV^rju}EMQu4x3(kJn2_~eL-dRAtlEuez)I?Lw-b;DGvUy2=a;@J%IaN-%7>xWm-s3Kf(b3 zkni+$bhS45rR}`NqU|gv=9@u13OfvWfb7xW6e|NhN*xet22FFe0lq>^TZdMe{3+j_ zUen_zT2UVuDx-^Le;PmPiEv)@bf#M0C&m759i*yy061+RwMWDd7rWpU(rcQlQ8@v> z;?!{K3W9N{MOG|w;yw11R;BA=^e#@K zFkZjKzJl8!#Wi@cJ*+#}z94@|o`LF`8sJ}BGGz`!m}*Wm!Kh8NNpN%OF691vgEv4- zUXlg6FAQU5tGDI}>v*?x2`s)2qq64stQULP2wI!6Ib&3S^!E+@!{RR2PLzw9d?02f zwsK;NWdi?4>>X;V!UO=4)}ab(oXQGr!O`=h2DMI69PhLGsh39J;BPrBnI7?$WK)8m z6HK*mexg|(YFwyqT4hv6)#J>eR7-&(Avbe^36~7r0d#f7t3-ikR!=kFhrZ`8IP zZ$PdpKAF-ja=A!x{nr1cnIjlxg&_y4c8zRzf~;`?zFRDm&Ck{&PFARY7bfbK19-Oxv$L#yK}5vNi;bg$5+^u!cHom$Ugu z-5WyGUt9W+bSZSe(TW?hQ8Bg2w$5-`4AB0Z(vNGIGW!B$zxM`Rlorj?EY>E@O>Mqv z$7VN)A1JZL02d;ICG-xfhx}%w1ltsJ4Igj=yZ|9~`{d_huTcm^-vD^(0f}Jv;v)0p zwq>eYCU%w$HSXP=^WqbZ{19?YXK|#E8S_F3l-`|N021linys~~o{Ju#I`o*O&ifw+ z!IWpCG|mW3D~QDooNfW-!;a=W#4kZo^(kq+TDY#!pJ{MS5f+%5m&Z-moB5l2&bt9E zIu>599*ciV=;tY~)hp+!bpcJAA2LUOUDF@xwYzzVQfBJ6)(G>Oxb`P{z;4N zW&;e(Va{s4z+K($Pq~GMxi0J>c8vJe?pVXEjK~@K#l6B#DU7oofeGE5X(2qXDv0WWUriG(C8>2iyqDD^f zN{#GVnaV>)mbHrvAEAb7dYUMg?E-?_tB@q$S*z2`>>8TAD%2k0eH%P-AsH4TPmL?W z=gA&umk5E+qtCJpkuAmP*gRe#X%=0{L}J&oNW~{3D-)WOrHVLh^_^*Z9YexGlwK;27Q_b4c&OsXP=Dq zHKX=_(ZWVQd2g9p{)8`esE2i1@>$Y3VNp)#@H4==JU`gR`B}A(Kgl6FnpIplE6UF; z=ta4jx)3CpZ4Arcc^337{7LvU2 z{&--ASJwY})&@-*TVgKko5m(Xa@cBY@?GA|Z0Fo5XcE57Y#R^%Sy4gcvAu4?)+bz4 z8dcaQO^c{Ku}`$*M`e|!y`6d32fsWcQ5Gon$5%NMmOF1r98gDe4jTdYqL{snJ=?8d zSY%|(>X^{f6D!Ux<}aOhNmy zYp1wpVNvvjBWdz-e5MyPL&(FhakwJs-%;d!T@@P$3!3pW~E1 z|0#tDU8Z{H#U|Hciib9*z4Tz7|Bq;*_$-y1in*lyjLL}$^9C_|4U7q{=5cOfNAz8N z)38kgw+pl47t3?SrKkDblI&Nd0U-wX=+a->$}HE1SETNA0d^R5N9 zgdSg8(&C|+W?DMyp>+nMEZdd6b*sR?Z9>^|6kFuH8AO@2eF1&5H$Gmt&4n*%pwRbt zm4`9HPN1$y$&_NOT}{0zjWeuqvmLGDaO>Od#h}6as)=<$6Qri1k1&_GOQjaE2Z#$o zVPV4qvj=q|&3v2O6q>Jj{g$U*8}a7(!BetH$zifmEgeu>$hRLLb8BoZ5cqu}B;Wk( zA8VL71Se*hJBCP4^u&(7$J&Q{LWE8ois&f`mNrV1=f)5?3P)pz4&~)zx+MdkijtHT zV#D-h1UPiyS>Q{mLIGk+Kp6Gp+twGzc%m=Px#+eOe5^79ysm}_Z?h_u-Lnl6qMs9< zk87%}f52Db4LFaV#m4$}wIP0F#ZX_>Qq7hXZu?ywCOKwNWv?`~BnDY@H;+uysg&!h z8MKESd}I~_VU=-El&tm_2R(wt)^prSjaMpJBB2x#qt3MAs_a+^tofBH~b2vQ<-)OO7hDPi_%CcsH@+r*q2?(6_0CUv~fnJdNv@W|FuUW8OQ)Coe+cJ zviv$vjd`woCKIFZrS;&u^dhZ3qFp;x?i0c6Xj2;RH)qGk8a}&Spatr~E}?wyHk+r@ z991k=Hh~u4@rxw*l>@}DZquYK3kc^JuF((UaNQTRy{jIxcHoYfKgZDNawwmYgW(z7RI@1v!0z5yZ0%w7e35Uo8L z;#TT*>-Q4lNU@4$EVjr<;ms~ zv0mYkVEsZiv2EDxnj{KVO8SlTa9QUCWvDq8H!lqeiCHYUDQWQe1drrANGsvBLSi7% zku2|{loMAS&p36j*f(n0uL_S)L0Ch=13xYj484wDILn|VS1~cDORXm0Y(ei5$V)`( zjS?{vD#!I@$Ry`sze&(5%888dVJyT|-*>N1@%r?Np5GhoTYSej5`BpW#fgv2tJ8FH zW24c-Q^%KyL|vHe8l4CSK=}_Sa`Y=CN5es?M_BO`M=5mTuT+-WB)27TE;hMiG&tt+ z4tr>U8?A z$#Mt!q@!SXG%RWxf7i2=IgyTt}C4Z2`eF54I%ytgUE;h4$(u zA874uK4a)f6}AbOOs8u{jvke&fTVxiPILC% z{Oa5OI^}KuIOUNbN1>d!sxYIpyu=?z{3p=MB0NZI2ZppfxDRi$F#ubbnm9QA)zr&^ zVJJ`o&UiY4uKO$Mkxim>6^2Ngp>u`dk_~Z8zW@7eecR&L+Gn$`>EPNkMe z=_mDH+nMoFbqNgh8KV7VXB*uJgQ86&S*?X74$@kRy}nsbai^% z@8b{m23@Ioxk=p^3<|?Vy1qGGLr|x{TT&YKBw6lEjG^t6S8S0EsOTIlVKhggMsy^u zvg)ZUJ+ON$UZ^`M?oODJek=zvzTo8eHgWDS+e1^WU6}5PQY`pS` z^cM?#b>yxgg)Ef)I<}rIavF;9&egs~!#v-L9mU_er)n$Yo4@I>fQmY2eZjUm(pifJ z?Dg6qp%@Zb3>Rz+o&Wym_gaZudnvaWVnA$&F;O7W$QJBq0{&$_@o-si8w;w~nE+g2 z!^hY7uvO)KNFy-aY*yuwPlb(xzyF9m7Ut6F|3WD5bvcjyQy;gNKLO(m4B+{m=t9`P zzGjW_o#VAd@!He((4Tf4vQC$mD&GJ5{LlVvyY|3ECmqEi_Kr!0O&0YtQ zTZZGS>Qb1E#Ui+xB1DC*-4Bhl6smL3rGR;-UJ~UxD6qKgrzcXRny9Eat!j4gUjY+0 zXV_jws+!7aBG5L|Kp@-??fJL6ddZ!84+ae0kibILDGAqy1^~t|A<9A&y(=G$O-wDo z7I!u6UAXKfC@IXcV0JBDJ!NRBho_KJiG`O-`T=WBbmCe!6F<>*2sdl7S)D%b$0kId zN~cs+$($c`Jiqv3-yd_200WVQjcSTQvcsJ);RI6AghG!G)@Q147M z?=I!&^=D1*nhO1RG8GwN(On{pZy+yv#J-u)Ipp0+KKwOQG@rpwKPIJ0UOQ$wzn`KH z%19hW04-?4>s>V2sw7@04lzvJvj|r)1Sa_}Yen$!Dev{N>l?)fz7bC;}J%)pBYITs^Z8mMdBv8&dhk8drcU+zP-T@vt& z*eMb<{+O*{N1O0FhYnDXQQD?7(`RH9Pvx8r^2Srs(dbDFiKNVXbJZrg>{^Mft7y9Z zNxW%B%uu6!n(>n#PRfz7mQz&Sdo9a(Dtbmof`!SrK6}M(vvlg-7KPvcc&hLP zS6z@e`~Znb^nb;pgORz3&98Z6_DBo3l?4@k>FQ&HXe=LEJ;hjS7>zdqON-TGki2m{ z;=&sXEsjqrpW?2kFW2_Y5mg){@yPPI^mZpWq?i`?(Hd$~6p~YUNCgDzh-t0c!w52Z z9#b_Cs*NtZ=mcsxcqK;yJEtT_8H9zTmlPRBmXL~*h1&V*rI@=vZL8btQ?4}icwf*e zns}vx;_*Lv_a)IwJ$sP>z4Dl~H!5Cr)>eJF>2cs(>36;STP3($9&&dL##>&0Tu=E^ z;m^T5jz4xMkG8J?zpLC>3+QNpBF~s@TE!M!_O{YRaI1;_9$J)g(G##iECHG5|@Dg7kknDpJ9A-H1qq zY}uB4r=)Z$QN2C2PIt5)L>L9YGot4@l^8p}J@M1S#Mt)EMuf*uflA4G;mS@>WpX3^ z;sXKFj*)LiFGUF~Pphc=)Lw$m=&KY=Z2k|;5oBJ4A7<4IXV?T9S@2ApgO$4-o-%o=L@Et<3H=qd}4Qrb&-FF?=0FpGe?u`8E=p>B&Xl zyA71{v%*Z_+JJyIXCx49=3o#xk&qmcZoXf@^~(#klS5rmG)r1B=sm~%m4;p;28S<} zQE-wR!ag(WH_8iVJ+DE;qie!`|t9oepPP%Xa>E zF;Ci1Ux_L^nOWr`_-v59^R{AiT$Sx)kpvyhtJ)Jp<(a5Z^YrH)mrd*)LaoNuW_5)V zb7>orPlFEWb+SKLxAIrjaCT96fmD1ERBbA61l#x15%1 zmjctiA5*C*NSl~h%d1Oc1v

6?J_hJ(PBT#5OB>6g)P(;_-NxhJx$am>c4of$s_+@jArb-=jn zMYFa3eDSsZ`-$6MMd#}<_iq`oeR2y!ux}%2ZZ_g23in1l4dq(u4@Oesq6@?$ZJB$U zNg7{z-$b=x6lxuPowihQ_FP-;a4Lpz_W1EcUlPUd9qaAgq3$T z7?=w73J9iG+!e7<&}4vr+A~o>^84M(``7#5TPI`y`LAD~00aQQElR^viy^3wC@^e; zM#KM>eJrSg$1k^)_9!?}5qEkTE%ip>5 zUjCDbexF<3qkBWp*Zx5NV~Y8Z>^_d}N$%xCfBfgn@t%wvLKX*Ej6PK5?+N5X9=OTc zUrLdD{!9MO^G^-kJAAAbCD^CAAdf$nkdwWb@#q!pPlEomE{l+(E$Kd0HDasQxZXG)Pey306bi z^cZ%hAORL(mQj>swbqB2n;1Jdvbb7X)h5V6x+rmjF8Bg_mOn44(JML&ig>(xByRyG zLgf@c+7EwTt3DMBEL!e(d3PYiwii7^)QCZF9xCZnaR3fBia$B!DBddUyAvVDY4Som zerCk}B)t6Wkq<;l4I>qCZw^=7h-Nx3Vl%Gnk<8$Xdvy$UQ@M7clF-`~#(~AMN)pjb zkpdMg3oI!|3injbD0F-5Wk0U_uE2DNyf4GHAKzp1zEK`Pb-l&sP*Z%Fft~NygjK6* zL9||JpAg`JpDB4CHAf09pwU?6eXywf;;+D7C|mB*%p5YJk1zR-ZwiYgMJ36l-q$dR zZ`EhJ%JrJRJ_Dq38xjxSz2;S;xi#L~fCW5$vq#oGA-aOI(i+hP#Zs0-K`rOjD+R&< z01!j~;Gehkmz9hi_5XV(R}{M_fxQP8z`TpVaemJJ=^i58W_HP41WLhOHfG$c@Ms(J zrUv7?xgi$5^aIbfXwj{KkpfBWPl^_`A@qvWh_XLG#TJiR9^)J_X?>4x(5uJ?s9TKj zWO**W+xi&K*cVhLF{#zVvi+(`L z^t9$eSc0E0mdGY*PlEU*Vz%x(Hp^Xfu?nri1hI0@?CYX17{G%^MsTF1z6jVBGv~CBOp)~%Zp)g?nZ)gK?ghkGStt6sE z6noe(#V-VVM!oQ6sV2`4cssTL<`(l=lc5Ga-ED#lNR^dFBWXvN$rXZY@x|SPhWAEK zJaB`X#r68`_OC25t_LQusH*XvlMHd3r&+k!m4o`#NG;^>ZxFJhI+-x7IrG+NHS&Yvl-jF>?J%|QV9NiqhvLEB zFw%F_H!?OchnPR4kO%$uQ&f}|*l_z+t{Irxnvkg!@MZn!6g=R$u&!R}ZeX0*dUiOY z-<}IR%T|tghZd@s<7J+ZesCvrKfIO4+hCclsUMPbBTu1-lPCNpw(`z`ZY%lKq=p+v z5gh?7p<~`XZ5DJ$|HRZj735Ls)Se`|PBlT`W9(XI}n|Mf0U^@a{kd)oA|IHWQGYdn?s;yM{A035mwji$6IpRR>6)bYu*lA|% z8{fzBJre%pNpziLtic?9$n;U~5fho(Y7%hbXl$&5aB22^#Wj%y86ApX zDJq_Tjw4!+Nz#3KWH6ddvxKh7+siIQ1il1gLUy3L;c+D%8PjP0ag~yP%02&5YFs`y zato8C?W4>h`cr&Ky{FF#x!zd&P6&8&^7;P2Uq3vi_GC+N81Cj~T~929u_ z!zD%#OCW!3>vM!nLC0K5M#o`U@y8PxblWJ1T35K0ns~6<4(a9>iA~h0&o@V{Tg~$U ziVW2b6Z$;FG@%Z0>m)P9)HB><9ULJoD?{W&Ogl@U=mZ+hIo} zaEb;R9^-K_^6qHF%e_X*EIF|D7RBeK+MG&psm=R|+v3p$fzEIRfBT{~(8(fx!AkX1 zt3_Y&H=~-m#=BGI5}&kU2CjBfX~W66RIQVP4=AbP9&{J-(18B+*!%tZi?sofJQgrL za;3#fINkOzCk(g?Qx;RwG!qcHY+WgeOxG8tTJyQD^!SA?k@1b`z^i_ZQ2S%T2iLq7 znMcxw2LMKJ|C4KC|I0NU49$$Kf2Gj;@eW8Q8z%DVbzX~Dq6g_`s>x1kB{qt7EIra9 zJL&~WSC8>3GqV?yCB{B=-VK7wonYPA9;uzdy15ke{+{Z>Y|g@i3U||};F0KaO!V5% zj}X9a0ePIc7W3KzDb$uw8@#wqqO>pmw5arGWML8{FSDKSLtITwx6$T|mvZ)XjXcvZ zQ=;M3&Tl0g+$7O?E4D?ZbCDR?mho~2-C8m`e6D*KZ25ELjlEP>V-H! z64dozWNFOpH99LDG@j(hpR%DoWtDjL0Ia25&G6s<7*~PevB_^a>c=-?Odi;;386pFdB{|D-lhj$p zDB?Rj?Y2)Ehj$;FkBq?Ieset;4brrnvNJf|KrXB-5ZR?|lwQiNcqhispCV5(sRuRz z(mYEJ6~{s88_9g)o$2Tzx>6qY8l|r`opehDV_%APSfb=6m;0n6)t2|_KpvdOZlO_t z8}{a2u>Q7~s^{SD=5S%5MYcY)C@S=GWVV@S_MrU7*yp8IFMX9+wJIrDyJ0eYkh z?`)HB#nPDE6$+~Fq;%{@AHU511R4Z3X2pgvaEnTmq0Pi~o1hvnPGk>M1tf5>k zB-m#pw&PPtJtB#XP;ux}27-X171QUr#JQX!P z<=X?H+TJ#^(n&q@AEw=^$aie&iF2zGo7hy|_OEk-ehRt9?tz4j=8+e^hH$i|T4FJA z+@%^se+y{XBvXNYq|mIXds!9e)^|WFVju8SBAL+!dZiBc|PWmhiOueNA4BcZV7oQhY5ko!y@9sK)6s z5qz+r#Gtv=hE%nBGI~4@G;t>9u(v#p=e)?QEMEoh^GSE&WQ-`G>n<{LW|CGyb;ENa zl+p9-4@}MI5XZV_wjjjW>Oyt1!tO>jDtR%e-A*h2&Q2KyL+z=T^J%9Jj{6I)%rDpq zcoyDJWfQsV%{OBz#spQULmw(kaZG!^N_?X#)v>2y$fghY<~eTEIr7x9d>+}elmiF8 zD^bM-HzwW_yf!Bu*~&qyox=u9oKhxPYwSdw8nTlx{XX8vMkEUoW29n9T`BXUk+%De zaavR{z38-H8}~X2JljG&xEg6EmGfv=msA^?xRas{B0XHoE!-76T7I9;GUY5xTV{#jtR0`5AkCAprz`y$h}~W70nuKpxkbx{5U(s)jPht_c--lFH)xOMiw(EsP&Azc8 zm!e&ol^ZvJq6xV;lYtFF9Wf30DS!O1d%vpkYCEUWspxZyB_g4uzWhK;@=%)TDXX5Z zSx8FKu?GY@iY7TIDY=K9Olw7ojQLxq*uFT+0F_S&J?~V(i~52f_nq!Ij;(^wuHb&N z5@NK3Bt?{n4D9OodYftr{U{De!~3}n&{4>#HBy=x!}0Cq6|Ntmw207C^OpI`ml0-< z*!XGD$j;Fl4Le!F57Jd9t(Pz+pbQ(zV$PBa9Wt2`JJsU1VpqjA>srQwdD*OFMogJl z{TDAPoJzoLkgtmdzKBr_<{z@jJJ$eJ7&+|yqxyU}QbnQYYu9t;+`d+*Os~P3I!^Y) z_j;@E8*+I*z4^8k?D_7JGuy@JeaKbk%|{HulXvHg{&!ugHT=!`@?X=Y8Z8DI}1SnaRMt(CEqB$A8uJI?g1+y7oK$ zM+CPqCA8tw+lqiaHP?|wYSs2g%_*+FoInGY4Mu$p}qm!i~`e<0e}fum;BH54R$~WSn0dj zIQ=?0>}%=TY|sO}4k|u1k3@YiNsMOPmgdZT9a(cyHSb2DFNWvLrYSsL(B=(C+NZe3 z3rXiuSa^oQ66|rnhwQn1I$3e zW57YcBCaE2DI7zNWJEm*63CvcJkMfmgLxX%y9s0x6pB9YczSX97P&o#*47(6i3Ac$ zafrWq2>b->Sl4HKRJfYg{2FtnQYmbj7Y;8tmuQ3eV50 z;G)CY`e&VZEZRq%4CGr-Fu#Ggqv^J722QM%(TF(8f7H5Cg?O{_sy@$8=DX{A%SJXl zHIPXxn>5RCC;tkyF;N~qONcTr;JHjI=OZtPwKEGdow971zLH^qCtQiN1 zI;)tEx7kNAED=h9$D>Fey!;5~dO5nn>0a9lBZZvuT_o4FDz;+PviAMF)_lSn7IP(f zC81%b`E#_1ac$8Xb*t2JI1$R~Z!!0S6`BlEkn=K&h?8`-WxNKJV&~^;UF;~EGh0@e za8L2c6z5C5n@%$5o;6zM99br#f$td{a@443Kv-5%#kJJ9N*o3;m62=cXd8sIPP8d( zUsYtTRD(3sTziNWy*)@6t%jbekLP=wv)M zhwOfqp1d@NRS%eGEm*+m<(AN`1@%&8jh2N}@Z6c2W>KN2E6{s=c+NNAQEfZuaM@g9 zZN<95K3Z+--~yk0u@PLa;sY^$i9+qYETl%{vbn5Eq;lbfUn5Wr#C37bYO$vK_%gj_ z(bKQDtKUxauwEy5UV+*YscN4YWAlkq@l>$ZIZtXm$~4AS>*ZVbrx)5J0;{dI+b5pq zO>f7RhYn+4i5PmFQXM5WEHaqXJU!xmvv%jEw`Td>y{SmRbp5t1 zF~+r(@A;9x?0T9INt&yTPNViTkbj}h@@Y&`{Eme39_v86UTcQ$UD!Z$RDZooiEhhT zZ8BkUEjDm&Pa1jdY y@fn1qkevI3dKSOK)ZzY;j{9xJ3l|N)poJla@T~7Q%Zj9Z zYS>C~3SKJ3$}js#={dOzoz>zuT;He8zjj(MWH(t}jlm)9!zD`mGIs zo^cq0a?SFeG9e}`6FL|>K0uDY4kv0+3X0uqn35NQ5($Frd$_Wkc+zC=G7%7?x5X{? zzbH!CdVsS0XJ4OhU9`IX)HHFStEGNN`8Lnw4}nwapQ?ACx>yCW=mVc|yneiWr@cARrE`_(F}!uR#*tIHNWFIhTx)aN z%@G6^)AJLSDQsCg|W@Y?K{UwbB$OaFt*N6t{jz4~T zoM$9?*Lh9{PdK27d30&tQaHS(Cx{v;u4?1<3cIK&m&@|mcHLP#w-|-}a5{0^i3<+9 zL!CGyTd*))n%X*9?+rIewNq-IrIble7B zIRzy?l1C>OU!kkfSgJB=^-UW}jZ^@HT6)tFks<|ho>f*pSobt%-pSypK1K!s+Tc#& zN<^ts*C#x!@Xz{j#Qd7@O&d%b4W7;7=po8zMG@8Z@xkJLO94iYt8IPb<1)i4BS>Cp zB-+FsRH#zC2i&amKuPRWfiD{Rht!Lveb4a4a8v@fVr>pmz)U(Bz0awAwC_8mF|U=O zRj+WcgM=`u^25rB8YI_lCDA{^xm>E6`ScmirPG`fk0XVRm|x*r$By7CJ1`^Cpo&g& z&?@CT;g_Y8l}bcUYg;|Q)7*1J(T<~hcdY|`-6{Mr48j|`!g}i;+R@GxhOohuld^am z?Yxci#)hywl!yq9eNZ}yS?K^jt8`I=CBSX1ZodrmCbkl@G5rnB^z>VCT)N{YXoOq| zqTGZ|0<9LLr&4;SPe7DgG?S=i8;ghI;2gmO zmcl}Nb&2K8U70}RPWNg+utu^qoMNvOGU|8P>j6>*gFd6-)FJ=(E&V+u{gUB6sa7l~ z{_5)2_k?p1tbNvSQPKOf3Ui*1u!TgpUWEndks{?9YKz6gZ)wC-a5~(PVxCse*^CMv z<4>%uOH<9VW$aNT*3StldkZ@pIg4Y_m0{`63)E79JDQP^vRA3bx9olx7UR8Z>s6PK=Uc~x=#VddF_zIEx)fn^RRy@4&7$jN0Pj1QtBlBw~ z#_t`>BK7ul(}MALHxjZ*+*7j=-jhbh&!63noft6(+_8_uhmxO8TGA}c zgjQ6NbRJt#Y$DvjKXjV4%3EvCVEL6C|3BqdLRflnwAY6?Sp6FIII!5-+t?bzMm)w2 z3WFVJfo!+|YaYc!hY%DBrcQVQjy2|9tf!EJ7qlZ z|HeB1=KT|Ed%y&L(>BV#c>jNd@NYqX9%>$-x!+U*+rnRq_?MvHK;7Rm{%i*xYTj=O z$NBRx^f%w1RrH}*_)Uqxe{UWB=KM22{{4$dFyHxIbN}Z1(`_HZ=Qo`Z|6?#I%OSz+ S0RUjaeycEaHkst%>AwK*PYN^u diff --git a/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.prpt b/fineract-provider/src/main/pentahoReports/Savings Transaction Receipt.prpt index 7eaca7e61c66c7486274ec103f42e76f44fd1898..bf4cd47c7963100aa4e0ae352f6cbbc7ef0e85f5 100644 GIT binary patch literal 7329 zcmbW51ymeclYj?zcb5=!aQ8rPcXxMpcZc8*++BkO4Ni~*3$B5O1q&X0CwV{nNdAA% zp52+#UDG{%zPfd9^(|45hJeHb006Ln4(CKs73hlFA<$JJH~@eQk|u^OhR((ornZI* z9=0~cQ$2RQOo-6yw?&<=Q+Scu$-eZ)QU$;;^;o}PmosUHUG=lnWUEoGNxfgV**f|G ztL!X}O;XOOe>lq~!LZ7Q)Y+OPpP9`~EFjoMKyA|>i<>w6f}#^ob$V565L46HKQkV4 za9)fUDD+BlT>&_?4p*J|s-L%Ag7IU`zMAbZ`R0e=fNN?6Q~zxCG@PP<(F{5Xeyu$4 z%@@ogiD@cJ_G({0ya->e-_|dGRD>$!CiPaQf8+_p@|C*~s*U1yxjdXZ-Mt@U-n=BJ!S27W=%6-Dp7=#7%A}%zG9>AtEzYz0hCCm+( zq2VkF4HTLY7W8k^rs#@QY0c+GRlV!Bl(U%nR?STBtl3TOF2oX0vt-hQQ~$cR)fC};SyOtC2aeK0{je8x4*hMpZ0>PwaPIH z@-4blzgD3~=oTzCY=9<;PF$fV*NZdAv$QuK<`lzQ(=XxeA5F6EOx_9JzoS5Vpyf{` zJIP#^zUx5(H}DMH!&NhQKXH9ucPl@*K|66-sT8LUDQJl%l>DiQCaE{Ignkr!5N0~{ zk*}}pu~MpLTwBHwNL3i=N;^PYD5Eqb)%R^Bwjd^|Zk~-UC(5a_vf$JzP%*?)FENdo zQtFEqbtwZcA=d};1$4!Q*fAWVDjp(Yj;hMyYdc1QCa15)smUpCgVbU~w4$~(GM!@l zVrG1xRD6w<1dW^<=Ya)cTj0%}ZF3^kw>hV7%K8ZvL~&eRQ}3Xp9JeYGLnG`+Ak78q zE>%u~yBCsG_n3{7MJiTVlu}_J3oazaja7T~M@1D<(kT`(BKwW1+QJkC=B!N)@OeK= zuN5lp2@7J1(bPbo#cpTOPrHdK?C~e%S7X`IE@0+1;q|b+35@dNynb=?M(TxY`=B!S z$n2-I3SY7pk7UpZojfXB-`{R^*P4j4?3< zBKg*0L7;Kv6i_I&yv`DH;0VFMWf=d$c-EC0V|%o<-|TZAlx5pNZqA7)hnJ>QeyA$1 zObHonZN2TcGyP);!(VmSaWIvyA74~iW+}B~p&)S?ezLfVE~=X(`Q!GQg3n|dyNh`7 z(V2h~EFVU#2H3QvCb+XdT%IHJAZ3JDcK3L}^6nz6oi&};z)n3r_A=$L=sNr+!N5cr zy+}%7e;zOHyTdUU^p#SkWO17lTReFJ8huZqemSC^N>rsVH4K%+bc*}J00t%*jT1oE zj$WG5!!}SW3}?HPBh;pB9vT+>_FM84C+aR>{JS(crGxBFo6D(sl;;V1i8?jM_YUw# zbBLj{H8qM(Be2{J9ZvqCc&v1&oNh4WJCt=Wlworg{gJrN9fJ>;i8STh#2t1jSQY+% z;kk1u%+3V24QYOqHZXFGv}h1u2U>~;TidGHUcAB1;gl_cerz|i(n zVxX!&`{F@&BL?j+WZZf%&fl92T6JXv&be54`p6w6biXOmXH&5I6bPk#ot}z>IQM~A zY>O=YqzAw)`$~W?XZ-DPWLnlHg^s*1_C+O*yx${7i@2@@=Let=tj-$#QMD|EaUQ`? z^QD9I$UbGk&i8u4LOK^OgSu=vl*Esa8K1oTgJFWL!Y$!YrY{5S)B7UxckXT+)|@w} z%RRg$H+4ytCBC%q=(zWR%`tfeq_fH+0yY<2`l+Z&ut0O*|3c8>xw?^Vo;gXky{O_9o=|a znGycOiFAl}OdJMJ^f($1)p6HM1Boh5&as^z*zf!LZs*F7I~V|<4*4^K>l%)?*`C+`3o@R%ig443@+oE1zA;X4H*VAeV1(N~tJSG>v%tf`1N= zs{Oix?w#;X%49>tBn5d{F-?lzSV7AMS&j(jH8m>1Yv)a0oTU@d{OX+W4ZrDt;I2Lf8^g6Ye-AB(9tteFADU*qSLAq6Gqe-zK6{ zRB}%L&FseXdsf9*RxT@F_<||(*I8x`Uv3~p=z?@|qJGGWr1mK8vl|KSP36NL%H6S+ z4Re{{h&l}?g_I66mHD3^5x#pBD;L6XcNQR{$3gbdS6=!ET8pJbd1T|7-c&uN81HV% z{TTL=c*?Ey%J`%B+V6`4AwOY73tAK!(D7?=EJ4fT>0k=g69@+&g@x>nwV`CD5jt12 zd^o~&z#tygVB`=o{y~{SZVg0^bZ!}j`JJZ~Cimkbh{X+Ba72)FHg$2av@>`98OBxP zgzUhX5k;?@qo}<%+|*UylDbYpD0l^+E|X2g5G~+|*ssAclxmIg1{fGx2GU8e=gik5zH$_%XU+$o ziiabMRb;2)8gn5;Q^RM|-;Ftm+@nHi=+Af?#Mlc}{E!j$jeb=5yUObP(Py_vs1@WC zbIBi$SPS2=#^)BiBa4{X+ZGIabt=MV(E0AJT0~itKVdK|c)30>^SSu{ZgHQ1jwu@DwGP)eaifPp?{ldTAc?efs~&qV7#L{H z)65kcs|KKot+$k_NF(KZ`N@%^1fY70 z%``vaZW=0rt=g*u1Hs0gLN#s;Wz7e!20f`F9?xHg(fhhDJdn{1yhmx|SnW+PvMmt^@3!m<=v&ai;H{N!3ho%bo&%2>aqy0fZGh8t7Y~0w41};o=5t@ zwE*dd8=d>UFtQX<_`1ix-fQpScM%8?V_bKxS6qr}-{<9~ykFi9czS-xVP_xq5G&*WGTYwRb(yngsE<+5?C zivrEU?3k}3;WzY+_KQ0jgn1LZm4^h$U^I=FX7;+kb22MfZUF5P)QQ78rod9h`PFJG zV*$0{AY%4GZ$8*J^Yv9Rv^>X?XE16B6GU|!T?p4A-41RdLWSZqDnqB~%o*1LK6Gt{ zE2eUb7iaTHIH}W0XGvNl*R7nxoN;;t!H+|eIAnVvR9?Qmr{Gt(yD%e5A%Z_W@Mnq) z0N@x)N&NcpuhY+W?pLi~@9Jc1>dg4NuZHcPuzP@>r~w@We>`byZ|h+1YG*=k^2>Q$ z<9guxNKr+O{X#wFY-1K8jV;3KQ~1DMMDv z%*XpW$z=iy(lV$AUHETM{|xx2Y0mLNANoKwK{^Tmfc?jSogHodHP&i%Tl*yr)CZl% zs92zyHC+;Rveql^wsG-V*cCYE!RU-B97Tma>u(6JK2b@iG$DR!so>xaXQP13(c0s-VXG3mZy_3G3|*CI zWuNFm<#8VSXO7(<;oLI!UF~%n9c1k{c3iHrZcIdvg<7%S9|qg3xI|y9G{b4g60f%i z@_GEYcSrHNBP<#&62j=8ic_AXUP^-VM=T{g#(B+b%@wP;=d~J@P0KB&%v1Ly5sl+(d8G`MO@S9GT3OF`4v&kr^>yz`7 zXz^O|1hGos*9#@jJbf@Q^;m2$GL13^(^wP+;xyRziaEMrZS0fr<}1~}#8%mKX&9KVZv6wu+IUl^cwZ0xdPWW67JigESC|H6bl5>%^<* zBd(f7TRw^T2&tIyz5dd@PZ?T}P=IQ-v?Om<#SM4hRXQX3nx<&D}K6^eFPU%>gX$$cRpaOhg&Z ztPx%)j3Nl+rA$lJVqK@~PEWYBGSJn((m93i6~yEZ+_P1$n3J}H9JxTc`b!9Bz%KL} z`}9Cw$*bGYY6Pcu0?3svl2^&AQqxD+%1V2btC5InEjCPcAGXAHltdgTN$8DpPQb&N zn$gFK>Wn`Za?-(`G8i-1a4PfBU?ug<0@VVK_&&MQ{+KFTe6Pe<)Er7 zcp$Iy{UGLxnhPTZ$9JeKSwZ54KgPJEFe$*tKc!1#Ut60q*YSF@sh=*q<02{-BLCPo z*P+oXcv+}C)2>$03SWqDjYnoKs9At<$>QtUQl%A9ZAm-Q;8EOyz7q>Yyxo$its;y| zxH(2rox zK1;tf7<_&1xYOyL?&)IM*Ivgz>X<_dbX%EORb!#AsNX1sC~K;WC>J-g4w7Vdw?5!COR_XWxB?4(wVPN2ueP?sy1K4+PR+oKHp*SO z!E2Tzzyr1yFE=CLjE&j;1;()#(Jvc|st`h>WIR5LCs^))<1Xm{bIav2lC+3<3G7sK zaodSEsabfQ*HtkBiy-oHddFg7<}VBAx|&V0=*YHJI%V>KaWMY;19&x75`w-f&DEaR zFzCE`WCvN!m3%gjk46K!gagr^l~3M4I7DjW{oq#?Xy>`1LYWG`gZf$-IZ* zVfZ#@tEhe1xx$`H+T`0O=UWpiigB_jZ~N7n+E3A~h^lFU8xaLZ`wI3~5?y_(Kvr(( z$PHMQDCOh#q)?aAVoFyHYllVo75lF}W8gBYo%Qx#v=n{8oG9m8{A^KT&k38FuH ziKN==rQM+EK?mjJ2q0-}Z|7oa_iJ)QemxVPVW;EnBU*`RE*x%rM&eT0uS!yBv6 zid$6&wpzW`wKUUc7j|sp}yH0aTb0Ap53<8L+q|qLA|enl^;4R z?4l-9Sq85MthkO4Dz$;xiQ3n^lpxkXM8xP-b%6c^n0>fH_cvD2P|6Vow_U)*gu2vT z2|m=%96Un#$513twqVg3uptIY#aBUD5IV@vpNWu(shOpnrHiG#-LFof`jXW$6RPjH zI&A0C2s*WCJrOk-o5EtFq=3OJajmM!Fy8PIknC|a;qZW?C5)l?<#06fW@{EVVc6!u z_X>8S(7&1*TC<98mGbCyiw{}SaCU}3r%1`HO*rH%+kcLk$&3b%j3R<-Q*)~yh=rwgX#P<1q^rxKY3a};`YV=8xtDu_41 zu|N?q&z%NFKkpzU7KIJubZ*?HzMvM>aL+m+Qj5no&@m6h&B0v8_rgfTN*AD1iFR78 zxi5YjE~c$F@E%=e(pf^vzqGVR4hwW!D@M7(GBh67! zxUbv>9KOCC9w+p~GTQyYaPOdU$Po55qC=BCOYV+8cymi9OzZ_%$|o;((IWd>4xbLw z@2VE$s2V7y=M+@#wfz(K`P2g3sr~wkS6ken^x7ML?Y@K~RhD0vm<0EpQ;swWN!Pi= zedz#AC+6*E`oS==4ME>n1HMq3$m#7E#m-!74AS5YY{Ma8`+CtSjkjfa7@Efn+Kt6P zDUzIFr2e-b=R=)Du%^KR^Se4ci!6;>HWXCZRc`p#68q&GzD2nmGyJW{txz}2bx74z zOihK@^CvpTYp^eC%sJn-ee$R%+LWYfrm(>)1)7bk{{Uc;cZ;n*59XB>!ap-ko{Q9)o(nwb`8j0| zpgsP-GlS>oCy)G7J~!cKVEjFQctQt&&@VBbp`T|H&(%E5)c>aD_xSr? BK)V0{ literal 6854 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 Q002b(QjqCNMsa)fA3{6JC;$Ke diff --git a/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt b/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt index fd3eef1f125f9d3c0ea5fbdc936d15299400b75b..9c73fcd9ab66937eb68f83431dc33db53c0d0a1f 100644 GIT binary patch literal 15703 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 P;`;~s{TCbCumAoZW|Vqx literal 14997 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 H&$s^%+!}DD diff --git a/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt b/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt index d50d9716902d051e82f0507d6dccdc0c0ceda344..bdc6413fc51f5723a5b129bf084993d09852543d 100644 GIT binary patch literal 7135 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 RQ7P~NN{Dn8aJe}E{12>u!^r>u literal 6565 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 t`R_NX;{9IF{`C8O**I_|@3J-oV(z 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 diff --git a/fineract-provider/src/main/pentahoReports/Written-Off Loans(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Written-Off Loans(Pentaho).prpt index 4eee7b8bebb25e8943aef59c88b14455534148b4..96e4f368de216dea08e69ce43300c0896e443a24 100644 GIT binary patch literal 9275 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 DP#fG( literal 8739 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 Date: Wed, 17 Feb 2016 12:32:19 +0530 Subject: [PATCH 03/25] no message --- .../report/service/PentahoReportingProcessServiceImpl.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java index 3a8f80a4c9b..36af4aafdfe 100644 --- a/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java +++ b/fineract-provider/src/main/java/org/mifosplatform/infrastructure/report/service/PentahoReportingProcessServiceImpl.java @@ -19,6 +19,7 @@ import org.apache.commons.lang.StringUtils; import org.apache.fineract.infrastructure.core.api.ApiParameterHelper; +import org.apache.fineract.infrastructure.core.boot.JDBCDriverConfig; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenant; import org.apache.fineract.infrastructure.core.domain.FineractPlatformTenantConnection; import org.apache.fineract.infrastructure.core.exception.PlatformDataIntegrityException; @@ -56,6 +57,8 @@ public class PentahoReportingProcessServiceImpl implements ReportingProcessServi private final PlatformSecurityContext context; private boolean noPentaho = false; + @Autowired private JDBCDriverConfig driverConfig ; + @Autowired public PentahoReportingProcessServiceImpl(final PlatformSecurityContext context) { // kick off pentaho reports server @@ -187,8 +190,7 @@ private void addParametersToReport(final MasterReport report, final Map Date: Wed, 2 Mar 2016 14:27:14 +0530 Subject: [PATCH 04/25] Correction in interest recalculation scheduler job to avoid infinite loop --- .../portfolio/loanaccount/service/LoanSchedularServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularServiceImpl.java index 8c5309cc1a3..50de5d2e9c3 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/loanaccount/service/LoanSchedularServiceImpl.java @@ -171,6 +171,7 @@ public void recalculateInterest() throws JobExecutionException { + realCause.getMessage()); sb.append("Interest recalculation for loans failed for account:").append(loanId).append(" with message ") .append(realCause.getMessage()); + numberOfRetries = maxNumberOfRetries + 1; } i++; } From c4ce6b0727ebc4842eb86cd20c45d58905587b8a Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Wed, 9 Mar 2016 21:55:02 +0530 Subject: [PATCH 05/25] Adding 16.03.01.RELEASE --- CHANGELOG.md | 21 +++ api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 113 +++++++------ .../sample_data/load_sample_data.sql | 149 ++++++++++-------- 5 files changed, 163 insertions(+), 124 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eacba5e2278..99d1eef12ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,28 @@ Releases =============== 1. 24 Feb 2016 - 0.1.1-incubating +2. 09 Mar 2015 - 16.03.01.RELEASE +16.03.01.RELEASE +============= + +This release includes following features and Bug fixes as mentioned below: + +Platform & API + +New Features & Improvements + + - Added organization start date global configuration + - Center rescheduling + - Support for Interest Rate Charts based on amount + +Bugs + + - Infinite loop fix when retrying for loan schedular service + - Fix for repayment information + - [FINERACT-59] corrected interest calculation for flat loans + - [FINERACT-62] payment type applicable for disbursement charge configuration + 0.1.1-incubating ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 4edd5e70910..6e7aa8eb942 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@

- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index 0591026e60c..845087fd00f 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=0.2.0-incubating +releaseVersion=16.03.01.RELEASE diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index a0522dd27a0..8a3ceec669f 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34 - MySQL Community Server (GPL) +-- Server version: 5.6.21-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -241,36 +241,39 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `value` int(11) DEFAULT NULL, + `date_value` date DEFAULT NULL, `enabled` tinyint(1) NOT NULL DEFAULT '0', `is_trap_door` tinyint(1) NOT NULL DEFAULT '0', `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~22 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; -INSERT INTO `c_configuration` (`id`, `name`, `value`, `enabled`, `is_trap_door`, `description`) VALUES - (1, 'maker-checker', NULL, 0, 0, NULL), - (4, 'amazon-S3', NULL, 0, 0, NULL), - (5, 'reschedule-future-repayments', NULL, 1, 0, NULL), - (6, 'reschedule-repayments-on-holidays', NULL, 0, 0, NULL), - (7, 'allow-transactions-on-holiday', NULL, 0, 0, NULL), - (8, 'allow-transactions-on-non_workingday', NULL, 0, 0, NULL), - (9, 'constraint_approach_for_datatables', NULL, 0, 0, NULL), - (10, 'penalty-wait-period', 2, 1, 0, NULL), - (11, 'force-password-reset-days', 0, 0, 0, NULL), - (12, 'grace-on-penalty-posting', 0, 1, 0, NULL), - (15, 'savings-interest-posting-current-period-end', NULL, 0, 0, 'Recommended to be changed only once during start of production. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.'), - (16, 'financial-year-beginning-month', 1, 1, 0, 'Recommended to be changed only once during start of production. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.'), - (17, 'min-clients-in-group', 5, 0, 0, 'Minimum number of Clients that a Group should have'), - (18, 'max-clients-in-group', 5, 0, 0, 'Maximum number of Clients that a Group can have'), - (19, 'meetings-mandatory-for-jlg-loans', NULL, 0, 0, 'Enforces all JLG loans to follow a meeting schedule belonging to parent group or Center'), - (20, 'office-specific-products-enabled', 0, 0, 0, 'Whether products and fees should be office specific or not? This property should NOT be changed once Mifos is Live.'), - (21, 'restrict-products-to-user-office', 0, 0, 0, 'This should be enabled only if, products & fees are office specific (i.e. office-specific-products-enabled is enabled). This property specifies if the products should be auto-restricted to office of the user who created the proudct? Note: This property should NOT be changed once Mifos is Live.'), - (22, 'office-opening-balances-contra-account', 0, 1, 0, NULL), - (23, 'rounding-mode', 6, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), - (24, 'backdate-penalties-enabled', 0, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'); +INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES + (1, 'maker-checker', NULL, NULL, 0, 0, NULL), + (4, 'amazon-S3', NULL, NULL, 0, 0, NULL), + (5, 'reschedule-future-repayments', NULL, NULL, 1, 0, NULL), + (6, 'reschedule-repayments-on-holidays', NULL, NULL, 0, 0, NULL), + (7, 'allow-transactions-on-holiday', NULL, NULL, 0, 0, NULL), + (8, 'allow-transactions-on-non_workingday', NULL, NULL, 0, 0, NULL), + (9, 'constraint_approach_for_datatables', NULL, NULL, 0, 0, NULL), + (10, 'penalty-wait-period', 2, NULL, 1, 0, NULL), + (11, 'force-password-reset-days', 0, NULL, 0, 0, NULL), + (12, 'grace-on-penalty-posting', 0, NULL, 1, 0, NULL), + (15, 'savings-interest-posting-current-period-end', NULL, NULL, 0, 0, 'Recommended to be changed only once during start of production. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.'), + (16, 'financial-year-beginning-month', 1, NULL, 1, 0, 'Recommended to be changed only once during start of production. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.'), + (17, 'min-clients-in-group', 5, NULL, 0, 0, 'Minimum number of Clients that a Group should have'), + (18, 'max-clients-in-group', 5, NULL, 0, 0, 'Maximum number of Clients that a Group can have'), + (19, 'meetings-mandatory-for-jlg-loans', NULL, NULL, 0, 0, 'Enforces all JLG loans to follow a meeting schedule belonging to parent group or Center'), + (20, 'office-specific-products-enabled', 0, NULL, 0, 0, 'Whether products and fees should be office specific or not? This property should NOT be changed once Mifos is Live.'), + (21, 'restrict-products-to-user-office', 0, NULL, 0, 0, 'This should be enabled only if, products & fees are office specific (i.e. office-specific-products-enabled is enabled). This property specifies if the products should be auto-restricted to office of the user who created the proudct? Note: This property should NOT be changed once Mifos is Live.'), + (22, 'office-opening-balances-contra-account', 0, NULL, 1, 0, NULL), + (23, 'rounding-mode', 6, NULL, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), + (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), + (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), + (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -340,25 +343,25 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-default.job: ~19 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-01-20 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-01-21 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-01-21 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-01-20 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-01-21 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-01-21 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-01-21 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-01-21 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-01-21 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-01-21 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-01-21 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-01-21 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-01-21 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-01-21 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-01-21 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-01-21 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-01-21 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-01-21 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-01-21 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-09 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-09 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-03-10 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-10 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-03-10 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-03-10 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-03-10 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-03-10 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-03-10 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-03-10 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-03-10 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -905,9 +908,9 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) @@ -1954,6 +1957,7 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `description` varchar(200) DEFAULT NULL, `from_date` date NOT NULL, `end_date` date DEFAULT NULL, + `is_primary_grouping_by_amount` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -1968,8 +1972,8 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_chart_id` bigint(20) NOT NULL, `description` varchar(200) DEFAULT NULL, - `period_type_enum` smallint(5) NOT NULL DEFAULT '1', - `from_period` int(11) NOT NULL DEFAULT '0', + `period_type_enum` smallint(5) DEFAULT NULL, + `from_period` int(11) DEFAULT NULL, `to_period` int(11) DEFAULT NULL, `amount_range_from` decimal(19,6) DEFAULT NULL, `amount_range_to` decimal(19,6) DEFAULT NULL, @@ -2856,7 +2860,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~741 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~682 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4109,6 +4113,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `description` varchar(200) DEFAULT NULL, `from_date` date NOT NULL, `end_date` date DEFAULT NULL, + `is_primary_grouping_by_amount` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FKSAIRC00000000000001` (`savings_account_id`), CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION @@ -4125,8 +4130,8 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_interest_rate_chart_id` bigint(20) NOT NULL, `description` varchar(200) DEFAULT NULL, - `period_type_enum` smallint(5) NOT NULL DEFAULT '1', - `from_period` int(11) NOT NULL DEFAULT '0', + `period_type_enum` smallint(5) DEFAULT NULL, + `from_period` int(11) DEFAULT NULL, `to_period` int(11) DEFAULT NULL, `amount_range_from` decimal(19,6) DEFAULT NULL, `amount_range_to` decimal(19,6) DEFAULT NULL, @@ -4837,7 +4842,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~297 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~307 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5066,6 +5071,10 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (302, 302, '289', 'client non person', 'SQL', 'V289__client_non_person.sql', 1595576360, 'root', '2016-01-20 18:23:19', 239, 1), (29, 29, '29', 'add-support-for-annual-fees-on-savings', 'SQL', 'V29__add-support-for-annual-fees-on-savings.sql', -1595233842, 'root', '2015-06-03 15:26:53', 157, 1), (303, 303, '290', 'shares dividends permissions script', 'SQL', 'V290__shares_dividends_permissions_script.sql', -1504459497, 'root', '2016-01-20 18:23:19', 47, 1), + (304, 304, '291', 'organisation start date config', 'SQL', 'V291__organisation_start_date_config.sql', -42761642, 'root', '2016-03-09 21:33:11', 543, 1), + (305, 305, '292', 'update organisation start date', 'SQL', 'V292__update_organisation_start_date.sql', -1854040433, 'root', '2016-03-09 21:33:11', 90, 1), + (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:14', 2333, 1), + (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:14', 56, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 914436650, 'root', '2015-06-03 15:26:50', 14, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 255130282, 'root', '2015-06-03 15:26:53', 59, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), @@ -5232,7 +5241,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~61 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~92 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index b69acad7e35..533b417bb17 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34 - MySQL Community Server (GPL) +-- Server version: 5.6.21-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -159,7 +159,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); @@ -305,7 +305,7 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.c_cache: ~0 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); @@ -318,36 +318,39 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `value` int(11) DEFAULT NULL, + `date_value` date DEFAULT NULL, `enabled` tinyint(1) NOT NULL DEFAULT '0', `is_trap_door` tinyint(1) NOT NULL DEFAULT '0', `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~22 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; -INSERT INTO `c_configuration` (`id`, `name`, `value`, `enabled`, `is_trap_door`, `description`) VALUES - (1, 'maker-checker', NULL, 0, 0, NULL), - (4, 'amazon-S3', NULL, 0, 0, NULL), - (5, 'reschedule-future-repayments', NULL, 1, 0, NULL), - (6, 'reschedule-repayments-on-holidays', NULL, 0, 0, NULL), - (7, 'allow-transactions-on-holiday', NULL, 0, 0, NULL), - (8, 'allow-transactions-on-non_workingday', NULL, 0, 0, NULL), - (9, 'constraint_approach_for_datatables', NULL, 0, 0, NULL), - (10, 'penalty-wait-period', 2, 1, 0, NULL), - (11, 'force-password-reset-days', 0, 0, 0, NULL), - (12, 'grace-on-penalty-posting', 0, 1, 0, NULL), - (15, 'savings-interest-posting-current-period-end', NULL, 0, 0, 'Recommended to be changed only once during start of production. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.'), - (16, 'financial-year-beginning-month', 1, 1, 0, 'Recommended to be changed only once during start of production. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.'), - (17, 'min-clients-in-group', 5, 0, 0, 'Minimum number of Clients that a Group should have'), - (18, 'max-clients-in-group', 5, 0, 0, 'Maximum number of Clients that a Group can have'), - (19, 'meetings-mandatory-for-jlg-loans', NULL, 0, 0, 'Enforces all JLG loans to follow a meeting schedule belonging to parent group or Center'), - (20, 'office-specific-products-enabled', 0, 0, 0, 'Whether products and fees should be office specific or not? This property should NOT be changed once Mifos is Live.'), - (21, 'restrict-products-to-user-office', 0, 0, 0, 'This should be enabled only if, products & fees are office specific (i.e. office-specific-products-enabled is enabled). This property specifies if the products should be auto-restricted to office of the user who created the proudct? Note: This property should NOT be changed once Mifos is Live.'), - (22, 'office-opening-balances-contra-account', 0, 1, 0, NULL), - (23, 'rounding-mode', 6, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), - (24, 'backdate-penalties-enabled', 0, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'); +INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES + (1, 'maker-checker', NULL, NULL, 0, 0, NULL), + (4, 'amazon-S3', NULL, NULL, 0, 0, NULL), + (5, 'reschedule-future-repayments', NULL, NULL, 1, 0, NULL), + (6, 'reschedule-repayments-on-holidays', NULL, NULL, 0, 0, NULL), + (7, 'allow-transactions-on-holiday', NULL, NULL, 0, 0, NULL), + (8, 'allow-transactions-on-non_workingday', NULL, NULL, 0, 0, NULL), + (9, 'constraint_approach_for_datatables', NULL, NULL, 0, 0, NULL), + (10, 'penalty-wait-period', 2, NULL, 1, 0, NULL), + (11, 'force-password-reset-days', 0, NULL, 0, 0, NULL), + (12, 'grace-on-penalty-posting', 0, NULL, 1, 0, NULL), + (15, 'savings-interest-posting-current-period-end', NULL, NULL, 0, 0, 'Recommended to be changed only once during start of production. When set as false(default), interest will be posted on the first date of next period. If set as true, interest will be posted on last date of current period. There is no difference in the interest amount posted.'), + (16, 'financial-year-beginning-month', 1, NULL, 1, 0, 'Recommended to be changed only once during start of production. Allowed values 1 - 12 (January - December). Interest posting periods are evaluated based on this configuration.'), + (17, 'min-clients-in-group', 5, NULL, 0, 0, 'Minimum number of Clients that a Group should have'), + (18, 'max-clients-in-group', 5, NULL, 0, 0, 'Maximum number of Clients that a Group can have'), + (19, 'meetings-mandatory-for-jlg-loans', NULL, NULL, 0, 0, 'Enforces all JLG loans to follow a meeting schedule belonging to parent group or Center'), + (20, 'office-specific-products-enabled', 0, NULL, 0, 0, 'Whether products and fees should be office specific or not? This property should NOT be changed once Mifos is Live.'), + (21, 'restrict-products-to-user-office', 0, NULL, 0, 0, 'This should be enabled only if, products & fees are office specific (i.e. office-specific-products-enabled is enabled). This property specifies if the products should be auto-restricted to office of the user who created the proudct? Note: This property should NOT be changed once Mifos is Live.'), + (22, 'office-opening-balances-contra-account', 0, NULL, 1, 0, NULL), + (23, 'rounding-mode', 6, NULL, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), + (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), + (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), + (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -417,25 +420,25 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-reference.job: ~19 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-01-20 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-01-21 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-01-21 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-01-20 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-01-21 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-01-21 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-01-21 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-01-21 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-01-21 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-01-21 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-01-21 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-01-21 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-01-21 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-01-21 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-01-21 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-01-21 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-01-21 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-01-21 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-01-21 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-03-09 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-10 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-03-09 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-03-10 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-03-10 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-03-10 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-03-10 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-03-10 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-03-10 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-03-10 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-03-10 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-03-10 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-03-10 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-03-10 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-03-10 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -558,7 +561,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); @@ -932,7 +935,7 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL); @@ -1009,9 +1012,9 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) @@ -1714,7 +1717,7 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); @@ -2094,6 +2097,7 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `description` varchar(200) DEFAULT NULL, `from_date` date NOT NULL, `end_date` date DEFAULT NULL, + `is_primary_grouping_by_amount` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2108,8 +2112,8 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_chart_id` bigint(20) NOT NULL, `description` varchar(200) DEFAULT NULL, - `period_type_enum` smallint(5) NOT NULL DEFAULT '1', - `from_period` int(11) NOT NULL DEFAULT '0', + `period_type_enum` smallint(5) DEFAULT NULL, + `from_period` int(11) DEFAULT NULL, `to_period` int(11) DEFAULT NULL, `amount_range_from` decimal(19,6) DEFAULT NULL, `amount_range_to` decimal(19,6) DEFAULT NULL, @@ -2262,7 +2266,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `repayment_frequency_nth_day_enum`, `repayment_frequency_day_of_week_enum`, `number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 0, 0, 25, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); @@ -2375,7 +2379,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); @@ -2953,7 +2957,7 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_organisation_currency: ~0 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); @@ -3028,7 +3032,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~781 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~682 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3780,7 +3784,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~71 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -3923,7 +3927,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); @@ -3941,7 +3945,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); @@ -3966,7 +3970,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); @@ -4196,7 +4200,7 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); @@ -4215,7 +4219,7 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role_permission: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); @@ -4360,6 +4364,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `description` varchar(200) DEFAULT NULL, `from_date` date NOT NULL, `end_date` date DEFAULT NULL, + `is_primary_grouping_by_amount` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FKSAIRC00000000000001` (`savings_account_id`), CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION @@ -4376,8 +4381,8 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_interest_rate_chart_id` bigint(20) NOT NULL, `description` varchar(200) DEFAULT NULL, - `period_type_enum` smallint(5) NOT NULL DEFAULT '1', - `from_period` int(11) NOT NULL DEFAULT '0', + `period_type_enum` smallint(5) DEFAULT NULL, + `from_period` int(11) DEFAULT NULL, `to_period` int(11) DEFAULT NULL, `amount_range_from` decimal(19,6) DEFAULT NULL, `amount_range_to` decimal(19,6) DEFAULT NULL, @@ -4505,7 +4510,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( UNIQUE KEY `sp_unq_short_name` (`short_name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL); @@ -4813,7 +4818,7 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~0 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); @@ -4854,7 +4859,7 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_client_details: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); @@ -5067,7 +5072,7 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.scheduler_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); @@ -5094,7 +5099,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~293 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~307 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5323,6 +5328,10 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (302, 302, '289', 'client non person', 'SQL', 'V289__client_non_person.sql', 1595576360, 'root', '2016-01-20 18:23:20', 277, 1), (29, 29, '29', 'add-support-for-annual-fees-on-savings', 'SQL', 'V29__add-support-for-annual-fees-on-savings.sql', 992227725, 'root', '2014-03-08 02:28:55', 1556, 1), (303, 303, '290', 'shares dividends permissions script', 'SQL', 'V290__shares_dividends_permissions_script.sql', -1504459497, 'root', '2016-01-20 18:23:21', 39, 1), + (304, 304, '291', 'organisation start date config', 'SQL', 'V291__organisation_start_date_config.sql', -42761642, 'root', '2016-03-09 21:33:15', 484, 1), + (305, 305, '292', 'update organisation start date', 'SQL', 'V292__update_organisation_start_date.sql', -1854040433, 'root', '2016-03-09 21:33:15', 34, 1), + (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:17', 2182, 1), + (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:17', 34, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 1922951887, 'root', '2014-03-08 02:28:38', 110, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 2079970797, 'root', '2014-03-08 02:28:55', 327, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), @@ -5489,7 +5498,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~125 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~92 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), From c1cdcb9c5f2080c1e8d28c3f5d69b59b48eac12b Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 16 Mar 2016 13:17:40 +0530 Subject: [PATCH 06/25] Updating release notes for 16.03.02.RELEASE --- CHANGELOG.md | 18 ++++++++++++++++-- api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99d1eef12ce..ccff75ceddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,24 @@ Changelog Releases =============== +1. 16 Mar 2015 - 16.03.02.RELEASE +1. 09 Mar 2015 - 16.03.01.RELEASE 1. 24 Feb 2016 - 0.1.1-incubating -2. 09 Mar 2015 - 16.03.01.RELEASE -16.03.01.RELEASE +16.03.02.RELEASE +============= + +This release is being made to fix critical regression issue found by QA. Also 2 more major issues have been addressed. + +Platform & API + +Bugs + + - [MIFOSX-2626] - Repayment schedule generated for multi tranche loan is not proper + - [FINERACT-67] - undo last tranche not working + - [FINERACT-68] - validation for center meeting rescheduling(Should not allow to reschedule FRP of loans under that center + + 16.03.01.RELEASE ============= This release includes following features and Bug fixes as mentioned below: diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 6e7aa8eb942..f1076237249 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index 845087fd00f..d87e4cea501 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=16.03.01.RELEASE +releaseVersion=16.03.02.RELEASE From e5c03c2547bf8655a669bcc0d63b121e5687fa3b Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 23 Mar 2016 15:20:33 +0530 Subject: [PATCH 07/25] Updating release notes for 16.03.03.RELEASE --- CHANGELOG.md | 35 - MIFOS-CHANGELOG.md | 2125 +++++++++++++++++ api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 54 +- .../sample_data/load_sample_data.sql | 250 +- 6 files changed, 2201 insertions(+), 267 deletions(-) create mode 100644 MIFOS-CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ccff75ceddf..eacba5e2278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,43 +4,8 @@ Changelog Releases =============== -1. 16 Mar 2015 - 16.03.02.RELEASE -1. 09 Mar 2015 - 16.03.01.RELEASE 1. 24 Feb 2016 - 0.1.1-incubating -16.03.02.RELEASE -============= - -This release is being made to fix critical regression issue found by QA. Also 2 more major issues have been addressed. - -Platform & API - -Bugs - - - [MIFOSX-2626] - Repayment schedule generated for multi tranche loan is not proper - - [FINERACT-67] - undo last tranche not working - - [FINERACT-68] - validation for center meeting rescheduling(Should not allow to reschedule FRP of loans under that center - - 16.03.01.RELEASE -============= - -This release includes following features and Bug fixes as mentioned below: - -Platform & API - -New Features & Improvements - - - Added organization start date global configuration - - Center rescheduling - - Support for Interest Rate Charts based on amount - -Bugs - - - Infinite loop fix when retrying for loan schedular service - - Fix for repayment information - - [FINERACT-59] corrected interest calculation for flat loans - - [FINERACT-62] payment type applicable for disbursement charge configuration - 0.1.1-incubating ============= diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md new file mode 100644 index 00000000000..3848d93d397 --- /dev/null +++ b/MIFOS-CHANGELOG.md @@ -0,0 +1,2125 @@ +Changelog +===== + +Releases +=============== + +1. 23 Mar 2016 - 16.03.03.RELEASE +1. 16 Mar 2016 - 16.03.02.RELEASE +1. 09 Mar 2016 - 16.03.01.RELEASE +1. 24 Feb 2016 - 0.1.0-incubating +1. 20 Jan 2016 - 16.01.2.RELEASE +1. 12 Jan 2016 - 16.01.1.RELEASE +1. 17 Dec 2015 - 15.12.2.RELEASE +1. 02 Dec 2015 - 15.12.1.RELEASE +1. 18 Nov 2015 - 15.11.2.RELEASE +1. 04 Nov 2015 - 15.11.1.RELEASE +1. 21 Oct 2015 - 15.10.2.RELEASE +1. 20 Oct 2015 - 15.10.1.RELEASE +1. 21 Sep 2015 - 15.09.4.RELEASE +1. 15 Sep 2015 - 15.09.3.RELEASE +1. 09 Sep 2015 - 15.09.2.RELEASE +1. 08 Sep 2015 - 15.09.1.RELEASE +1. 05 Sep 2015 - 15.09.RELEASE +1. 18 May 2015 - 15.03.1.RELEASE +1. 06 Apr 2015 - 15.03.RELEASE +1. 22 Dec 2014 - 1.26.0.RELEASE +1. 01 Nov 2014 - 1.25.1.RELEASE +1. 12 Oct 2014 - 1.25.0.RELEASE +1. 10 Jul 2014 - 1.24.0.RELEASE +1. 16 Jun 2014 - 1.23.1.RELEASE +1. 15 Jun 2014 - 1.23.0.RELEASE +1. 30 Apr 2014 - 1.22.0.RELEASE +1. 30 Mar 2014 - 1.21.0.RELEASE +1. 18 Mar 2014 - 1.20.1.RELEASE +1. 16 Mar 2014 - 1.20.0.RELEASE +1. 04 Mar 2014 - 1.19.0.RELEASE +1. 23 Feb 2014 - 1.18.0.RELEASE +1. 21 Feb 2014 - 1.17.1.RELEASE +1. 17 Jan 2014 - 1.17.0.RELEASE +1. 29 Dec 2013 - 1.16.1.RELEASE +1. 15 Dec 2013 - 1.16.0.RELEASE +1. 12 Dec 2013 - 1.15.2.RELEASE +1. 04 Dec 2013 - 1.15.1.RELEASE +1. 01 Dec 2013 - 1.15.0.RELEASE +1. 21 Nov 2013 - 1.14.0.RELEASE +1. 03 Nov 2013 - 1.13.4.RELEASE +1. 30 Oct 2013 - 1.13.3.RELEASE +1. 28 Oct 2013 - 1.13.2.RELEASE +1. 22 Oct 2013 - 1.13.1.RELEASE +1. 19 Oct 2013 - 1.13.0.RELEASE +1. 16 Oct 2013 - 1.12.0.RELEASE +1. 07 Oct 2013 - 1.11.1.RELEASE +1. 05 Oct 2013 - 1.11.0.RELEASE +1. 04 Oct 2013 - 1.10.3.RELEASE +1. 22 Sep 2013 - 1.10.2.RELEASE +1. 20 Sep 2013 - 1.10.1.RELEASE +1. 19 Sep 2013 - 1.10.0.RELEASE +1. 18 Sep 2013 - 1.9.2.RELEASE +1. 10 Sep 2013 - 1.9.1.RELEASE +1. 08 Sep 2013 - 1.9.0.RELEASE +1. 21 Aug 2013 - 1.8.1.RELEASE +1. 20 Aug 2013 - 1.8.0.RELEASE +1. 14 Aug 2013 - 1.7.2.RELEASE +1. 12 Aug 2013 - 1.7.1.RELEASE +1. 28 July 2013 - 1.7.0.RELEASE +1. 28 July 2013 - 1.6.1.RELEASE +1. 20 July 2013 - 1.6.0.RELEASE +1. 14 July 2013 - 1.5.0.RELEASE +1. 25 Jun 2013 - 1.4.1.RELEASE +1. 20 Jun 2013 - 1.4.0.RELEASE +1. 10 Jun 2013 - 1.3.0.RELEASE +1. 06 Jun 2013 - 1.2.1.RELEASE +1. 27 May 2013 - 1.2.0.RELEASE +1. 24 May 2013 - 1.1.4.RELEASE +1. 22 May 2013 - 1.1.3.RELEASE +1. 19 May 2013 - 1.1.2.RELEASE +1. 12 May 2013 - 1.1.1.RELEASE +1. 09 May 2013 - 1.1.0.RELEASE +1. 08 May 2013 - 1.0.1.RELEASE +1. 07 May 2013 - 1.0.0.RELEASE +1. 30 April 2013 - 0.12.1.beta +2. 30 April 2013 - 0.11.4.beta +1. 22 April 2013 - 0.12.0.beta +1. 17 April 2013 - 0.11.3.beta +1. 10 April 2013 - 0.11.2.beta +1. 05 April 2013 - 0.11.1.beta +1. 05 April 2013 - 0.11.0.beta + +16.03.03.RELEASE +============= + +This release contains following improvements and bug fixes + +Platform & API +New Features & Improvements + + - Self Service APIs to Submit/Update/Withdraw individual loan application + - Adding global config for 'interest charged from date' to be taken as disbursement date when it is not explicitly provided + +Bugs + + - [FINERACT-90] - adding a new tranche to an active loan is changing the disbursement amount + - [FINERACT-64] - If the charge created as Disbursement fee and Tranche loan with 2 tranche is disbursed, then charge is getting applied for the 2nd tranche also in trasactions page + +Community-app +New Features & Improvements + + - Initial commit for surveys + +Bugs + + - [MIFOSX-2645] - During Loan Provision Creation the GL from COA are not sorted as expected- all of them are displayed + - [FINERACT-88] - After editing the attached meeting to a Group displays startup page + +16.03.02.RELEASE +============= + +This release is being made to fix critical regression issue found by QA. Also 2 more major issues have been addressed. + +Platform & API + +Bugs + + - [MIFOSX-2626] - Repayment schedule generated for multi tranche loan is not proper + - [FINERACT-67] - undo last tranche not working + - [FINERACT-68] - validation for center meeting rescheduling(Should not allow to reschedule FRP of loans under that center + + 16.03.01.RELEASE +============= + +This release includes following features and Bug fixes as mentioned below: + +Platform & API + +New Features & Improvements + + - Added organization start date global configuration + - Center rescheduling + - Support for Interest Rate Charts based on amount + +Bugs + + - Infinite loop fix when retrying for loan schedular service + - Fix for repayment information + - [FINERACT-59] corrected interest calculation for flat loans + - [FINERACT-62] payment type applicable for disbursement charge configuration + +0.1.1-incubating +============= + +This release includes following features and Bug fixes as mentioned below: + +Platform & API + +New Features & Improvements + + - Renamed all Mifos related resources to apache + - Changed all source files to use Apache License, Version 2 + - Replaced incompatible dependencies + - Switched to Java 8 + +Bugs + + - For equal principal payments loans with Floating rates, on late repayment interest calculation is not proper- [MIFOSX-2435] - After waive penalty summary page is not displaying as expected in loan account + +16.01.2.RELEASE +============= + +This release includes following features and Bug fixes as mentioned below: + +Platform & API + +New Features & Improvements + + - Shares and Dividends - API Mockups + - Interest calculation on Overdraft + - Entity as client + - Added installment amount for period in schedule data + - [MIFOSX-SPM-4] - Eased survey handling for scorecard + - [MIFSX-SPM-5] - MifosX SPM 5 + - [CC-57] - Interest recalculation scheduler job enhancement + - [CC-36] - Loan Repayment Rescheduling while disbursement + +Bugs + + - [MIFOSX-2437] - Prepay of loan not working when first repayment date provided + - [MIFOSX-2435] - After waive penalty summary page is not displaying as expected in loan account + - [MIFOSX-2441] - Not able to prepay loan on the date of disbursement gives internal server error + - [MIFOSX-2390] - Not able to prepay loan with the installment fee attached + - [MIFOSX-2481] - After creating Closing entries for a branch, not able to add new tranche for the active loans from Loan tranche details page + - Fixes to make sure all Integration Tests pass as of this release + +Community-App + +New Features & Improvements + + - Added installment amount for period in schedule data + - Interest calculation on Overdraft + - Entity as client + +Bugs + + - [MIFOSX-2442] - After creating the floating rate it should not get activated by default + +16.01.1.RELEASE +============= + +This release includes Variable Installments Feature. +This release also includes many bug fixes as mentioned below. + +Platform & API + +New Features & Improvements +Following stories of Variable Installments Epic + - [MIFOSX-2254] - Capture data at product level + - [MIFOSX-2255] - Allow installment due dates to be modified + - [MIFOSX-2257] - Add additional installments + - [MIFOSX-2419] - Add "consider partial period interest" option to loan + - [MIFOSX-2256] - Allow installment amounts to be modified (either total installment or principal portion can be modified) + +Bugs + + - [MIFOSX-2207] - After Client transfer if loan repayment is done loan balance is displaying as negative in Transactions page + - [MIFOSX-2139] - Overdue Charges Not getting updated in repayment schedule after second tranche disbursement + - [MIFOSX-2160] - Not able to waive Charge displays internal server error + - [MIFOSX-2181] - Add Savings Fee Not working + - [MIFOSX-2189] - If %Approved amount Charge defined for multi tranche loan is calculating for %Disbursed amount + - [MIFOSX-2283] - Installment fee - Flat is not working as expected for multi tranche loans + - [MIFOSX-2284] - Not able to make loan repayment with the installment fees attached + - [MIFOSX-2285] - Overdue Charge with % Approved amount is not working as expected + - [MIFOSX-2286] - Overdue charge - Flat is not getting applied properly + - [MIFOSX-2290] - Penalties receivable is not displaying in Loan Transactions page for overdue loans. + - [MIFOSX-2292] - In Modify loan application not able to add any charges displayed internal server error + - [MIFOSX-2296] - Overdue charge applied as % Approved amount is collcting as % of Principal due in Loans + - [MIFOSX-2304] - Overdue charge is not getting applied properly + - [MIFOSX-2355] - For Floating interest - If expected disbursement date is modified during Loan approval then after disbursement interest is getting calculated wrt submitted date + - [MIFOSX-2356] - If the Expected disbursement date is modified during loan approval and the Loan is disbursed on the same date as modifed during approval then installment date is not getting updated as per disbursed date + - [MIFOSX-2358] - fix for last installment overdue charge + - [MIFOSX-2367] - For Yearly repayment if the Days in year is defined as 365 the interest is not getting calculated properly for loan with interest recalculation + - Retrofitted SPM API to ease the usage + - [CC-38] - adding client account no in client data + - [CC-32] - undo last tranche disbursal feature + - [CC-42] - adding new transaction date in collection sheet + - [CC-61] - validate holiday only once while doing repayment through collection + +Community-App + +New Features & Improvements +Variable Installments Feature + +Bugs + + - [CC-48] - enabling code values based on active or inactive status + - [MIFOSX-2412] - Floating Rate UI Enhancements + - [MIFOSX-2413] - Adding tooltip for floating interest rate screens + - [MIFOSX-2419] - UI Chages to add partial period interest calcualtion + - [MIFOSX-2282] - Some times after fetching the latest code interest type is missing out while creating the loan product + +15.12.2.RELEASE +============= +This release introduces Customer Self Service APIs. +This release also includes few bug fixes as mentioned below. + +Platform & API + +New Features & Improvements +Customer Self Service APIs + - [MIFOSX-1666] - Users as Clients + - [MIFOSX-2247] - Read List of Savings Accounts + - [MIFOSX-2246] - Read List of Loan Accounts + - [MIFOSX-2245] - User login and account management + - [MIFOSX-2243] - Manage User login accounts + - [MIFOSX-2248] - Read Loan details + - [MIFOSX-2249] - Read Savings details + - [MIFOSX-2370] - API for account transfer + +Bugs + - Changes to SPM framework fetch type + - [MIFOSX-2371] - Wrong Installment Calculation for equal installment declining balance - Hard coded number of days on year. + - [MIFOSX-2372] - Charge incorrectly applied in 'Update loan Summary' scheduled job + - [MIFOSX-2384] - After making loan repayment the the Total paid is not displaying properly if charge is attached to that loan. + - [MIFOSX-2385] - When request data of floating rate, server side send JSON data with locale specific format of date + - [MIFOSX-2388] - Frequency type isn't loaded during modifying loan application + + 15.12.1.RELEASE +============= +This release includes first part of Social Performance Management Framework. +This release also includes few bug fixes as mentioned below. + +Platform & API + +New Features & Improvements +Following stories of Social Performance Management Framework Epic + - [MIFOSX-1961] - Create new survey + - [MIFOSX-1962] - Add general information + - [MIFOSX-1963] - Add questions to a survey + - [MIFOSX-1964] - Add look-up tables + - [MIFOSX-1965] - Assign default look-up table + +Bugs + - [MIFOSX-2184] - As a user I want my penalties only to apply to new loans that go overdue + - [MIFOSX-2313] - Loan provisioning entries not getting created for multi tranche loans if first tranche disbursement date is back dated + - [MIFOSX-2322] - Template-User defined report is not working as expected + - [MIFOSX-2348] - incorrect error Insufficient account balance due to guarantors funds onhold + - [MIFOSX-2363] - Repayment schedule generated after early repayment with interest recalculation is not proper + - [MIFOSX-2368] - For the Multi tranche Loans with Equal Principal payments, last installment is not calculating properly + +Community-App + +Bugs + - [MIFOSX-2058] - Opening Screen for Non-Admin Users + - [MIFOSX-2327] - Does not come back to group, when cancel transfer clients + - [MIFOSX-2362] - Not able to save modify loan aplication after undo disburse and undo approval + +15.11.2.RELEASE +============= +This release introduces floating rates feature. +This release also includes few bug fixes as mentioned below. + +Platform & API + +New Features & Improvements + - [MIFOSX-1761] - Add support for floating interest rates for loan + +Bugs + - All issues found during testing of floating interest rates feature + - [MIFOSX-2328] - In Loan rescheduling if repayment date is changed the in Account details page Maturity date is not getting updated + +Community-App + +New Features & Improvements + - [MIFOSX-1761] - Add support for floating interest rates for loan + +Bugs + - [MIFOSX-2072] - 'validation.msg.invalid.decimal.format' Error in number fields in case the decimal symbol of current locale is comma + - [MIFOSX-2113] - Required some fields mandatory at the time of client creation + +15.11.1.RELEASE +============= +This release fixes critical issues in Loan Provisioning Feature and add some UI enhancements. +This release also includes few bug fixes as mentioned below. + +Platform & API + +New Features & Improvements + - [MIFOSX-2313] - All critical issues in Loan Provisioning + - [MIFOSX-2303] - Add Product/Branch/Category filtering to Loan Provisioning report + +Bugs + - [MIFOSX-2320] - Not able to make repayment after second tranche disbursement + - [MIFOSX-2045] - Clarify New Loan Repayment Strategy Wording + - [MIFOSX-2335] - fix removing a charge on a recalculateLoanSchedule + - [Mifosx-2334] - Meltdown in advanced accounting...sum of all charges is not equal to the fee charge for a transaction + +Community-App + + - Localisation updates + - [MIFOSX-2308] - Issues in Loan Provisioning Client Side + - [MIFOSX-2303] - Add Product/Branch/Category filtering to Loan Provisioning report + - [MIFOSX-2309] - By Clicking action not able to select product from "All Products" field in "Create Provisioning Criteria" page + - [MIFOSX-2170] - Error message displayed while creating the datatable is not proper + +15.10.2.RELEASE +============= +This release is made to fix a critical bug in loan provisioning. +Bugs + - [MIFOSX-2307] - Provisioning entries are not generated if tenant have group loans + +15.10.1.RELEASE +============= +This release introduces loan loss provisioning feature. +Performance improvements to interest recalculation and few more bug fixes are also part of this release. + +Platform & API + +New Features & Improvements + - [MIFOSX-1895] - Loan Provisioning + - [MIFOSX-2228] - Performance improvements to interest recalculation + +Bugs + - [MIFOSX-2271] - no journal Entry on already accrued fee which has been waived + - [MIFOSX-2289] - Journal Entry not created for new transaction when recalculate interest batch job is ran. + - [MIFOSX-851] - Validation of staff status during the client creation, loan creation etc workflow + - [CC-18] - Add loan pupose to balance outstanding report + +Community-App + - Localisation updates + - [MIFOSX-2081] - Dropdowns are using values directly from API instead of using translation + +15.09.4.RELEASE +============= +This release introduces linkage between loan repayment schedule and transactions. Also few bug fixes related to tranche loans. + +Platform & API + +New Features & Improvements + - [MIFOSX-2227] - Introduce Linkages between Loan repayment schedule and Transactions + +Bugs + - [MIFOSX-2240] - Charges added while submitting the loan application is not getting displayed after submitting the application for specified due date and Installment charges + - [MIFOSX-2258] - Do not allow rescheduling of loans which support interest recalculation and Tranche disbursement + - [MIFOSX-2259] - The tranche charge definition should allow only FLAT or PERCENT_OF_DISBURSEMENT_AMOUNT + +15.09.3.RELEASE +============= +This release adds Loan rescheduling feature and couple of bug fixes on repayments. + +Platform & API + +New Features & Improvements + - [MIFOSX-1523] - Loan rescheduling. https://mifosforge.jira.com/wiki/display/projects/Loan+rescheduling + +Bugs + - [MIFOSX-2123] - For Equal principal payments advance repayment with interest recalculation is not working as expected + - [MIFOSX-2209] - Reversing a repayment on a loan disbursed to a savings account reverses the amount disbursed to the savings account + + +Community-App + +New Features & Improvements + - [MIFOSX-1523] - Loan rescheduling. https://mifosforge.jira.com/wiki/display/projects/Loan+rescheduling + - Localisation updates from https://translatewiki.net. + +15.09.2.RELEASE +============= +This feature release adds optional support for Oauth2 . A bug fix for a regression issue around productive collection sheet is also shipped in this release + +Platform & API + +New Features & Improvements + - [MIFOSX-1746] - Oauth2 for the MifosX platform + +Bugs + - [MIFOSX-2199] - Not able to generate productive collection sheet displays internal server error + + +15.09.1.RELEASE +============= +Bug Release + +Platform & API + +Bugs + - [MIFOSX-2195] - Not able to submit the new loan application for a client with charges attached + +15.09.RELEASE +============= + +This Feature release ships work on new functionality like Client Fees, Per-tranche Loan charges and new set of Pentaho reports. + +Enhancements to the platform include the ability to configure rounding modes used throught the system, connecting to replicated servers for reporting , API's for updating details of external services (email, S3) and improvements around Seach API's and performance of certain batch Jobs. + +Please note that this release ships schema changes to the mifosplatform-tenants database. + +New Features & Improvements + + - [MIFOSX-2180] - One Time Client Fees + - [MIFOSX-1870] - Ability to collect charge on disbursement for tranche loans during each tranch disbursement + - [MIFOSX-2148] - Make Rounding Mode as configurable throughout Mifos + - [MIFOSX-2012] - Collection Report + - [MIFOSX-2013] - Disbursal Report + - [MIFOSX-2015] - Balance Outstanding Report + - [MIFOSX-2016] - Active loan Summary Per Branch + - [MIFOSX-2135] - Ability to read/update Organizational credentials (S3 account) + - [MIFOSX-2153] - Add ability to configure reports related requests to be directed to a seperate server instance + - [MIFOSX-2163] - Performance improvement for interest recalculation scheduler job + - [MIFOSX-2151] - Performance improvement for overdue charge scheduler job + - [MIFOSX-2152] - Performance improvement for Accrual scheduler job + - [MIFOSX-2166] - Move accrual job transaction scope from repayment schedule level to loan level + - [MIFOSX-2168] - Performance improvement for interest posting scheduler job + - [MIFOSX-1992] - Introduce account# for Group and Centers + - [MIFOSX-2038] - Search API should allow "exact" or "like" search + - [MIFOSX-2039] - Improvements to performance of Search API implementation + - [MIFOSX-2122] - Ability to export pentaho reports in Excel 2007 and above (xlsx) format + - [MIFOSX-2136] - Make Organizational email configuration editable + - [MIFOSX-2063] - Ship barebones database with every release + - [MIFOSX-1935] - Should allow to delete the role if the user attached with that role got deleted + - [MIFOSX-2157] - Add a column to the c_configuration table to mark some configuration as trap door + - [MIFOSX-1923] - Tranche loans should support disbursement fees with each disbursement + + +Bugs + + - [MIFOSX-1573] - when closed clients are activated again the closed on date should be null + - [MIFOSX-1578] - Not able to save collection sheet if any client having JLG loan with approved state under Group + - [MIFOSX-1581] - Interest is not getting calculated in JLG loan for backdated disbursement and meeting falls on future date + - [MIFOSX-1592] - Global Search on Group Loan Account Number doesn't work + - [MIFOSX-1636] - Loan with Moratorium on Principal / Interest (with interest recalculation) is displaying improper installments + - [MIFOSX-1658] - In center summary: Active clients loan is not working as expected + - [MIFOSX-1659] - client submitted date is not working as expected + - [MIFOSX-1712] - Not able approve the Tranche loan if the loan amount is modified during approval stage + - [MIFOSX-1765] - Changing future meetings is not working as expected for the rescheduled loans + - [MIFOSX-1773] - Multiple schedule being generated for a particular loan account. + - [MIFOSX-1775] - If calendar is created at Center level, should not allowed to edit the same in Group level + - [MIFOSX-1788] - Waive interest is not working as expected + - [MIFOSX-1874] - Staff Assigment History Report is missing + - [MIFOSX-1881] - Bugs With Centers + - [MIFOSX-1933] - View Standing instructions page displaying wrong destination + - [MIFOSX-2025] - Unable to access loan account page/loan page does not load after a multi-disbursal loan is disbursed + - [MIFOSX-2033] - Issues related to Manage roles and permissions functionality. + - [MIFOSX-2047] - Unable to Edit Hooks + - [MIFOSX-2049] - Not able to withdraw amount from savings account if product is defined as overdraft ( but Max Overdraft limit is not defined) + - [MIFOSX-2050] - Issue in running client loan Account schedule report + - [MIFOSX-2053] - After tranche loan disbursement not able to add tranche in "Add disbursement details" page + - [MIFOSX-2054] - No proper error message is displayed if "Deposit Frequency Same as Group/Center meeting" checkbox is selected for individual client while submitting the application. + - [MIFOSX-2061] - Charges For Savings are not office specific even office specific products are enabled + - [MIFOSX-2062] - Gradle task for restoring tenant databases does not work + - [MIFOSX-2065] - Date format not getting updated in User settings + - [MIFOSX-2067] - Localization for Angular Components does not work + - [MIFOSX-2074] - Reports API (Stretchy and Pentaho) set wrong mime-type for CSV exports + - [MIFOSX-2075] - Not able to view Repayment schedule during Modify + - [MIFOSX-2085] - If First repayment date is defined then interest is not getting calculated properly for early repayments with interest recalculation + - [MIFOSX-2096] - Loan purpose added while submitting the Bulk JLG Loan application is not getting reflected in Loan page + - [MIFOSX-2102] - Loan application "submittedOnDate" property compared with server date instead of tenant date + - [MIFOSX-2103] - Manage employees display is not working as expected + - [MIFOSX-2117] - Unable to create user - with auto email generate password option + - [MIFOSX-2118] - The Specific due date charge that is applied second is not collected in RBI Strategy for loans + - [MIFOSX-2121] - Active loan Report - Export CSV is not working as expected + - [MIFOSX-2129] - Submitting Collection sheet for zero repayments create an entry in Loan trasaction page + - [MIFOSX-2131] - Unable to do add journal entry (on Ubuntu) + - [MIFOSX-2138] - Not able to make repayment on any date between two tranches disbursed dates + - [MIFOSX-2143] - Manage datatables in demo version is not working as expected + - [MIFOSX-2158] - Commands Registry is not populated with all the CommandHandler implementations + - [MIFOSX-2165] - Not able to create loan with interest recalcualtion after 600 loans are created + - [MIFOSX-2169] - Not able to submit JLG Loan application displays internal server error + - [MIFOSX-761] - Data Import Tool Clients with same name are missing while downloading loan template + - [MIFOSX-2090] - Fix Typos with payment types documentation + + +Community-App + + - [MIFOSX-899] - Community App triggers authentication when running pentaho reports for the first time + - [MIFOSX-1607] - Filters on lists throughout Mifos X should retrieve all data that meets the filter criteria, not just the data already displayed. + - [MIFOSX-1939] - UI improvements for viewing loan and savings transaction reports and receipts + - [MIFOSX-2030] - UI for Maker/Checker & Roles Improvement + - [MIFOSX-2040] - Usability enhancements for Global Search + - [MIFOSX-2083] - UI improvements for List Standing Instructions page + - [MIFOSX-2100] - Dropdowns in the report must be searchable while executing the report + - [MIFOSX-2101] - Capitalization of 'pagination: Previous' in Keyboard Shortcuts + - [MIFOSX-2105] - Active Status Color should be Light Green or Florescent Green + - [MIFOSX-1258] - No option to translate system defined dropdowns as value is directly used instead of code + - [MIFOSX-1582] - Users "Sign In" but "Log Out"—make sign/log in/out terminology consistent + - [MIFOSX-2055] - User not able to approve loan for a client with Loan approve permissions + - [MIFOSX-2044] - Demo System Log In Page Improvements + +15.03.1.RELEASE +============= +This minor release ships new functionality like the ability to create loans products whose interest compounding periods may be different from their rest periods and +allowing extension of repayment schedule for daily loans when repayments fall on holidays along with a number of bug fixes and improvements to the Community app. + +Important note on API breaking changes for app developers: As a part of the changes made for MIFOSX-2036, Group and center template API's no longer return details of "clientOptions" and "groupMemberOptions". +You are requested to use /clients and /groups API's with the newly introduced query parameter "orphansOnly" for retrieving details of Clients and Groups which may be associated with particular Groups and Centers respectively. +Sample usage of the same can be found on the "manage members" section on the Group profile screen and "Manage Groups" section of the Center profile screen + +Platform & API + +New Features & Improvements + + - [MIFOSX-1951] - As a operations manager, I want to define loan products that allows interest compounding period to be different from rest period + - [MIFOSX-1983] - Allow extending repayment schedule for Daily loans when repayments fall on holidays + - [MIFOSX-2035] - Add new boolean parameter orphansOnly to retrieve all clients API + - [MIFOSX-2002] - allow search client by mobile_no + +Bugs + - [MIFOSX-1831] - Journal entries for "Overpayment Liability" is not getting created for Periodic and Upfront accounting + - [MIFOSX-1955] - Cashier transaction beyond specified date should not be displayed for particular cashier in Teller cash management + - [MIFOSX-2004] - Not Able to modify Loan Application After Undo Disbursal And Undo Approval with Guarantor Attached + - [MIFOSX-1988] - Tranche loan Summary displays entire approved amount as disbursed amount even though the second and higher tranches are not yet disbursed. + - [MIFOSX-1995] - Prepay of loan with Grace on Interest is not working as expected + - [MIFOSX-1891] - Problem with scheduling day loan repayments + - [MIFOSX-1668] - Non-working day's repayment activity + - [MIFOSX-2007] - Unable to list Hooks defined in the system + - [MIFOSX-2032] - Teller Cash Management not handling multiple currencies accurately + - [MIFOSX-2037] - Payment type is not getting displayed in Individual collection sheet + - [MIFOSX-2043] - Password preferences API does not support Localization + - [MIFOSX-2046] - overpaid loans don't get transferred along when transferring of clients + - [MIFOSX-1956] - Accounting multi-currency opening balance + - [MIFOSX-2036] - Refactoring Groups and Centers API - removing clientOptions and groupMemberOptions for template true + +Community App + - [MIFOSX-1596] - If a stretchy report's query is modified and submitted, it does not save the modified query. It shows the previously defined query. + - [MIFOSX-1982] - Formatting issues with Stretchy reports + - [MIFOSX-1985] - Unable to create weekly meetings with recurrence of every 4 weeks + - [MIFOSX-1986] - Editing a meeting redirects to home page + - [MIFOSX-1991] - Client Transfer - should allow selecting any group in the particular office + - [MIFOSX-2008] - Enable Vietnamese (ti?ng Vi?t) on the community App + - [MIFOSX-2028] - Dynamic Typeahead for Manage Members and Groups + - [MIFOSX-1979] - Introduce Better pagination for Groups and centers + - [MIFOSX-1980] - Display Account Id and External ID for groups on Group search screen + - [MIFOSX-1993] - Create GL Account - improve order of fields + - [MIFOSX-1286] - Expand the scope of the "Filter by name/account#/staff/office" filter to filter all data rather than just the data visible on a page. + - [MIFOSX-1996] - Issues with search in Client listing page + - [MIFOSX-1999] - Issues related to Working days functionality + - [MIFOSX-2000] - Not able to edit loan product when recalculate interest is enabled and Frequency of compounding != None + - [MIFOSX-2022] - Force password reset days is not working as expected + - [MIFOSX-2023] - Force password reset - issue 2 + - [MIFOSX-2026] - Issues with editing system reports + - [MIFOSX-2029] - Small typo on passwordpreferences screen + +15.03.RELEASE +============= + +This feature release ships new functionality like Collection sheets for Individual loans along with performance improvements around batch jobs and various enhancements to the community app. + +Enhamcements to the the loans module include the ability to round off installments, fix EMI's for non-tranche loans, improved flexility for pre-closure, ability to specify which loan product attributes may be overridden at an indivdual account level and greater flexibility around editing tranche definitions during loan approval and disbursal. + +Recurring deposits have been enhanced to support open-ended deposits (no maturity amount or period) + +Beta API's shipped in this release add the functionality for setting opening balances for GL accounts and Entity mapping (can be used to map products and charges to Offices or Roles) + +Note that this release moves "Payments types" from Code values to thier own tables, custom reports and queries might be affected as a result of the same + + +Platform & API + +New Features & Improvements + + - [MIFOSX-1742] - Collection Sheet facility for individual loans. + - [MIFOSX-1464] - Loan repayment - Rounding off + - [MIFOSX-1844] - Last installment amount should not exceed the specified EMI amount. + - [MIFOSX-1667] - As a system Administrator, I must be able to decide which attributes of a loan product may be overridden by the loan account + - [MIFOSX-1918] - Allow full installment interest to be collected at time of pre-closure of loan + - [MIFOSX-1868] - Ability to have user passwords never expire + - [MIFOSX-1823] - Add facility to print receipts for all transactions for Savings + - [MIFOSX-1875] - Enforce strict password policies in the system + - [MIFOSX-1824] - Ability to allow user to change Tranche amount during loan approval stage. + - [MIFOSX-1897] - As an accountant I want to be able to see all journals related to a specific loan or savings + - [MIFOSX-1850] - Recurring deposits without maturity date/amount + - [MIFOSX-916] - Ability for Client Loan repayments rounding off to the multiples of 10s or 100s + - [MIFOSX-1159] - Allow Opening Balances to be set for GL (General Ledger) Accounts + - [MIFOSX-1842] - Improvements to disbursal of tranche loans + - [MIFOSX-1480] - Create an API for associating and diassociating groups from centers + - [MIFOSX-1877] - Allow end-user to reconfigure working-days for the institution + - [MIFOSX-1947] - Add API to allow capturing Staff images + - [MIFOSX-1670] - Require modification/deleting of created Role + - [MIFOSX-1817] - Teller Cash Management - capture Currency for Settle and Allocate transactions + - [MIFOSX-1624] - Ability to writeoff loan on the same date of last transaction. + - [MIFOSX-1904] - Move Payment Types to their own table + - [MIFOSX-1846] - Feature to display and print Loan Transaction Receipt + - [MIFOSX-1786] - Allow usage of UGD (Templates) for Hooks + - [MIFOSX-1758] - Make the dist ZIP include the community-app in apps/ so that it works OOB + - [MIFOSX-1908] - Configurable retries on CannotAcquireLockException or ObjectOptimisticLockingFailureException + - [MIFOSX-1613] - The overdue status of a loan should appear only when the principal outstanding from the running schedule is greater than the principal outstanding from the original schedule when compared on current date. + +Bugs + + - [MIFOSX-1116] - Wrong maturity amount is shown when closing recurring deposit account + - [MIFOSX-1481] - you cannot write off a loan after making a repayment + - [MIFOSX-1729] - Installment amount exceeds the specified emi amount if there are multiple disbursals before the first repayment date. + - [MIFOSX-1776] - Group loan application synk repayment with meeting is not working as expected + - [MIFOSX-1808] - After moving the group from one center to another "Center Summary" is not geting updated + - [MIFOSX-1809] - Closure reason created for Group is displaying in Closure reason for Centers while closing the Center. + - [MIFOSX-1830] - Print report icon is not visible in UI for savings transaction receipt and receipt is coming for reverse transaction + - [MIFOSX-1836] - Can't Transfer Clients between Groups + - [MIFOSX-1839] - Issue related to Show Payment Details in Loans and Savings account Transactions + - [MIFOSX-1847] - Data tables - can be deleted - even if data exists + - [MIFOSX-1859] - no error indication while doing duplicate entry of one client identifier's Unique ID in another client's identifier's ID + - [MIFOSX-1860] - Not able to disburse Second Tranche loan if First repayment date is defined. + - [MIFOSX-1864] - cannot remove all Mappping Fees,Penalties to Income Accounts + - [MIFOSX-1866] - Guarantor Release funds causes 500 error + - [MIFOSX-1878] - Savings account timeline does not include the data of the user that activated the account + - [MIFOSX-1884] - Unable to create a loan account with given loan product definition (tranche loan) + - [MIFOSX-1885] - Not able to disassociate a Client from attached Group even if he is not having any active JLG loans under that Group + - [MIFOSX-1892] - Issues related to Teller/Cashier Management + - [MIFOSX-1905] - Consistency w.r.t spelling "principalThresholdForLastInstalment" for loan products + - [MIFOSX-1914] - Not able to create loan product with "Principal Threshold (%) for Last Instalment" field added + - [MIFOSX-1915] - Repayment schedule is not getting generated as per loan term, rather displaying more term with principal due + - [MIFOSX-1926] - https://github.com/openMF/community-app/issues/1285 + - [MIFOSX-1940] - Accounting running balance job hangs when updating 400,000 or more entries + - [MIFOSX-1942] - Edit Tranche option in community app takes you to the wrong page + - [MIFOSX-1943] - UI issue in Loan Tranche Details tab - Edit tranche icon is not displayed + - [MIFOSX-451] - Not able to close the loan earlier than its scheduled date. + - [MIFOSX-1759] - Manage Group under center and Manage member under Group pages are not working as expected + - [MIFOSX-1766] - Issues related to Assign and Unassign staff for Savings account + - [MIFOSX-1941] - Incorrect GL Account running balance figures + - [MIFOSX-1948] - Period accruals jobs does not handle Timezones correctly + + +Community app + + - [MIFOSX-1888] - Allow a UI configuration to specify which fields should be editable/read only/hidden on the loan account creation page + - [MIFOSX-1139] - Cleaner error message when Community app tries to connect to an Invalid Platform URL + - [MIFOSX-1825] - Add feature to bulk create loans (group wise) + - [MIFOSX-1232] - Inconsistent terminology in Loan Product creation regarding loan cycle / borrower cycle + - [MIFOSX-1293] - Add select all option to Pending Tasks in Checker Inbox and Tasks + - [MIFOSX-1312] - When viewing a group loan, the group name does not display + - [MIFOSX-1903] - Enable easier view of Journal entries created by loan transactions on the Community Application + - [MIFOSX-1555] - UI updates to Group screen and applying number formats across the community app + - [MIFOSX-1787] - Audit trails - Advanced search is not working as expected + - [MIFOSX-1685] - Improve browser-back navigation + - [MIFOSX-1690] - Huge dropdown list during account transfers + - [MIFOSX-1693] - Chart of Accounts - display improvements + - [MIFOSX-1605] - In Edit Recurring deposit product page not able "For Pre-mature Closure: on" field is not working + - [MIFOSX-1617] - Better pagination service + - [MIFOSX-1621] - Manage Members on group profile does not behave properly when adding first client to a group + - [MIFOSX-1754] - Typo in Create Loan Product >> Accounting >> Cash (should be losses written off) + - [MIFOSX-1583] - "Help" menu choice on mifos menu should be renamed or linked to the User Manual + - [MIFOSX-1590] - Moving icons on Accounting Menu page distracting + - [MIFOSX-1602] - Including Mifos X release details in Community-App as about info + - [MIFOSX-1793] - Typo's in index.html + - [MIFOSX-1833] - In the Add journal entry - Drop down accounts should be sorted with respect to gl code + - [MIFOSX-1920] - Hiding Of Deleted Guarantors + - [MIFOSX-1777] - Add tooltips for Fixed and Recurring Deposit product labels + - [MIFOSX-1778] - Add tooltips for Loan Product Field labels Pt. 1 + - [MIFOSX-1779] - Add tooltips for Loan Product Field labels Pt. 2 + - [MIFOSX-1780] - Add tooltips for Loan Product Field labels Pt. 3 + - [MIFOSX-1781] - Add tooltips for New Loan Account labels + - [MIFOSX-1783] - Add tooltips for Savings Product labels + - [MIFOSX-1785] - Add tooltips and glossary entires for global configuration and savings accounting labels + - [MIFOSX-1849] - Parse Error in Console while viewing a Group + - [MIFOSX-1696] - UI Improvements to Manage Roles and Permissions + - [MIFOSX-1911] - Deposit Account On Hold Transactions + - [MIFOSX-1858] - Smoother sidebar transition on mouseout + - [MIFOSX-1872] - Drop down for Account Transfers is not working + - [MIFOSX-1640] - Provide select-all checkbox when managing permissions for role + - [MIFOSX-1912] - Chrome browser - Language issue(Date format) + - [MIFOSX-1544] - While creating a Group under center should not allowed to ask for office again + - [MIFOSX-1822] - Create Sub ledger account is not working as expected + - [MIFOSX-1900] - List Keyboard shortcuts + - [MIFOSX-1960] - Add ID and External ID in Center Listing page + - [MIFOSX-1256] - Filter charge and overdue charges drop-down lists to display only valid charges (matching currency) + - [MIFOSX-1899] - Payment Details for "Frequent Postings" are not stored in the database. + - [MIFOSX-1876] - Client attendance details submitted in collection sheet is not getting updated in database + - [MIFOSX-1954] - Start date and end date got interchanged while creating the teller + - [MIFOSX-1958] - Payment details is not getting displayed if any transaction detail is viewed from Search Journal entry screen + + +1.26.0.RELEASE +============= +This feature release adds support for capturing guarantee requirements for loans and blocking/holding funds in guarantor accounts. It also includes various enhancements like the addition of new statuses for client life cycle, ability to map liability accounts to fees, ability to update deposit amounts for active recurring deposits and the ability to capture client images from a linked webcam along with a number of other improvements and bug fixes + + +Platform & API + +New Features & Improvements + + - [MIFOSX-1662] - Adding new statuses to Client lifecyle + - [MIFOSX-1663] - Add more flexibility for center/group meeting reschedule + - [MIFOSX-1584] - Option to set "minimum days between disbursal and first repayment" + - [MIFOSX-1641] - Configure Guarantor requirements for loan product + - [MIFOSX-1675] - Add support to capture guarantee details for loans + - [MIFOSX-1709] - Workflows for holding and releasing funds on savings account linked as guarantee to loan accounts + - [MIFOSX-1728] - Introduce tenure Min/Max constraints for Tranche loans + - [MIFOSX-1639] - Auto create standing instruction at loan disbursement + - [MIFOSX-1700] - Need ability to update deposit amounts for non interest bearing Recurring deposits + - [MIFOSX-1727] - Option to make Calendar Mandatory when disbursing JLG loan + - [MIFOSX-1068] - Option to change approved amount during loan approval + - [MIFOSX-1175] - Ability to transfer loan officer to a group + - [MIFOSX-1523] - Loan rescheduling + - [MIFOSX-1514] - Refund for Active Loans + - [MIFOSX-1463] - Keep track of manually reversed/adjusted loan repayments + - [MIFOSX-1511] - Custom Formats for Client number and account number + - [MIFOSX-1630] - Bit and DateTime data type support in DataTable API + - [MIFOSX-1619] - Add MifosX Eclipse preferences file into source control + - [MIFOSX-1642] - add sub status to client + - [MIFOSX-1628] - Log current user for loan and deposit transactions + - [MIFOSX-1634] - Add option to account fees as liabilities + - [MIFOSX-1638] - Waiving charges attached to zero balance installments - Loan Rescheduling + - [MIFOSX-1738] - Create dev and production profiles for Gradle build + - [MIFOSX-1566] - Constraint for minimum/maximum number of client in a active group + - [MIFOSX-1680] - Option to change center meeting frequency and intervals + - [MIFOSX-1674] - Allow the description field added to m_code_value to be edited/entered + - [MIFOSX-1739] - Loan Products with close date in the past should not appear in loan account creation dropdown + +Bugs + + - [MIFOSX-1699] - Concurrent Savings transactions are not handled correctly + - [MIFOSX-1550] - No check for NULL principal amount when creating journal entry for loan write-off + - [MIFOSX-1625] - Can't disburse loan with charges configured for periodic accruals + - [MIFOSX-1633] - Newly added pentaho reports are missing read permissions + - [MIFOSX-1655] - Updating a loan (with charges attached) after submitting throws an error + - [MIFOSX-1656] - Bulk JLG Loan application is not working as expected + - [MIFOSX-1661] - Some details provided in the Loan Product page is not displaying in the New loan application page + - [MIFOSX-1671] - User with "ALL_FUNCTIONS_READ" permission does not have access to /users/{userId} resource + - [MIFOSX-1676] - Issues with Interest posting on Fixed deposit Account + - [MIFOSX-1704] - makercheckers endpoint broken for non-superuser roles + - [MIFOSX-1747] - Issues with logging on the MifosX platform after Spring boot update + - [MIFOSX-1760] - For JLG Loans sync repayment with meeting is not working as expected after loan Approval + + +Community App + + - [MIFOSX-1645] - In UI should not allowed to send multiple requests by submitting request for multiple times for same action + - [MIFOSX-1564] - Ability to Capture Client Image from webcams on the Community App + - [MIFOSX-1745] - Community app does not allow deleting client images + - [MIFOSX-1684] - Default current date for activation dates and submission dates + - [MIFOSX-1687] - In search screens, retain the search criteria during browser navigation + - [MIFOSX-1692] - Tree view of Chart of Accounts and Offices to have "Expand All" option + - [MIFOSX-1591] - The +JLG Loan Application on the view group page has a different colored background color than other actions in the system. + - [MIFOSX-1443] - By Clicking on client having Image/Signature, authentication page displays + - [MIFOSX-1556] - AdHoc query Search always give error when 'summary' button is clicked + - [MIFOSX-1043] - Community app does not support datatables with bit, DateTime fields + - [MIFOSX-1559] - Issues related to Manage Groups in Centers and Manage Clients in Groups + - [MIFOSX-1239] - Allow tab out from calendar control (to improve data entry efficiency) + - [MIFOSX-1529] - Showing Today's Date in Datepicker + - [MIFOSX-1546] - Improve UI for Global Configuration + - [MIFOSX-1284] - Sort entries in selection lists alphabetically + - [MIFOSX-1713] - Ability to hide values in "Approved Amount" and "Disburse Amount" for the loans under submitted and pending approval state + - [MIFOSX-1533] - Advanced Search + - [MIFOSX-1551] - System -> Audit trails- search is not working as expected + - [MIFOSX-1644] - Loans transactions history does not hide transactions which have been undone + - [MIFOSX-1730] - Unable to create Tranche loans on the community app when using a Date format other than 'dd MMMM yyyy' + - [MIFOSX-1772] - By clicking on the meeting details in Group page (under Center and meeting assigned at center level) displays calendar does not exist error message + - [MIFOSX-1575] - Reversing a journal entry does not ask for confirmation. + - [MIFOSX-1677] - When moving clients between groups, display customer ids for easier identification + - [MIFOSX-1768] - Clean up Loan product creation screen + + +1.25.1.RELEASE +============= +Bug Release + +Platform & API + +New Features & Improvements + - [MIFOSX-1466] - Savings interest posting - Should be flexible + - [MIFOSX-1632] - Fine tuning of Accrual transactions with interest recalculation + +Bugs + - [MIFOSX-1586] - Applying overdue charge for a loan with interest recalculation causes the application to create multiple schedules for the same loan account + - [MIFOSX-1589] - Support for Charge and interest waivers with Accrual accounting + - [MIFOSX-1595] - Periodic accrual is posting wrong interest when run multiple times in a repayment period + - [MIFOSX-1606] - Closing savings account throws null pointer exception + - [MIFOSX-1608] - Rounding issue in periodic accrual for loan accounts with Decimal Place as Zero. + - [MIFOSX-1612] - If a loan disbursal is undone, then the journal entries created for the accrued interest on that loan is not being reversed. + - [MIFOSX-1631] - Not able to disburse loan with installment fees attached + +Community App + - [MIFOSX-1626] - Pagination Issue in Audit Trails Search + - [MIFOSX-1604] - Community app always uploads signature to the "default" tenant, similar issues exists with loan documents + +1.25.0.RELEASE +============= +This feature release ships various enhancements like interest recalculation for loans with configurable rest definitions and compounding options, point in time accruals, improved pre-payment functionality, batching API calls and support for Hooks along with a number of updates to the Community app and bug fixes. + +New Features & Improvements + + - [MIFOSX-580] - Add support for 'pure' declining balance + - [MIFOSX-1442] - Support for Webhooks + - [MIFOSX-1188] - GSOC Project: Batch API + - [MIFOSX-1420] - Add pre-payment functionality + - [MIFOSX-1537] - Add display of original Schedule for interest recalculation + - [MIFOSX-1526] - Add future installments display for interest first repayment strategies + - [MIFOSX-1416] - Add batch jobs to run accruals with specific periodicity + - [MIFOSX-1417] - Add API to add accrual transactions till specified date + - [MIFOSX-1418] - Recalculate and adjust accruals for back dated entries + - [MIFOSX-1252] - Add API's for assigning and unassigning Staff for savings account (along with tracking assignment history similar to loans) + - [MIFOSX-1265] - Ability to capture "External ID" for Savings account + - [MIFOSX-1315] - Global search should search for saving account number and external id fields + - [MIFOSX-1395] - Add Loan/Savings Product Short Name in ClientAccounts Response + - [MIFOSX-1397] - Added Submitted date on loan transaction and saving transaction + - [MIFOSX-1400] - User should be able to modify client submission date + - [MIFOSX-1415] - Modify loan and Add Accrual Transactions batch job to capture last accrued date + - [MIFOSX-1468] - Add a "joining date" field for staff + - [MIFOSX-1522] - Add loan running balance to transactions + - [MIFOSX-1470] - Increase column length to 200 for COA name field + - [MIFOSX-1434] - Populate Submitted On date for Create Client with default date as current date + + +Bugs + + - [MIFOSX-1145] - Update data table throws "Data truncation: Invalid use of NULL value" SQL error + - [MIFOSX-1424] - Opening and closing of Overdraft account + - [MIFOSX-1184] - BeanCurrentlyInCreationException: Error creating bean with name 'schedulerStopListener': Requested bean is currently in creation: Is there an unresolvable circular reference? + - [MIFOSX-1291] - Overdue Fees + - [MIFOSX-1368] - In Loans excess repayment is not getting repaid properly if Repayment Strategy is RBI + - [MIFOSX-1410] - Should not allow to close Client with -ve account balance (Overdraft account) + - [MIFOSX-1411] - Withdraw of amount in RD account results in null point exception + - [MIFOSX-1426] - Issues related to Loan Collaterals + - [MIFOSX-1429] - Loans incorrectly classified as NPA + - [MIFOSX-1452] - Active Client Loan not correct when there is a group loan + - [MIFOSX-1453] - When transferring a client with a loan status as overpaid to another branch the loan status is changed to active instead of overpaid + - [MIFOSX-1467] - Periodic accrual accounting is not working properly if the gap between loan approved and disbursement date is more + - [MIFOSX-1483] - Not able to submit Recurring deposit account application if "Deposit Frequency" is defined as days + - [MIFOSX-1500] - Some fields for loan in the client page loan section not populate/displayed. + - [MIFOSX-1501] - Fixing Issues related to clean shutdown of Mifos Server: AbandonedCleanupThread and Quartz scheduler worker Threads. + - [MIFOSX-1513] - If more than one repayment is done on today's date (i.e sysdate) loan got closed with overpaid status + - [MIFOSX-1517] - For Tranche Loans interest is getting calculated with respect to the Approved amount than Disbursed amount + - [MIFOSX-1528] - Missing Documentation: For Assign and Unassign Loan Officer + - [MIFOSX-1531] - Not Appearing Loan Approval and Loan Disbursal in Checker Inbox & Tasks + - [MIFOSX-1539] - In Loan account "First repayment on" is not working as expected + - [MIFOSX-1547] - Interest is getting calculated for the non Disbursed amount in Tranche loan if one of the repayment date and 2nd Tranche disbursement date is today + - [MIFOSX-1549] - For JLG Loans repayments are not syncing with the meeting dates if disbursement date is other than meeting date + - [MIFOSX-1554] - Not able to withdraw amount from savings account having sufficient balance + - [MIFOSX-1557] - No Journal entries are created if accounts are being mapped in 'Advance Accounting Rule" (Issue found only in Accrual Accounting) + - [MIFOSX-1561] - In Tranche Loan should not allowed to repay second Tranche amount if only first Tranche is disbursed + - [MIFOSX-1563] - For Loans, generated schedule is incorrect after the first repayment + + +Community App + + - [MIFOSX-1020] - Improvements in User profile page + - [MIFOSX-1037] - Need thousands separator for amounts + - [MIFOSX-1425] - Bulk JLG Loan Applications + - [MIFOSX-1534] - Limited Date Formats + - [MIFOSX-1497] - Loan Category under Loan purpose + - [MIFOSX-1516] - High CPU Usage from "grunt serve" + - [MIFOSX-1437] - Center Screen Layout Changes + - [MIFOSX-1438] - Groups Screen Layout Changes + - [MIFOSX-1374] - Improvements to Chart of Account UI + - [MIFOSX-1308] - The labels for collateral attributes are inconsistent on different pages. + - [MIFOSX-1031] - UI related Issues + - [MIFOSX-1290] - Correctly spell Installment Fee under Charge time type + - [MIFOSX-1432] - Minor layout fixes to Organization Admin screens + - [MIFOSX-1446] - In "Client savings transaction" page ( transaction page -> Export) different client name is displaying + - [MIFOSX-1465] - UI and Label related issues + - [MIFOSX-1430] - Activities search bar on home page doesn't populate with available activities or actually search + - [MIFOSX-1433] - Products Views layout changes. + - [MIFOSX-1455] - In Centers -> View Centers -> Create Group page members added is not displaying properly in Group General page + - [MIFOSX-1325] - Add ability to attach a group to a center + - [MIFOSX-1482] - Improve work-flow for adding Clients to a Group during its Creation + - [MIFOSX-1574] - Unable to search for GL Accounts by GL Codes in "Add Journal Entries" + + + +1.24.0.RELEASE +============= +This feature release ships improvements to savings accounts including support for weekly fees and minimum balance for interest calculation along with a number of bug fixes and minor enhancements + +Also note that issue https://mifosforge.jira.com/browse/MIFOSX-1364 introduces an API breaking change. + +Platform & API + +New Features & Improvements + + - [MIFOSX-1392] - Add minimum balance support for interest calculation + - [MIFOSX-1161] - Add minimum balance to savings product and accounts + - [MIFOSX-1235] - Saving charges with weekly frequency + - [MIFOSX-1275] - Improve logging for Standing Instructions + - [MIFOSX-1398] - Add an option for balance withdrawal on closing of savings account + - [MIFOSX-1324] - Support for server side Image resizing + +Bugs + + - [MIFOSX-1364] - Checker permissions should have _CHECKER appended to the Action name + - [MIFOSX-1157] - API Document updates related to recurring deposit extensions + - [MIFOSX-1200] - In Fixed deposit on premature closure withdrawal amount is calculating incorrectly + - [MIFOSX-1204] - Missing documentation related to optional parameter "multiRow" while Creating Data tables + - [MIFOSX-1272] - Percentage of Fee amount on Loan disbursement should calculated with respect to actual disbursed amount than approved amount + - [MIFOSX-1302] - Organization currencies can be deleted even when they are associated with active loan/savings products or charges + - [MIFOSX-1339] - Reinvest of Term deposits should not be allowed on premature closure + - [MIFOSX-1340] - In Recurring deposits for Mandatory savings, activation of account and deposits not getting scheduled with meeting dates + - [MIFOSX-1341] - Withdrawal is not possible in active recurring deposit if "Allow withdrawal" checkbox is selected while submitting the application + - [MIFOSX-1351] - Charge on activation attached to a saving product is not creating journal entry while creating a client with active savings account + - [MIFOSX-1353] - Monthly charges attached to an active savings account is not getting collected on due date + - [MIFOSX-1357] - Repayment reschedule to next meeting date is falling on Non working day in Loan repayment schedule + - [MIFOSX-1358] - If repayment reschedule date is defined as holiday, then also repayment falls on that date + - [MIFOSX-1359] - Code Duplication in multiple classes: Re-factor and cleanup as necessary + - [MIFOSX-1365] - Not able to disburse Loan with backdated (borrower loan counter included) for the client who already having active Loans ( borrower loan counter not included) + - [MIFOSX-1366] - Incentive value defined for Gender in Fixed and Recurring deposit product is displaying improper value on submitting account for a client + - [MIFOSX-1369] - Undo disbursal of Loan is not getting updated in "Amount Disbursed for Today" home page + - [MIFOSX-1394] - For overdraft account interest is not posting properly for the +ve balance after repayment of dues + - [MIFOSX-1399] - Creating new Guarantor for loan account crash if the loan already has existing guarantor + - [MIFOSX-1401] - Allow value 0 for inArrearsTolerance when editing loanAccount + - [MIFOSX-1349] - In Client savings account -> Chages page - Monthly charges is not updating properly + - [MIFOSX-1403] - Closing of Fixed deposit creates double journal entries + +Community App + + - [MIFOSX-1142] - Ability to zoom-in client's photo in the community-app + - [MIFOSX-1158] - Allow upload of a client's signature & preview of the same + - [MIFOSX-1348] - Implementation of sorting options for transaction preview tables for Fixed deposits and Recurring deposit accounts + - [MIFOSX-1333] - Usability related issue in Frequent posting and Add journal entry pages + - [MIFOSX-1396] - Improper error message is displayed on trying to delete the used code values. + - [MIFOSX-1404] - Not able to add Group to the Center + - [MIFOSX-1367] - Merge Landing Page and Dashboard for the Community App + - [MIFOSX-1371] - Improvements to Add Journal Entries screens + - [MIFOSX-1373] - Improvements to Search Journal Entries screens + - [MIFOSX-1375] - Improvements to Accounting Closure screens + - [MIFOSX-1376] - Improvements to Accounting Rules screens + - [MIFOSX-1414] - Add change password button in user profile screen + - [MIFOSX-1413] - Populate date for collection sheet with default date as current date + - [MIFOSX-1362] - After Loan disbursement for a client in Transaction page displaying "Accrual" in transaction type for interest + - [MIFOSX-1388] - UI related issues due to bootstrap upgradation + - [MIFOSX-1390] - Term deposits - UI related issues + - [MIFOSX-1391] - Duplicate Client Creation Forms + - [MIFOSX-1218] - Make view of action to be verified more readable for checker + +1.23.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-1336] - Mifos X Generates Incorrect Repayment Schedules for Loans + + +1.23.0.RELEASE +============= +This feature release contains works around adding support for opening fixed deposits from existing savings accounts, transferring interest from fixed deposits to savings Account, accounting improvements for account Transfers, ability to collect "recovery payments" for written off Loans, flexible interest rate charts with the ability to provide incentives based on customer attributes along with a number of bug fixes + +Platform & API + +New Features & Improvements + + - [MIFOSX-1163] - Add support for opening fixed deposits from existing savings account + - [MIFOSX-1182] - Add support to transfer interest from fixed deposit to linked savings account + - [MIFOSX-695] - Clean up Account Transfers functionality implementation + - [MIFOSX-281] - Add ability to enter a 'recovery repayment' on written off loan + - [MIFOSX-1227] - Option to set staff as active/inactive + - [MIFOSX-1024] - Add support to decline maker checker + - [MIFOSX-709] - Ability of Not allow to Close Client with the Loan status "Overpaid" + - [MIFOSX-982] - Add ability to associate a staff to user + - [MIFOSX-1203] - Add batch job to update status from Active to Matured in Fixed deposits + - [MIFOSX-1313] - Add support to use incentives for interest rate chart + +Bugs + + - [MIFOSX-1019] - transferring a client with a savings account not approved yet crashes + - [MIFOSX-1099] - Added validation that compound period falls within posting period + - [MIFOSX-1107] - Transaction balance end day calculated wrongly after interest posting in recurring deposit account + - [MIFOSX-1115] - Withdrawal posted twice when closing matured recurring deposit account + - [MIFOSX-1150] - Issue where null pointer exception was thrown after enabling cash based accounting for recurring deposit account + - [MIFOSX-1151] - Issue where expected first deposit date was not updated when recurring deposit account was edited + - [MIFOSX-1162] - Undo disbursal failing for loans which have overdue charges + - [MIFOSX-1187] - Not able to submit Fixed deposit application if the Maximum deposit term is not defined in Product level + - [MIFOSX-1183] - replaced fields in loans api transactions part (loanTransactionType.invalid) + - [MIFOSX-960] - Lefthand navigation menu shouldn't collapse automatically + - [MIFOSX-1300] - Should not allowed to transfer fund from Savings account to an active Fixed deposit account + - [MIFOSX-1200] - In Fixed deposit on premature closure withdrawal amount is calculating incorrectly + - [MIFOSX-1288] - For FD and RD transfer to savings account on premature closure is not working as expected + - [MIFOSX-1242] - For update fixed deposit product - "View Audit entry" page displays other improper details along with the output + - [MIFOSX-1243] - Not able to create Fixed deposit account for a client if Maker checker task is enabled. + - [MIFOSX-1244] - Details displayed in "Waiting For Checker Approval" page after creating Recurring Deposit is not proper + - [MIFOSX-1245] - Not able to create Recurring deposit account for a client if Maker checker task is enabled. + - [MIFOSX-1260] - Not able to create a client with the savings account attached + - [MIFOSX-1268] - In demo version Transactions created by activation of savings account while creating client is not proper + - [MIFOSX-1270] - In Savings account Journal entries are not mapping properly because of the charges attached on activation. + - [MIFOSX-1274] - Standing Instructions fail if the savings account had gone to negative balance during account creation + - [MIFOSX-1318] - Not able to Generate collection sheet for the defined meeting date + - [MIFOSX-1238] - Error while running Pentaho reports in MySQL 5.6+ with strict mode enabled + - [MIFOSX-1208] - Issue on Retrieving Datatable entries for Office. + - [MIFOSX-1215] - Not able to approve/delete maker checker tasks with checker user role + - [MIFOSX-1237] - Able to login with Deleted user + - [MIFOSX-1335] - Not able to close FD and RD accounts, displays "account is not active" error message + +Community App + + - [MIFOSX-1233] - When assigning staff to Centers, Groups, Client, Loan, Savings a/c: Only loan officers who belong to the branch should be displayed in dropdown + - [MIFOSX-1154] - Usability issues while editing data tables + - [MIFOSX-1164] - Clean up login page transition + - [MIFOSX-1320] - Force logout on the community app on tab/window close + - [MIFOSX-1263] - Client/Loan Account info table takes up too much space + - [MIFOSX-1039] - Provide option for External ID to Loans + - [MIFOSX-1069] - Implementation of sorting options for transaction preview tables for savings or loans. + - [MIFOSX-1207] - Journal Entries - should have debits before credits + - [MIFOSX-1209] - In Loan repayment schedule page "Waive" column should be introduced + - [MIFOSX-1226] - UI improvements in Fixed deposits + - [MIFOSX-1254] - The UI for defining/managing charges, refers to loan products only. Charges may be set up for other products. + - [MIFOSX-1255] - Overdue charges do not appear in UI in loan product edit mode + - [MIFOSX-1256] - Filter charge and overdue charges drop-down lists to display only valid charges (matching currency) + - [MIFOSX-1257] - When creating charges, charges may be associated with either Loan or Saving, but Saving apply to Fixed and Recurring Deposits as well. + - [MIFOSX-1259] - Need space between icons and text + - [MIFOSX-1267] - Loan writeoff screen should display Writeoff amount + - [MIFOSX-1294] - Ability to hide " Add Fee Frequency " field for Loan charges except for Overdue fees + - [MIFOSX-1297] - In Saving product creation page settings is not working as expected + - [MIFOSX-1299] - Not able to add cash based accounting in Edit Fixed deposit product + - [MIFOSX-1196] - In fixed deposit product not able to "Edit Interest Rate Chart" displays improper error message + - [MIFOSX-1198] - Mobile Number field in Community App should be Text instead of Numeric field + - [MIFOSX-1282] - UI related issues in FD, RD, Loan and Savings products + - [MIFOSX-1276] - Not able to save Edit loan product page with Accounting "None" + - [MIFOSX-1279] - Deposit frequency is missed in Create and edit Recurring deposit product + - [MIFOSX-1280] - "Locking period frequency" is displaying improper values after submitting the Fixed deposit application and Recurring deposit application for a client + - [MIFOSX-1281] - In cash based accounting for loan products "Over payment liability" GL accounts are not displaying in dropdown + - [MIFOSX-1314] - Transfer of overpaid Loan amount to Savings account navigates to a page displays without entries + - [MIFOSX-1327] - Date format modified in settings is displaying "invalid date format" error while adding charge to savings account + - [MIFOSX-1328] - UI related issues + - [MIFOSX-1217] - Overdue charges added while creating the loan product is not displaying in Edit loan product page. + - [MIFOSX-1219] - Unable to make datatable entries for manually registered datatables + - [MIFOSX-1221] - External ID added while creating the center is not displaying in center general page + - [MIFOSX-1240] - Gender drop down menu does not display when editing client information + - [MIFOSX-1331] - For saving charges in Edit charge page Dropdown of "Charge calculation" is displaying Loan charge related inputs + + +1.22.0.RELEASE +============= +This feature release contains work around Fixed deposits with interest slabs , recurring deposits, accrual accounting (upfront and periodic accrual) for loan products including the ability to categorize loans as Non Performing Assets, standing instructions, ability to disburse loans to linked savings accounts and upgrading the community app to Bootstrap 3. + +Important: Table `m_savings_account_transfer` has been dropped as a part of the work around Standing instructions. The database changes may be viewed at https://github.com/openMF/mifosx/blob/master/mifosng-db/migrations/core_db/V160__standing_instruction_changes.sql. + +Platform & API + +New Features & Improvements + - [MIFOSX-1111] - Add Support for Term Deposits or Fixed Deposits or Time Deposits + - [MIFOSX-1112] - Add Support for Recurring Deposits + - [MIFOSX-1049] - Ship sample Data with every stable release + - [MIFOSX-1065] - In saving product, need quarterly, biannually, yearly option for interest compounding. + - [MIFOSX-1081] - Ability to Categorize Loans as Non Performing Assets (NPA) + - [MIFOSX-865] - Accrual Accounting support for Loan Products + - [MIFOSX-1055] - Add Standing Instructions for account to account transfer + - [MIFOSX-1146] - add support for disbursing loan amount to savings account + - [MIFOSX-1094] - Passing Tenant Database host, port and credentials to Pentaho reports + - [MIFOSX-1008] - No Interest posting on saving account when Interest is set @ 0% + - [MIFOSX-1075] - Add overdue penalty batch job in DB and handle exceptions in batch job + - [MIFOSX-1035] - JUnit Integration Test Cases for Charges + - [MIFOSX-1046] - JUnit test cases for code and code values API's + - [MIFOSX-1047] - JUnit test cases for Scheduler Jobs API's + + +Bugs + - [MIFOSX-886] - In Modify Loan application adding charge on specified due date/Overdue fees results in Unknown data integrity issue + - [MIFOSX-998] - Should not be allowed to activate Group/Center and associate clients under group with out permissions. + - [MIFOSX-1021] - Not able to view particular charge details attached for savings account + - [MIFOSX-1027] - Potential issues with maker-Checker functionality + - [MIFOSX-1036] - Not able to generate Pentaho report added for client's Loan and saving transactions page + - [MIFOSX-1056] - Improper error message is displayed after clicking on "Repayment info" button while submitting the tranche loan application for a client with insufficient input + - [MIFOSX-1076] - In Modify Loan application if the Loan amount is modified, the % Charge on disbusement is not modifying accordingly. + - [MIFOSX-1077] - In Client loan page after submitting the Loan application if the %amount charge is edited then it is not getting calculated properly + - [MIFOSX-1053] - Not able to pay overdue savings charges through Schedular Job. + + +Community App + - [MIFOSX-962] - Upgrade to Twitter Bootstrap 3 + - [MIFOSX-1048] - Gmail Like Loading Progress Bar during application load + - [MIFOSX-965] - Community app should "respond" to fill entire screen + - [MIFOSX-1064] - Remove Gray "frame" around page data so as to match with the background. + - [MIFOSX-1072] - Ability to view error log details of individual run in View history page of a particular Schedular Job page + - [MIFOSX-1057] - New Collection Sheet UI changes + - [MIFOSX-1022] - Improvements In savings account for a client + - [MIFOSX-1058] - Not able to create holiday because of issue with the checkbox while selecting the office + - [MIFOSX-1073] - Issue with respect to View a particular Charge details in Loan and savings accounts + - [MIFOSX-1042] - UI related issues with respect to Datatables + - [MIFOSX-1041] - Issue related to Collection sheets + - [MIFOSX-1090] - Added overdue penalties is not displaying in loan repayment schedule + - [MIFOSX-1095] - Not able to assign Moratorium for Interest in new loan application page for a client + - [MIFOSX-1144] - Not able make/edit/read datatable entries even though user have proper permissions + + + +1.21.0.RELEASE +============= +This Feature release adds support for Automated Penalties for loans and externalizes the MySQL connection properties for a tenant along with other major fixes and improvements + +Important: Those updating from an existing installation to 1.21.* release or higher should run the update https://github.com/openMF/mifosx/blob/develop/mifosng-db/migrations/list_db/V2__externalize-connection-properties.sql on `mifosplatform-tenants` schema + +Platform & API + +New Features & Improvements + - [MIFOSX-1025] - Implement Overdue Penalties with recurrence and percentage based approach + - [MIFOSX-949] - Externalizing the PoolConfiguration of data source per tenant + - [MIFOSX-994] - Allow all savings account's(remove constrain for overdraft) as client default account + - [MIFOSX-1015] - Need to Add Pentaho report which generates data for client saving transactions transaction and loan repayment schedule + - [MIFOSX-1010] - stretchy report converted into Pentaho reports + - [MIFOSX-986] - transferring of clients in same group but different loan officer + - [MIFOSX-1013] - Add loanId and clientId in makercheckers api return + - [MIFOSX-942] - Moving savings products and savings accounts api documentation out of beta + - [MIFOSX-993] - JUnit Integration Test Cases for Group Savings + - [MIFOSX-1003] - JUnit Integration Test Cases for Accounting with Savings + - [MIFOSX-1012] - JUnit Test Cases for Fund Transfer in Savings + - [MIFOSX-1026] - JUnit Integration Test Cases for Global Configurations + - [MIFOSX-941] - Api Documentation for modify loan application is missing + + +Bugs + - [MIFOSX-835] - For a Client (member of 2 Groups) taken JLG loan from 1 group, repayment amount is displaying in collection sheet of other Group + - [MIFOSX-880] - In new JLG Loan application interest on first repayment is not getting calculated as per Disbursement date + - [MIFOSX-909] - For the Loan under pending approval stage - modifications in the charges is not getting updated in "outstanding" column + - [MIFOSX-996] - Not able to modify Loan application through API + - [MIFOSX-1014] - approving maker checker for repayment and adjustments for work throws a 500 error + +Community App + - [MIFOSX-1002] - Issues with Angular JS and Require JS load on the community app + - [MIFOSX-957] - Dashboard reports wont work when connected to MIfos X backend other than https://demo.openmf.org + - [MIFOSX-1018] - User with all permission not able to change password of his own + - [MIFOSX-956] - Ability to print Repayment Schedule in active loan + - [MIFOSX-1005] - Improvement with respect to Accounting pages + - [MIFOSX-1016] - Cleaning XBRL reports ui(inline styles) + - [MIFOSX-990] - Navigation page is not working as expected + - [MIFOSX-999] - Issues with User Generated Documents + - [MIFOSX-953] - Associating checkbox to jobs are not working as expected. + - [MIFOSX-972] - Log in screen freezing problem + + +1.20.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-995] - Grace periods not working when actualDisbursementDate != expectedDisbursementDate + +1.20.0.RELEASE +============= +Feature Release + +Platform & API + +New Features & Improvements + - [MIFOSX-216] - No. of days overdue before In Arrears Not in Mifos X + - [MIFOSX-992] - Password Expiry and Idle user Logout + - [MIFOSX-974] - Integration test cases for Savings functionality + +Bugs + - [MIFOSX-814] - Not able to create user with the current API parameters + - [MIFOSX-877] - Retrieve Loan by external ID results in 500 error in API + - [MIFOSX-879] - Sorting and Ordering not working on Loan as per API Documentation + - [MIFOSX-930] - In modify loan application (Undo disbursal - Undo approval) not able to delete the charges added before. + - [MIFOSX-945] - Not able to adjust the minimum opening balance amount in transactions page of savings account results in "Null point exception" + - [MIFOSX-955] - Error in Aging Detail stretchy report + - [MIFOSX-948] - No links to User Generated Documents in the api docs (called templates) + + +Community App + - [MIFOSX-979] - show hide elements on user interface based on user permissions + - [MIFOSX-975] - Clearly represent Loans In Arrears in the Community app + - [MIFOSX-976] - Support editing values for global configurations + - [MIFOSX-985] - Implementing user permissions for scheduler job + - [MIFOSX-989] - Make easy to select particular entity in a table + - [MIFOSX-947] - Issue with checkboxes because of upgradation in Angular JS + - [MIFOSX-973] - Templates functionality is broken after Angular upgrade + - [MIFOSX-977] - Not able to view data in stretchy reports if duplicate values present in JSON array + - [MIFOSX-980] - issue with first repayment on the same day of disbursement + - [MIFOSX-981] - Not able to enter data into data tables for code values + - [MIFOSX-983] - Stretchy reports export csv including old results + - [MIFOSX-987] - Not able to add member under Group with the backdated. + - [MIFOSX-991] - Submit button is not working in currency configuration page + - [MIFOSX-907] - In Edit Datatable page "new name" is not working as expected + - [MIFOSX-909] - For the Loan under pending approval stage - modifications in the charges is not getting updated in "outstanding" column + - [MIFOSX-915] - Not able to submit the JLG loan application if "Interest charged from" field is attached + - [MIFOSX-919] - Charge on specified due date, added while submitting the loan application is not reflecting in preview repayments page + - [MIFOSX-952] - Not able to assign Moratorium for Interest in new loan application page for a client + +1.19.0.RELEASE +============= +Feature Release + +This feature release adds the ability to associate current accounts with clients along with other improvements and enhancements + +Platform & API + +New Features & Improvements + - [MIFOSX-931] - Add current account support (overdrafts) for savings + - [MIFOSX-932] - Basic Savings reports + - [MIFOSX-939] - Order of Saving transactions + +Bugs + - [MIFOSX-884] - Charges removed in Modify loan application is not getting deleted after saving the application. + - [MIFOSX-911] - Not able to edit client without passing name details + - [MIFOSX-929] - User with no permission to activate the client is able to activate successfully while creating the client. + + +Community App + - [MIFOSX-933] - Update to latest version of Angular and fix all observed issues + - [MIFOSX-946] - Loan purpose is not captured for Group and JLG loans + - [MIFOSX-864] - Improvements with respect to Closed Loans/Closed Savings + - [MIFOSX-935] - Improvements to view particular transaction details in transaction page (Loan/savings) + - [MIFOSX-937] - Ability to display Loan status in Client loan page + +1.18.0.RELEASE +============= +Feature Release + +This feature release ships the first implementation of Tranche Loans functionality along with various bug fixes and minor improvements + +Platform & API + +New Features & Improvements + - [MIFOSX-92] - Tranche Loans + - [MIFOSX-869] - Correct spelling mistakes observed in MifosX schema + - [MIFOSX-902] - Generate Productive Collection sheet based on office, meeting date, loan officera search parameter + - [MIFOSX-872] - Capture Payment Type while creating a journal entry + - [MIFOSX-888] - Early Payment repayment strategy + - [MIFOSX-923] - Missing entity status in search resultset + +Bugs + - [MIFOSX-847] - For a Client - 2nd loan(with same product) is not getting incremented as per Borrower Cycle. + - [MIFOSX-867] - If a loan is created with first repayment on date, upon approving if loan is disbursed on other than expected disb date, schedule is not updated + - [MIFOSX-870] - For Disbursed Loan - charge collected on disbursement is not reflecting in Loan summary page.(After running "Update Loan Summary" in schedular job) + - [MIFOSX-895] - Checkbox for "Terms vary based on loan cycle" only controls display and not the desired principal definition + - [MIFOSX-896] - Missing permission for "savingsaccountcharge" endpoint + - [MIFOSX-897] - Missing _CHECKER permission for CREATE_JOURNALENTRY + - [MIFOSX-900] - Deactivating a charge with assigned products causing integrity issues in product mapping + - [MIFOSX-901] - "BIT" datatype/columntype missing displaytype, throws "error.msg.invalid.lookup.type" error message + - [MIFOSX-904] - Loan disbursement checks cause corrupted schedule + - [MIFOSX-906] - Scheduler job exception for post interest for savings + - [MIFOSX-914] - Global configuration page is not working as exptected + - [MIFOSX-920] - Not able to submit the Tranche Loan application for the higher amounts (in Crores) + - [MIFOSX-921] - While submitting the Tranche Loan for a client Improper error message is displaying rather displaying for proper inputs + - [MIFOSX-922] - In Modify application page for Tranche Loans if the Installment amount is modified then Last repayment amount is more than defined. + +1.17.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-827] - Not able to disburse loan with the percentage charges applied while submitting the loan application. + - [MIFOSX-860] - NOt able to reject the loan application with status "Submitted and pending for approval" + - [MIFOSX-873] - Get clients by office id API is returing HTTP Status 500 + - [MIFOSX-875] - Attach duplicate mobile number while creating Client results in Unknown Data Integrity Issue + - [MIFOSX-876] - Retrieve Loan by Loan account number returns all loan account in API + - [MIFOSX-878] - Not able to use created datatable for a client results in Forbidden error + - [MIFOSX-882] - API doccument related Issues + - [MIFOSX-883] - Additional fields added in Edit datatables (for client) page is not woking as expected + - [MIFOSX-912] - Client Loan amount is not getting rounded off even if "Currency in Multiples Of" is set as 100 in loan product. + +1.17.0.RELEASE +============= +Feature Release + +This feature release contains some API breaking changes around charges, loans and savings products (introducing mandatory short names) along with improvements around Collection Sheet, introducing the ability to activate/inactivate Staff and other Bug fixes + +Platform & API + +New Features & Improvements + - [MIFOSX-831] - Collectionsheet improvements to make data entry easy + - [MIFOSX-832] - Options to set short name for loan, charge and saving products + - [MIFOSX-845] - Option to activate or inactivate a staff + - [MIFOSX-849] - Update search API to include group external Id as a search parameter + - [MIFOSX-866] - Return Transaction Type of loan or savings transaction associated with a journal entry + +Bugs + - [MIFOSX-720] - In modify loan application (Undo disbursal - Undo approval) if charge to be collected from savings is deleted then not able to save the application. + - [MIFOSX-819] - Not able to modify Loan application after undo disburse once one of the charge paid. + +1.16.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-802] - Loan life cycle is not considered in validations for loan operations + - [MIFOSX-812] - Journalentries Api is not returning currency while retrieving transactions + - [MIFOSX-825] - Timeline is not displaying while fetching the details of created centers + - [MIFOSX-830] - APIs are returning invalid commandId for all actions when maker-checker is enabled. + - [MIFOSX-834] - Reports-Loan products are not listing for currency ALL(Active Loans - Summary) + +1.16.0.RELEASE +============= +Feature Release + +This feature release adds support for undoing loan write-offs along with a couple other improvements + +Platform & API + +New Features & Improvements + - [MIFOSX-796] - Allow undo of write off transaction (disallow undo or change of any other transaction when loan is written off) + - [MIFOSX-824] - Add pagination to Audits endpoints + - [MIFOSX-826] - Add holiday status in response data + +1.15.2.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-816] - Future loan amounts should be with respect to Loan cycle (not to be confused with borrower cycle) + - [MIFOSX-818] - Not able to retrieve Global Configurations through API + - [MIFOSX-820] - Fix spelling mistakes in permissions for better Display on community app + - [MIFOSX-821] - Null pointer exception while disbursing the loan + - [MIFOSX-822] - Backdated transaction that results in transaction reversals does not create journal entries for new transactions + + +1.15.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-801] - Clean up implementation of [MIFOSX-765] + - [MIFOSX-805] - Terms vary based on loan cycle is not getting updated in Edit Loan Product page. + - [MIFOSX-810] - Unhandled API error while creating multiple users with same name + - [MIFOSX-811] - Repayment schedule dates for Loan disbursement after undo disbursal is not proper + - [MIFOSX-744] - Implementation of mifosx-735 should be optional + +1.15.0.RELEASE +============= +Feature Release + +This feature release contains some API breaking changes around loan and savings products in relation to the accounting section of their respective APIs. Some small improvements are also bundled into this release. + +Platform & API + +New Features & Improvements + - [MIFOSX-569] - Calculate future loan amounts or installments based on previous loan cycle. + - [MIFOSX-744] - Implementation of mifosx-735 should be optional + - [MIFOSX-790] - Need ability to be able to link accounting journal entries with the additional payment details captured in m_payment_detail table + - [MIFOSX-792] - Improve penalties introducing a redemption periods for MFIs that dont input data same day. + - [MIFOSX-794] - Add roles list to /users endpoint + - [MIFOSX-795] - Clean up API around Loan/ Savings product creation for consistency and better usability + + +Bug + - [MIFOSX-798] - Read not working for holidays and API documentation not updated + - [MIFOSX-800] - Scheduler job is failed, if no accounting data is available. + + +1.14.0.RELEASE +============= +Feature Release + +This feature release adds support for per installment fees for loans, introduces the ability to edit/delete existing holidays and other improvements around Calendar (recurring meetings) functionality. + +Platform & API + +New Features & Improvements + - [MIFOSX-693] - Holidays cannot be edited or removed + - [MIFOSX-730] - Implement "per installment fee" for Loans + - [MIFOSX-649] - (Meeting) Calendar Improvements + - [MIFOSX-682] - Data Validation & Helpful Developer Messages for Meetings + - [MIFOSX-754] - Mobile phone number(s?) fields on Client & Staff on core database (not custom data tables) + - [MIFOSX-765] - Add Timeline to the clients and groups api + - [MIFOSX-119] - Spike: Produce boilerplate shell on platform/API for Outbound SMS Integration + +Bug + - [MIFOSX-769] - Loans product: Min & max are not working as expected for Principal, No. of repayments & interest + - [MIFOSX-784] - API - Client under pending status doesn't allow future activation date + + +1.13.4.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-763] - Organization Running balance on /glaccounts is incorrect for uncalculated entries + - [MIFOSX-764] - Journal entries are not returned in correct order making running blance nonsensical + - [MIFOSX-766] - Add and delete charge is not reflecting the schedule till loan disburse + +1.13.3.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-740] - In Savings account monthly charge Recurrence Start month should be after activation of the account + - [MIFOSX-757] - updating charges + - [MIFOSX-759] - Retrieving journal entry information by transactionId is not gauranteed to return journal entries from same transaction + - [MIFOSX-760] - Updating a charge does not evict the cache resulting in incorrect data returned from platform + - [MIFOSX-762] - SubmittedBy User not stored when creating savings accounts + +1.13.2.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-721] - "Interest charged from" is not working as per expected + - [MIFOSX-722] - Due amount in Repayment installments are not equal + - [MIFOSX-729] - Flat - Daily is not working as expected + - [MIFOSX-749] - Scoping of clients by office hierarchy no longer works + - [MIFOSX-750] - Scoping of clients by search term (to search any name part) no longer works + +1.13.1.RELEASE +============= +Bug Release + +Bugs + - [MIFOSX-715] - NPE getting client image + - [MIFOSX-733] - 500 exception when not passing a note during undo of disbursement + - [MIFOSX-734] - Add further detail on the 'repayment strategies' concept + +1.13.0.RELEASE +============= +Feature Release + +This Feature Release adds support for min and maximum caps on % based charges for loans. + +Platform & API + +New Features & Improvements + + - [MIFOSX-437] - Minimum and maximimum caps on % based charges + - [MIFOSX-747] - Update AMI and AMI related docs on readme + - [MIFOSX-748] - Improve API documentation around charges + +1.12.0.RELEASE +============= +Feature Release + +This Feature Release adds support for Monthly fees for savings along with minor bug fixes + +Platform & API + +New Features & Improvements + - [MIFOSX-728] - Extend Recurring fees for Savings + - [MIFOSX-735] - add organizationRunningBalance and runningBalanceComputed to /glaccounts API output + +Bug + - [MIFOSX-639] - loan transactions - externalId duplicates not being caught by exception + - [MIFOSX-723] - In Savings, not able to adjust the transaction for the amount deposited as "Minimum opening balance" + - [MIFOSX-732] - Payment type need not be specified for charges for savings products + + +1.11.1.RELEASE +============= +Bug Release + +Platform & API + +New Features & Improvements + - [MIFOSX-726] - Add missing savings charges details to api doc + +Bug + - [MIFOSX-727] - Loan Write off account not being persisted on creating a new Loan Product + +1.11.0.RELEASE +============= +Feature Release + +This Feature release ships various improvements to the configurable fees functionality for savings, ability to consolidate running balances for Journal entries (both at a Branch and an Organizational Level) and various bug fixes + +Platform & API + +New Features & Improvements + - [MIFOSX-435] - Capture derived/running balances for Journals + - [MIFOSX-656] - Ability to Map specific savings fees to specific income accounts + - [MIFOSX-690] - Accounting Not Done for over-payments and related work-flows (transfer overpaid amount to savings) + - [MIFOSX-697] - Move existing withdrawal fees and Annual fees for savings into the configurable fees workflow + +Bug + - [MIFOSX-687] - In View/Edit Savings Product not able to remove the charge added while defining the product. + - [MIFOSX-688] - Transaction Number for accounting needs to have guaranteed uniqueness + - [MIFOSX-689] - Ensure account Transfers (Savings to Loans etc) point to the right Loan Transaction + - [MIFOSX-691] - Clean up current Configurable Savings Fees functionality + - [MIFOSX-692] - Savings account accepting multiple currency charges + - [MIFOSX-699] - Duplicate entry in accounting table for disbursement fee through linked savings account + - [MIFOSX-718] - Not able to "Pay Annual Fee" and "Post Interest" for savings account through Schedular Jobs + - [MIFOSX-719] - Savings account with min. opening balance if Annual fee is deducted on account activation date then interest is not getting posted. + +Reference App + - [MIFOSX-673] - Receipt number displayed in Client Transactions history table / Journal + +1.10.3.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-679] - Not able to Create holiday through API + - [MIFOSX-694] - Unable to view users when caching is enabled + - [MIFOSX-696] - Declining balance - Equal principal payments(Daily) is not working as expected. + - [MIFOSX-716] - When updating details related to roles (name, permissions) - the incorrect cached details are returned for cached users + - [MIFOSX-717] - Register/Deregister data tables not working with constraint based approach + +Reference App + - [MIFOSX-698] - Unable to save the created permissions for created Role + + +1.10.2.RELEASE +============= +Bug Release + +Platform & API + +New Features & Improvements + - [MIFOSX-664] - Client transfer workflow change + +Bug + - [MIFOSX-677] - No mention of 'transfersInSuspenseAccountId' parameter in API docs + - [MIFOSX-684] - Default transfersInSuspense Accounts set incorrectly for existing Saving Products + - [MIFOSX-685] - Debit and Balance displayed for active savings account after a transfer in Transactions tab is incorrect + - [MIFOSX-686] - Configurable fees payment does not return FeesDeduction as true + + +1.10.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-675] - Not able to create savings account with/without charges. + - [MIFOSX-680] - Duplicate entries for Payment channels to Fund source mapping + +Reference App + - [MIFOSX-683] - Update Reference UI to allow manual payments of Loan fees from savings + + +1.10.0.RELEASE +============= +Feature Release + +This feature release ships a tighter integration between Loans and Savings (ability to pay Loan Charges from Savings) , introduces configurable fees for savings and adds the ability to Transfer clients with active savings accounts across branches along with a couple of bug fixes + +Platform & API + +New Features & Improvements + - [MIFOSX-642] - Allow charges for a loan to be deducted from savings of the client + - [MIFOSX-643] - Transfer Clients with Savings accounts between Branches + - [MIFOSX-644] - Configurable Fees for savings + +Bug + - [MIFOSX-662] - Not able to define "Transfer in Suspense" in cash based accounting for Savings product. + - [MIFOSX-674] - Not able to disburse the Client's loan if charges attached to that loan is transfered from Savings account + + +1.9.2.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-659] - Not able to transfer Client between Branch offices which were created under same parent office. + - [MIFOSX-663] - No API documentation on Holidays or Working Days features + - [MIFOSX-671] - "Minimum opening balance" assigned is not displaying as balance in Transaction page after activation of savings account + - [MIFOSX-672] - Final installment of FLAT interest loans incorrectly has closing loan balance thats greater than zero. + +Improvement + - [MIFOSX-669] - Ability to not allow to "close" a client while transfer of client is in progress + + +1.9.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-647] - Transfered amount in Loan account transaction page should not be allowed to Edit/Delete + - [MIFOSX-648] - User with no read permissions should still be able to fetch their own user account data + - [MIFOSX-658] - Unable to update existing Loan Products in demo server + +Reference App + - [MIFOSX-655] - Client Closure reason added in code values is not displayed in dropdon list of Client Close page + + +1.9.0.RELEASE +============= +Feature Release + +This feature release ships various improvements to the core portfolio modules like adding the ability to close a savings account, reactivate a savings account by undoingingediting transactions, transferring money from overpaid loan to savings accounts, closing group accounts, transferring clients with active loans between groups and across branches and adding ability to capture attendance through the collection sheet along with various bug fixes + +Platform & API + +Bug + - [MIFOSX-611] - Not able to reassign loan from one loan officer to other in Bulk Loan Reassignment page + - [MIFOSX-613] - Not able to assign Loan officer after submitting the Group Loan Application. + - [MIFOSX-615] - regression issue fixes for integration test + - [MIFOSX-624] - Applying Annual Fee results in Savings Account Having a Negative Balance + - [MIFOSX-627] - End of day balance is calculated incorrectly for same day transations which results in negative interest been calculated + - [MIFOSX-628] - The default Annual fee due on date is not displaying future date in case provided + - [MIFOSX-635] - Currency in multiples of 1000 returns an an invalid integer error in edit saving product + - [MIFOSX-640] - Approve Transfer Client button + - [MIFOSX-517] - If "Code" is added and defined in "Create Data Table" and utilized for a client and then if that code is deleted wrong entry is displayed in Client's page + +New Features & Improvements + - [MIFOSX-547] - Client, Group and Center Transfers + - [MIFOSX-567] - External Id work for migration + - [MIFOSX-596] - Support ability to transfer money from overpaid loan accounts to savings accounts + - [MIFOSX-619] - Support ability to close an existing active savings account + - [MIFOSX-436] - Transfer clients between loanofficers, groups and branches + - [MIFOSX-607] - Capture attendance through collectionsheet + - [MIFOSX-622] - Savings transfers involving a withdrawal should not auto apply withdrawal fees if configured for account + - [MIFOSX-625] - Support ability to close a group + - [MIFOSX-634] - Support ability to undo/reverse transactions for the Savings account in closed state and activate again + - [MIFOSX-440] - Meeting calendar clean up + +Reference App + - [MIFOSX-612] - Not able to configure Maker Checker Tasks in UI + - [MIFOSX-646] - Client "Close" tab is not working + - [MIFOSX-618] - Not able to add permisons for the new role created. + +1.8.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-617] - Unable to create a new Loan Application + + +1.8.0.RELEASE +============= +Feature Release + +This feature release ships various improvements to the savings module (including ability to transfer funds from a savings accounts to another savings/loan accounts, adjust deposits/withdrawals, batch jobs for posting interest etc), ability to capture attendance details against center/group meetings, updates to the scheduler to run in a clustered environment and the beta release of the transfers functionality (with support for transferring clients with active accounts between groups and transferring clients with closed accounts between branches) + +Platform & API + +New Features & Improvements + - [MIFOSX-310] - Generate Collection sheet based on meeting calendar dates + - [MIFOSX-357] - Add Assign staff functionality to Group API call + - [MIFOSX-433] - Allow rounding of loan schedules and charges to multiples of 100's or 1000's + - [MIFOSX-441] - Synch JLG loans first repayment date with meeting dates + - [MIFOSX-586] - Support ability to adjust/edit an existing savings transaction + - [MIFOSX-591] - changes to group loan API + - [MIFOSX-599] - Ability to add savings account details in Group Summary Page. + - [MIFOSX-602] - Display transaction ID after applying withdrawal/repayment/etc. + - [MIFOSX-605] - add support for scheduling to work in clustered mode + - [MIFOSX-159] - Add batch job for posting of interest to savings accounts + - [MIFOSX-432] - Support ability to transfer money from savings account to other savings accounts + - [MIFOSX-496] - Capture Client Attendance details + - [MIFOSX-574] - Add support for Savings accounts at the Center level + - [MIFOSX-575] - Add support for Savings accounts for Groups + - [MIFOSX-595] - Support ability to transfer money from savings account to loan accounts for purposes of making a repayment + +Reference App + - [MIFOSX-609] - Show "Add Holidays" link in demo server + +1.7.2.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-606] - Unable to activate client from pending state + +1.7.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-538] - Search is displaying duplicate result if acct number is part of client name + - [MIFOSX-554] - In Group loan if meeting dates are getting rescheduled frequently, the repayment is getting extended. + - [MIFOSX-555] - Return write-off date and transaction history for written off loans + - [MIFOSX-581] - Batch job is starting even when scheduler is in suspended state + - [MIFOSX-589] - Adjust Transactions accepts Holidays and non working days. + - [MIFOSX-597] - Closed client under Group applying for JLG loan + - [MIFOSX-598] - Closed client under Group applying for New Savings Account + - [MIFOSX-600] - Allowing to Disassociate a client from the Group who is having a active savings account under that Group + +New Features & Improvements + - [MIFOSX-428] - Add user giving invalid emailid error + +1.7.0.RELEASE +============= +Feature Release + +This Feature Release ships a stable version of the Scheduler and Product mix functionality along with minor updates to Savings functionality + +Platform & API + +Bug + - [MIFOSX-397] - Annual fee collection date is displaying on 2nd year of opening/activation date of savings account. + +New Features & Improvements + - [MIFOSX-495] - Client performance History + - [MIFOSX-565] - Support ability to undo/reverse transactions even when the loan is in closed state + - [MIFOSX-563] - Repayment strategy is not displayed in loan account details page + - [MIFOSX-548] - A holiday's "Reschedule Repayment to" date should not be a non-working day + - [MIFOSX-506] - Batch Job Implementation - Part 2 + - [MIFOSX-478] - Product Mix Functionality + - [MIFOSX-470] - Avoiding Deletion of active Charge which was already assigned to a Loan product. + - [MIFOSX-428] - Add user giving invalid emailid error + +Reference App + - [MIFOSX-561] - Add loan cycle and loan product cycle details to Client Summary + +1.6.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-485] - In Groups -> Group loan under "Submitted and pending approval" state -> "Change loan application" page,not able to edit/update "Sync repayments with meeting" and "Loan term" fields. + - [MIFOSX-564] - Create data table does not work for attached request + +Reference App + - [MIFOSX-560] - In "Modify Application page" if Product is changed, it not getting updated in Loan account overview list + +1.6.0.RELEASE +============= +Feature (and Bug) Release + +This Feature release focussed on various improvements to the Savings functionality as requested by Musoni, support for defining working days and the beta version of the batch jobs scheduler along with minor bug fixes + +Platform & API + +Bug + - [MIFOSX-400] - If one withdrawal is made between two deposits and amount equal to sum of 2 deposits it is accepting, (Though all 3 transactions happened in different dates) + - [MIFOSX-404] - In Transactions -> Savings account activity table interest displayed is inconsistent. + - [MIFOSX-412] - If only interest amount is balance in savings account, Compound interest is not getting calculated for that amount in future dates. + - [MIFOSX-469] - In Groups unable to activate the created group + - [MIFOSX-489] - If "New loan application" is submitted for an inactive client under Groups, no proper error message is displayed about the approval status, also activation of the client. + - [MIFOSX-551] - For Groups, Loan First Repayment date is taking after expected disbursement date than actual disbursement date. + - [MIFOSX-552] - Group Loan is getting disbursed on meeting date if holiday is declared on that day. + - [MIFOSX-558] - In modify loan application, am able to define an "application submitted on date" after the loan product's "close date" + +New Features & Improvements + - [MIFOSX-406] - Provide ability to edit all details of pending savings account application + - [MIFOSX-541] - Introduce application process around savings accounts similiar to loan accounts + - [MIFOSX-543] - Support working days in loan lifecycle + - [MIFOSX-550] - Ability to View Holidays + +Reference App + - [MIFOSX-500] - Select Applicable Codes from a Combobox while creating new Data Tables + - [MIFOSX-549] - Loan Product inactivation date improvements + +1.5.0.RELEASE +============= +Feature (and Bug) Release + +This feature (and bug) release focussed on adding support for Holidays and various improvements and bug fixes for Group Functionality + +Platform & API + +Bug + - [MIFOSX-443] - Additional data tables added to groups are appearing for Centers + - [MIFOSX-471] - Group activation is accepting dates prior to office opening + - [MIFOSX-491] - In data table, if string length is more than the defined length, no error message is displayed + - [MIFOSX-493] - For groups, in "Change Loan Application" page not able to modify the "Product" (ie modified product details not getting updated/saved) + - [MIFOSX-494] - If any changes are made in "Change loan application" (For group loan), the loan cannot be approve (multiple pages popup for single click on "Approve" tab.) + - [MIFOSX-498] - Searched "Center" is behaving as Group entity + - [MIFOSX-516] - No/Incorrect error messages on "Register Data Table" screens + - [MIFOSX-519] - In "add code" page if already existing Code name is entered in the field, no proper error message is displaying + - [MIFOSX-521] - Not able to disburse the Group Loan + - [MIFOSX-522] - In add new group form if activation date field is empty, showing connection failure on the UI. + - [MIFOSX-525] - Not able to select an existing client as Guarantor + - [MIFOSX-526] - Issues with fields in Add Guarantors Page + - [MIFOSX-527] - In "New loan application" / "Change loan application" not able to add Collaterals + - [MIFOSX-528] - For a loan, same guarantor can be associated more than once. + - [MIFOSX-529] - For the loan under "Pending Approval" stage not able to edit or delete (already added) collaterals. + - [MIFOSX-531] - Able to approve loans for a Closed client. (ie, client got closed after submitting "new loan application") + - [MIFOSX-533] - Able to associate closed clients with Groups + - [MIFOSX-534] - In Client's page not able to assign staff from parent office + - [MIFOSX-536] - Client search doesn't work at all at present and should support not only account no but also search by any part of client name + +New Features & Improvements + - [MIFOSX-76] - Support for Holidays + - [MIFOSX-438] - Allow closing of clients + - [MIFOSX-486] - Show loanofficers at higher hierarchical level in client product template + - [MIFOSX-518] - Capture "Repayments rescheduled to" date for a holiday and add processed field + - [MIFOSX-212] - loan cycle concept for loans + - [MIFOSX-499] - Inactivate a loan Product + - [MIFOSX-537] - Ability to display "Note" related to client in Client's page and "note" related to Loan in Loan's page + - [MIFOSX-475] - Regenerate loan repayment dates if group meeting frequency is changed + - [MIFOSX-361] - Inconsistent "From Date" and "To Date" formats in View Journal Entry Screens + - [MIFOSX-362] - Date format is not similar In Balance Sheet as in other pages. + +Reference App + - [MIFOSX-535] - Client details screen centers on screen when there are many notes - it should align to top + - [MIFOSX-309] - Move Global Search to end of the Header + - [MIFOSX-530] - Connection fail message is displayed by clicking on delete button in Add/Edit code value page + - [MIFOSX-483] - Support wizard view for Loan Product creation + - [MIFOSX-476] - Group permissons (in portfolio grouping) makes reference UI grotesque + +1.4.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-362] - Date format is not similar In Balance Sheet as in other pages. + - [MIFOSX-473] - "Accounting Rules" created for Branch office (at Head office) is not displaying in head office. + - [MIFOSX-479] - Scheduled jobs only run for tenant with identifier 'default' + - [MIFOSX-480] - Not able to "Create A Group" under Branch Office using Head Office staff. + - [MIFOSX-488] - With DELETE datatables service, one can drop system tables + +Reference App + - [MIFOSX-388] - Buttons on table based reports no longer working + - [MIFOSX-463] - Numeric ids are number formated (causing NumberFormatException ) + - [MIFOSX-467] - Unable to create group in spanish locale as activation date doesnt pick up on culture/locale in datepicker + - [MIFOSX-481] - Not able to navigate to the immediate previous page from "Clients loan application" page + - [MIFOSX-482] - In Groups -> Clients loan application page -> no error message is displaying asking for proper inputs + - [MIFOSX-484] - While creating a "new client" for group (in branch office), Not able to select "Staff" from that (branch) office, if user is Admin. + +1.4.0.RELEASE +============= +Feature Release + +This feature release focussed on moving groups functionality from BETA to public API. + +Along with Group releated work, key improvements was the addition of a UI and API for adding 'additional data' and staff relationship to clients. + +Platform & API + +Bug + - [MIFOSX-420] - In "Change loan application" not able to save the modifications made because of error message getting displayed on charges. + - [MIFOSX-424] - In new loan application, loan is getting approved for the Principal amount beyond the range (Minimum and Maximum) defined in the loan product. + - [MIFOSX-429] - App user of one branch can edit client of another branch + - [MIFOSX-446] - New loan application is not validating Min-Max Principal defined in the product defination + - [MIFOSX-447] - New loan application is not validating Min-Max for "# Of Repayments" defined in the product defination + - [MIFOSX-448] - New loan application is not validating Min-Max "Nominal interest rate %" defined in the product defination + - [MIFOSX-468] - In "Change loan application" error message is displaying for the second charge which was applied before. + - [MIFOSX-474] - Adjusting an existing loan transaction fails when 'note' information is passed + +New Features & Improvements + - [MIFOSX-365] - Simplify "Data Tables" functionality + - [MIFOSX-421] - Ability to create and associate Group Roles + - [MIFOSX-434] - Allow linking of staff to Clients + - [MIFOSX-445] - Show loanofficers at higher hierarchical level in product template + - [MIFOSX-449] - Group and JLG loans repayment schedule should match group meeting dates if loan repayment is synched with group meeting + - [MIFOSX-457] - Update API param names for accounting rules to be consistent with rest of the accounting services + - [MIFOSX-458] - Unable to create accounting rules with Tag Id, multiple debits/credits etc + +Reference App + - [MIFOSX-378] - TEVI: Produce 'role-based' dashboards as entry/landing page for users that login + - [MIFOSX-455] - CodeValues functionality broken on the reference Client app + - [MIFOSX-469] - In Groups unable to activate the created group + - [MIFOSX-464] - Unable to edit the created charge in "charge details" page + +BETA (functionality related to BETA functionality + - [MIFOSX-456] - CRUD services and UI for creating Holidays + - [MIFOSX-411] - While creating new savings account, If "Interest posting period" is defined Annually, it is getting posted monthly. + + +1.3.0.RELEASE +============= +Feature Release + +This feature release focussed mainly on features requested by Musoni for their upcoming m-lite product and by Quipu technolgies for their TEVI project. + +Key changes are improvements to accounting and flexible support for grace concepts in loan repayment schedule. + +Platform & API + +Bug + - [MIFOSX-427] - Charges and penalties functionality wonky when multiple charges/penalties are due on the same date + +New Features & Improvements + - [MIFOSX-391] - "Advanced" accounting rules for compound Journal entries + - [MIFOSX-413] - Ability to account different charges (both fees and penalties) under different heads + - [MIFOSX-295] - Support Prinicpal and Interest Grace Periods for Loans, Loan Schedules + - [MIFOSX-297] - Support over payment of loan scenarios common when repayments through mobile, third party + - [MIFOSX-374] - TEVI: Repayment strategy to support payment ordering of Interest, Principal, Penalties, Fees + - [MIFOSX-376] - TEVI: Track additional details on the loan repayment schedule + +Reference App + - [MIFOSX-405] - In client's General page not able to differentiate between Activated and not Activated savings accounts. + - [MIFOSX-416] - Distinguish between Individual and JLG loans in clients general details + - [MIFOSX-418] - Hide/show Centers and center creation based on permissions + - [MIFOSX-419] - Display Center summary details in UI + - [MIFOSX-423] - Unable to view group loan in group context + +BETA (functionality related to BETA functionality + - [MIFOSX-344] - Add overnight scheduled task to detect if annual fee is due on savings account and apply it + - [MIFOSX-325] - GSOC 2013 - Savings accounts server side sorting and pagination on retrieve all + - [MIFOSX-310] - Generate Collection sheet based on meeting calendar dates + - [MIFOSX-356] - Modify unassign staff API call in group + - [MIFOSX-69] - Amazon S3 appender for document upload + - [MIFOSX-395] - TEVI: Support hierarchial staff and organisational roles on staff with linkage to Application User + +1.2.1.RELEASE +============= +Bug Release + +Platform & API + +Bug + - [MIFOSX-402] - Unable to use 'days' period frequency when entering value for 'lockin' on savings product/account + - [MIFOSX-398] - In savings account - " New saving product" is getting activated before Client activation date. + - [MIFOSX-399] - If full balance amount is withdrawn from saving account, it is displaying negative balance as withdrawal fee is defined in saving product. + +Reference App + - [MIFOSX-358] - Register/Deregister datatables for groups and centers + - [MIFOSX-396] - Not able to deposit / Withdraw amount in savings account + - [MIFOSX-401] - While Updating the saving product if withdrawal fee is defined as "0" error message is displayed. + - [MIFOSX-403] - While defining and updating the saving product if Annual fee is defined as "0" error message is displayed. + - [MIFOSX-407] - For some transactions by clicking on Deposit/Withdraw, 2-3 popup pages displayed as blank. + - [MIFOSX-410] - While defining saving product if Annual fee and date text field kept blank it is displaying error. But while editing saving product if Annual fee and date text field kept blank it is accepting. + +1.2.0.RELEASE +============= +Feature Release + +This feature release is focussed on 'Accounting' improvements that provide greater flexibility in use of accounting for MFIs that use mobile money and wish to be able to track through what channels repayments are disbursements go. + +The BETA functionality for savings is now integrated with accounting on platform/api side. + +It also contains a number of improvements to the reference app UI. + +Platform & API + - [MIFOSX-223] - Add functionality for Loan Disbursement and Repayment channels/types + - [MIFOSX-286] - Ability to setup and use Accounting rules for Manual Journal Entries + - [MIFOSX-338] - Tagging Journal Entries + - [MIFOSX-392] - Not able to upload .docx (word doccument) and .xlsx (Excel doccument) in Client's "Identity Doccuments" and in "Client Doccuments" + - [MIFOSX-328] - Loan approval date should not be earlier to the Client activation date. + - [MIFOSX-246] - Add ability to associate fees with savings product/account + - [MIFOSX-331] - Add capability to filter the calendars based on Calendar Type. + +Reference App + - [MIFOSX-320] - Beautify Login page + - [MIFOSX-149] - Add status colors to UI + - [MIFOSX-147] - Allow ability to produce easy to print loan schedule from the loan screen + - [MIFOSX-317] - Add Tooltips that explain the significance of mapped "Accounts" in Loan Product Screens + - [MIFOSX-347] - When creating a new GL Account, pick up on selected category from tree view + - [MIFOSX-313] - Fix CSS issues with Accounting section of "Define New Loan Products" + - [MIFOSX-346] - Upgrade Reference UI to JQuery UI 1.10.3 (latest stable version) + - [MIFOSX-384] - JQuery upgrading breaking the functionality of Add LoanProduct. + - [MIFOSX-386] - In "Add Loan Product" not able to delete the "Charges"added , similarly in "Accounting" not able to delete "Advanced accounting rules"(ie, Payment Type and Fund Source). Issue may be of latest updation, because in demo version it is working fine. + +1.1.4.RELEASE +============= +Bug Release + +Platform & API + - [MIFOSX-387] - Loans template for Client not showing currencies + +Reference App + - [MIFOSX-382] - In Change Loan Application by changing the "Product" name, Details are not getting updated (ie, in Terms & settings),since "currencies" of two loan products are different + - [MIFOSX-390] - Regression in ability to associate a fund with a loan application through reference app + + +1.1.3.RELEASE +============= +Bug Release + +Bug + - [MIFOSX-367] - Not able to figure out the loan details, if proper Account no. is entered in Search text field + - [MIFOSX-368] - To add a new client of client type "corporate" error message is showing "First name is mandatory" and Last name is mandatory" than Full name or Business name. + - [MIFOSX-369] - Client is getting activated before the date of opening of the related office. + - [MIFOSX-379] - For applying "New Loan Application", if loan product currency is in US Dollars the charges applied is in Indian Rupees also, it is accepting. + - [MIFOSX-380] - Smart search on Gaurantors is broken after change of clients api to paginated response + +Improvement + + - [MIFOSX-359] - Edit functionality for "Code Values" not intuitive (and inconsistent with rest of the User Interface) + - [MIFOSX-360] - Inconsistent verbiage for "Cancel" button in "Add/Edit Code Value: " page + - [MIFOSX-363] - Background is broken in the middle of the table in "Client Loans Listing" page + +1.1.2.RELEASE +============= +Bug Release + - MIFOSX-353 - datetime column in custom table report causes violation + - MIFOSX-364 - New loan application save button restriction + +1.1.1.RELEASE +============= +Bug Release + - MIFOSX-348 - General API concepts do not work for paginated endpoints + +1.1.0.RELEASE +============= +Feature Release + +Scope of release: + +General improvements to display of audit details, pagination of list apis. New api to list loans/loan applications. + +In addition to items mentioned below see 1.1.0.RELEASE on JIRA: https://mifosforge.jira.com/browse/MIFOSX/fixforversion/11932 for full details of issues addressed in release. + +Core Issues: + +- [MIFOSX-334] - Group loses clients when updating +- [MIFOSX-226] - Add ability to API to list loans for applications that require loan centric view of data +- [MIFOSX-339] - Allow retrieving of all items on paginated endpoints + +1.0.1.RELEASE +============= +Bug Release + - MIFOSX-343 - When viewing Audit details, integer values (rather than string values) for officeId and clientId cause exception + +1.0.0.RELEASE +============= + +The first community sanctioned public release of new mifos platform project ('Mifos X'). + +Scope of release: + +In addition to items mentioned below see 1.0.0.RELEASE on JIRA: https://mifosforge.jira.com/browse/MIFOSX/fixforversion/11833 for full details of issues addressed in release. + +Operational Functionality: + - Client Loan Portfolio Management + - Cash-based Accounting + - Audit of all changes + - Reporting (about 30 Reports) + - Comprehensive and flexible ability to configure (on request) MFI specific additional client and loan data. + +Organisational Functionality: + - Currency, Funds, Offices, Staff/Loan Officers + - Loan Products + - support for declining balance or flat interest methods + - Ability to configure mfi customised repayment processing + - Charges + - Fees & Penalties + +User Admin Functionality: + - Users, Roles, Permissions + - 4-eye principle / Maker-Checker + +0.12.1.beta +========== + +Bug Release + - MIFOSX-311 - Zero % loan products or loan applications are not allowed due to validation checks + +0.11.4.beta +========== +Back ported bug fixes in 0.12.1 to 0.11.x series for production installation. + +Bug Release + - MIFOSX-311 - Zero % loan products or loan applications are not allowed due to validation checks + +0.12.0.beta +========== + +Focus on stabalising API and functionality around centers, groups and clients. Contains breaking changes in this API from the 0.11.x releases. + +Note: known issue with existing set of reports provided out of box. Due to changes in client database +columns for is_deleted (removed), joining_date (changed to activation_date) some of the reports do not work correctly at present. +We will provide patches to update these. + +Bugs + - [MIFOSX-262] - You can add a client to an office prior to the opening date of the office + +Improvements/Features + - [MIFOSX-213] - Support client and group 'statuses' to enable approval workflows + - [MIFOSX-282] - Add min max constraints to loan product and enforce for loan application creation, disbursal + - [MIFOSX-247] - Savings account deposits + - [MIFOSX-248] - Savings account withdrawals + - [MIFOSX-290] - Groups api for centers/groups/communal banks + - [MIFOSX-277] - Add API Documentation for Loan Charges + - [MIFOSX-285] - Fix Api docs css + - [MIFOSX-288] - Improve documentation for charges + +0.11.3.beta +========== +Bug Release. + - [MIFOSX-299] - Only super users are able to update client and loan documents + +0.11.2.beta +========== +Bug Release. + - https://mifosforge.jira.com/browse/MIFOSX-292 - Retrieving an existing loan product does not return the correct value for decimalPlaces + - https://mifosforge.jira.com/browse/MIFOSX-293 - Calculating the Loan Schedule does not use the correct value for decimalPlaces + - https://mifosforge.jira.com/browse/MIFOSX-294 - Updating loan products min/max principal details incorrectly results in error message relating to interestRatePerPeriod + +0.11.1.beta +========== +Bug Release. + - Revert back to hibernate 4.1.9.Final to allow datatables to be persisted + - MIFOSX-291 - unable to create office + +0.11.0.beta +========== + +Focus on Individual Lending with Cash Accounting, in development features such as centers, groups, +savings accounts and accrual accounting in progress. + +Known issues + - Due to https://jira.springsource.org/browse/SPR-10395 datatables not persisting correct + - Due to upgrade to hibernate 4.2, JPA specs more strict causing some entities to not persist correctly (https://mifosforge.jira.com/browse/MIFOSX-291) + + + \ No newline at end of file diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index a0d7b54f45e..a7bfc4219f3 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index d87e4cea501..8d723a943a9 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=16.03.02.RELEASE +releaseVersion=16.03.03.RELEASE diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 8a3ceec669f..09bd7c7a5b8 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.21-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -247,9 +247,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~22 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~23 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -273,7 +273,8 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (23, 'rounding-mode', 6, NULL, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), - (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'); + (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), + (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -343,25 +344,25 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-default.job: ~19 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-09 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-09 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-10 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-03-10 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-10 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-03-10 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-03-10 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-03-10 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-03-10 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-03-10 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-03-10 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-03-10 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-23 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-23 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-03-24 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-24 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-03-24 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-03-24 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-03-24 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-03-24 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-03-24 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-03-24 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-03-24 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -2860,7 +2861,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~682 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~616 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4842,7 +4843,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~307 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~233 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5075,6 +5076,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (305, 305, '292', 'update organisation start date', 'SQL', 'V292__update_organisation_start_date.sql', -1854040433, 'root', '2016-03-09 21:33:11', 90, 1), (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:14', 2333, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:14', 56, 1), + (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:04', 73, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 914436650, 'root', '2015-06-03 15:26:50', 14, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 255130282, 'root', '2015-06-03 15:26:53', 59, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), @@ -5241,7 +5243,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~92 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~61 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 533b417bb17..c9238ef0a63 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.21-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -11,7 +11,6 @@ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- Dumping structure for table mifostenant-reference.acc_accounting_rule -DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -38,7 +37,6 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( -- Dumping structure for table mifostenant-reference.acc_gl_account -DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, @@ -121,7 +119,6 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, -- Dumping structure for table mifostenant-reference.acc_gl_closure -DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `office_id` bigint(20) NOT NULL, @@ -148,7 +145,6 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( -- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account -DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `gl_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -159,7 +155,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~1 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); @@ -167,7 +163,6 @@ INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financi -- Dumping structure for table mifostenant-reference.acc_gl_journal_entry -DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_id` bigint(20) NOT NULL, @@ -222,7 +217,6 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( -- Dumping structure for table mifostenant-reference.acc_product_mapping -DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `gl_account_id` bigint(20) DEFAULT NULL, @@ -263,7 +257,6 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product -- Dumping structure for table mifostenant-reference.acc_rule_tags -DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `acc_rule_id` bigint(20) NOT NULL, @@ -283,7 +276,6 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( -- Dumping structure for table mifostenant-reference.c_account_number_format -DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_type_enum` smallint(1) NOT NULL, @@ -298,14 +290,13 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( -- Dumping structure for table mifostenant-reference.c_cache -DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `cache_type_enum` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_cache: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); @@ -313,7 +304,6 @@ INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES -- Dumping structure for table mifostenant-reference.c_configuration -DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, @@ -324,9 +314,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~22 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~23 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -350,12 +340,12 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (23, 'rounding-mode', 6, NULL, 1, 1, '0 - UP, 1 - DOWN, 2- CEILING, 3- FLOOR, 4- HALF_UP, 5- HALF_DOWN, 6 - HALF_EVEN'), (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), - (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'); + (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), + (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.c_external_service -DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -372,7 +362,6 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES -- Dumping structure for table mifostenant-reference.c_external_service_properties -DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, `value` varchar(250) DEFAULT NULL, @@ -396,7 +385,6 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ -- Dumping structure for table mifostenant-reference.job -DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, @@ -420,30 +408,29 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-reference.job: ~19 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-03-09 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-10 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-03-09 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-03-10 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-03-10 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-03-10 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-03-10 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-03-10 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-03-10 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-03-10 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-03-10 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-03-10 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-03-10 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-03-10 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-03-10 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-03-10 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-03-10 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-03-23 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-24 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-03-23 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-03-24 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-03-24 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-03-24 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-03-24 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-03-24 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-03-24 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-03-24 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-03-24 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-03-24 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-03-24 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-03-24 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-03-24 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.job_run_history -DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `job_id` bigint(20) NOT NULL, @@ -484,7 +471,6 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim -- Dumping structure for table mifostenant-reference.mix_taxonomy -DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -551,7 +537,6 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` -- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping -DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `identifier` varchar(50) NOT NULL DEFAULT '', @@ -561,7 +546,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); @@ -569,7 +554,6 @@ INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_d -- Dumping structure for table mifostenant-reference.mix_xbrl_namespace -DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `prefix` varchar(20) NOT NULL DEFAULT '', @@ -592,7 +576,6 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES -- Dumping structure for table mifostenant-reference.m_account_transfer_details -DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_office_id` bigint(20) NOT NULL, @@ -629,7 +612,6 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions -DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(250) NOT NULL, @@ -658,7 +640,6 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history -DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `standing_instruction_id` bigint(20) NOT NULL, @@ -677,7 +658,6 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_transaction -DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_transfer_details_id` bigint(20) NOT NULL, @@ -711,7 +691,6 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( -- Dumping structure for table mifostenant-reference.m_appuser -DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `is_deleted` tinyint(1) NOT NULL DEFAULT '0', @@ -751,7 +730,6 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` -- Dumping structure for table mifostenant-reference.m_appuser_previous_password -DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL, @@ -768,7 +746,6 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( -- Dumping structure for table mifostenant-reference.m_appuser_role -DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, `role_id` bigint(20) NOT NULL, @@ -790,7 +767,6 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES -- Dumping structure for table mifostenant-reference.m_calendar -DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(70) NOT NULL, @@ -818,7 +794,6 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( -- Dumping structure for table mifostenant-reference.m_calendar_history -DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_id` bigint(20) NOT NULL, @@ -845,7 +820,6 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( -- Dumping structure for table mifostenant-reference.m_calendar_instance -DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_id` bigint(20) NOT NULL, @@ -862,7 +836,6 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( -- Dumping structure for table mifostenant-reference.m_cashiers -DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `staff_id` bigint(20) DEFAULT NULL, @@ -886,7 +859,6 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( -- Dumping structure for table mifostenant-reference.m_cashier_transactions -DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `cashier_id` bigint(20) NOT NULL, @@ -909,7 +881,6 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( -- Dumping structure for table mifostenant-reference.m_charge -DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -935,7 +906,7 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL); @@ -943,7 +914,6 @@ INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, -- Dumping structure for table mifostenant-reference.m_client -DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -1031,7 +1001,6 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s -- Dumping structure for table mifostenant-reference.m_client_attendance -DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL DEFAULT '0', @@ -1050,7 +1019,6 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( -- Dumping structure for table mifostenant-reference.m_client_charge -DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1081,7 +1049,6 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( -- Dumping structure for table mifostenant-reference.m_client_charge_paid_by -DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_transaction_id` bigint(20) NOT NULL, @@ -1100,7 +1067,6 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_client_identifier -DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1126,7 +1092,6 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( -- Dumping structure for table mifostenant-reference.m_client_non_person -DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1147,7 +1112,6 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( -- Dumping structure for table mifostenant-reference.m_client_transaction -DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1175,7 +1139,6 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( -- Dumping structure for table mifostenant-reference.m_code -DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_name` varchar(100) DEFAULT NULL, @@ -1215,7 +1178,6 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES -- Dumping structure for table mifostenant-reference.m_code_value -DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_id` int(11) NOT NULL, @@ -1263,7 +1225,6 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` -- Dumping structure for table mifostenant-reference.m_currency -DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(3) NOT NULL, @@ -1446,7 +1407,6 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` -- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction -DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -1466,7 +1426,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( -- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail -DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -1488,7 +1447,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( -- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure -DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -1520,7 +1478,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart -DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, `interest_rate_chart_id` bigint(20) NOT NULL, @@ -1536,7 +1493,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail -DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -1554,7 +1510,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure -DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -1581,7 +1536,6 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( -- Dumping structure for table mifostenant-reference.m_document -DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, `parent_entity_type` varchar(50) NOT NULL, @@ -1602,7 +1556,6 @@ CREATE TABLE IF NOT EXISTS `m_document` ( -- Dumping structure for table mifostenant-reference.m_entity_relation -DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_entity_type` int(10) NOT NULL, @@ -1624,7 +1577,6 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co -- Dumping structure for table mifostenant-reference.m_entity_to_entity_access -DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `entity_type` varchar(50) NOT NULL, @@ -1645,7 +1597,6 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( -- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping -DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `rel_id` bigint(20) NOT NULL DEFAULT '0', @@ -1664,7 +1615,6 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( -- Dumping structure for table mifostenant-reference.m_floating_rates -DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, @@ -1684,7 +1634,6 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( -- Dumping structure for table mifostenant-reference.m_floating_rates_periods -DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `floating_rates_id` bigint(20) NOT NULL, @@ -1707,7 +1656,6 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( -- Dumping structure for table mifostenant-reference.m_fund -DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, @@ -1717,7 +1665,7 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_fund: ~1 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); @@ -1725,7 +1673,6 @@ INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES -- Dumping structure for table mifostenant-reference.m_group -DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `external_id` varchar(100) DEFAULT NULL, @@ -1771,7 +1718,6 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o -- Dumping structure for table mifostenant-reference.m_group_client -DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, `client_id` bigint(20) NOT NULL, @@ -1794,7 +1740,6 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES -- Dumping structure for table mifostenant-reference.m_group_level -DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, @@ -1816,7 +1761,6 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r -- Dumping structure for table mifostenant-reference.m_group_roles -DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) DEFAULT NULL, @@ -1838,7 +1782,6 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( -- Dumping structure for table mifostenant-reference.m_guarantor -DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -1871,7 +1814,6 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( -- Dumping structure for table mifostenant-reference.m_guarantor_funding_details -DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `guarantor_id` bigint(20) NOT NULL, @@ -1894,7 +1836,6 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( -- Dumping structure for table mifostenant-reference.m_guarantor_transaction -DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `guarantor_fund_detail_id` bigint(20) NOT NULL, @@ -1916,7 +1857,6 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( -- Dumping structure for table mifostenant-reference.m_holiday -DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -1936,7 +1876,6 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( -- Dumping structure for table mifostenant-reference.m_holiday_office -DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, `office_id` bigint(20) NOT NULL, @@ -1953,7 +1892,6 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( -- Dumping structure for table mifostenant-reference.m_hook -DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `template_id` smallint(6) NOT NULL, @@ -1977,7 +1915,6 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( -- Dumping structure for table mifostenant-reference.m_hook_configuration -DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `hook_id` bigint(20) DEFAULT NULL, @@ -1995,7 +1932,6 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( -- Dumping structure for table mifostenant-reference.m_hook_registered_events -DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `hook_id` bigint(20) NOT NULL, @@ -2012,7 +1948,6 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( -- Dumping structure for table mifostenant-reference.m_hook_schema -DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `hook_template_id` smallint(6) NOT NULL, @@ -2039,7 +1974,6 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name -- Dumping structure for table mifostenant-reference.m_hook_templates -DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, @@ -2055,7 +1989,6 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES -- Dumping structure for table mifostenant-reference.m_image -DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `location` varchar(500) DEFAULT NULL, @@ -2069,7 +2002,6 @@ CREATE TABLE IF NOT EXISTS `m_image` ( -- Dumping structure for table mifostenant-reference.m_interest_incentives -DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_slab_id` bigint(20) NOT NULL, @@ -2090,7 +2022,6 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( -- Dumping structure for table mifostenant-reference.m_interest_rate_chart -DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -2107,7 +2038,6 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_interest_rate_slab -DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_chart_id` bigint(20) NOT NULL, @@ -2130,7 +2060,6 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( -- Dumping structure for table mifostenant-reference.m_loan -DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -2266,7 +2195,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `repayment_frequency_nth_day_enum`, `repayment_frequency_day_of_week_enum`, `number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 0, 0, 25, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); @@ -2274,7 +2203,6 @@ INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id` -- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry -DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `history_id` bigint(20) NOT NULL, @@ -2312,7 +2240,6 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( -- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping -DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -2330,7 +2257,6 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( -- Dumping structure for table mifostenant-reference.m_loan_arrears_aging -DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, `principal_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', @@ -2349,7 +2275,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( -- Dumping structure for table mifostenant-reference.m_loan_charge -DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2379,7 +2304,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); @@ -2387,7 +2312,6 @@ INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge -- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by -DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_transaction_id` bigint(20) NOT NULL, @@ -2407,7 +2331,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_loan_collateral -DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2427,7 +2350,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( -- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail -DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2445,7 +2367,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( -- Dumping structure for table mifostenant-reference.m_loan_installment_charge -DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2472,7 +2393,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history -DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2496,7 +2416,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge -DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2515,7 +2434,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance -DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, `principal_in_advance_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', @@ -2533,7 +2451,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( -- Dumping structure for table mifostenant-reference.m_loan_recalculation_details -DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2556,7 +2473,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( -- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule -DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2627,7 +2543,6 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, -- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history -DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2657,7 +2572,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( -- Dumping structure for table mifostenant-reference.m_loan_reschedule_request -DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2697,7 +2611,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( -- Dumping structure for table mifostenant-reference.m_loan_term_variations -DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2718,7 +2631,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( -- Dumping structure for table mifostenant-reference.m_loan_tranche_charges -DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2736,7 +2648,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( -- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge -DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2754,7 +2665,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_transaction -DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2792,7 +2702,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( -- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping -DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_transaction_id` bigint(20) NOT NULL, @@ -2815,7 +2724,6 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( -- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule -DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -2843,7 +2751,6 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( -- Dumping structure for table mifostenant-reference.m_meeting -DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_instance_id` bigint(20) NOT NULL, @@ -2859,7 +2766,6 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( -- Dumping structure for table mifostenant-reference.m_note -DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) DEFAULT NULL, @@ -2897,7 +2803,6 @@ CREATE TABLE IF NOT EXISTS `m_note` ( -- Dumping structure for table mifostenant-reference.m_office -DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `parent_id` bigint(20) DEFAULT NULL, @@ -2922,7 +2827,6 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` -- Dumping structure for table mifostenant-reference.m_office_transaction -DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_office_id` bigint(20) DEFAULT NULL, @@ -2945,7 +2849,6 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( -- Dumping structure for table mifostenant-reference.m_organisation_currency -DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(3) NOT NULL, @@ -2957,7 +2860,7 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_organisation_currency: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); @@ -2965,7 +2868,6 @@ INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency -- Dumping structure for table mifostenant-reference.m_password_validation_policy -DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `regex` text NOT NULL, @@ -2984,7 +2886,6 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ -- Dumping structure for table mifostenant-reference.m_payment_detail -DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `payment_type_id` int(11) DEFAULT NULL, @@ -3004,7 +2905,6 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( -- Dumping structure for table mifostenant-reference.m_payment_type -DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` varchar(100) DEFAULT NULL, @@ -3020,7 +2920,6 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( -- Dumping structure for table mifostenant-reference.m_permission -DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `grouping` varchar(45) DEFAULT NULL, @@ -3032,7 +2931,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~682 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~652 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3721,7 +3620,6 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam -- Dumping structure for table mifostenant-reference.m_portfolio_account_associations -DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_account_id` bigint(20) DEFAULT NULL, @@ -3747,7 +3645,6 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( -- Dumping structure for table mifostenant-reference.m_portfolio_command_source -DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `action_name` varchar(50) NOT NULL, @@ -3784,7 +3681,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~75 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -3863,7 +3760,6 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o -- Dumping structure for table mifostenant-reference.m_product_loan -DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `short_name` varchar(4) NOT NULL, @@ -3927,7 +3823,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); @@ -3935,7 +3831,6 @@ INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_dig -- Dumping structure for table mifostenant-reference.m_product_loan_charge -DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, `charge_id` bigint(20) NOT NULL, @@ -3945,7 +3840,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); @@ -3953,7 +3848,6 @@ INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES -- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes -DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -3970,7 +3864,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); @@ -3978,7 +3872,6 @@ INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, ` -- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates -DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -4001,7 +3894,6 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( -- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details -DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -4019,7 +3911,6 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( -- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details -DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -4044,7 +3935,6 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( -- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config -DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -4061,7 +3951,6 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( -- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle -DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -4082,7 +3971,6 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( -- Dumping structure for table mifostenant-reference.m_product_mix -DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -4100,7 +3988,6 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( -- Dumping structure for table mifostenant-reference.m_provisioning_criteria -DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `criteria_name` varchar(200) NOT NULL, @@ -4122,7 +4009,6 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( -- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition -DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `criteria_id` bigint(20) NOT NULL, @@ -4149,7 +4035,6 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( -- Dumping structure for table mifostenant-reference.m_provisioning_history -DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `journal_entry_created` bit(1) DEFAULT b'0', @@ -4170,7 +4055,6 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( -- Dumping structure for table mifostenant-reference.m_provision_category -DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `category_name` varchar(100) NOT NULL, @@ -4190,7 +4074,6 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES -- Dumping structure for table mifostenant-reference.m_role -DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -4200,7 +4083,7 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); @@ -4208,7 +4091,6 @@ INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES -- Dumping structure for table mifostenant-reference.m_role_permission -DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, `permission_id` bigint(20) NOT NULL, @@ -4219,7 +4101,7 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role_permission: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); @@ -4227,7 +4109,6 @@ INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES -- Dumping structure for table mifostenant-reference.m_savings_account -DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -4301,7 +4182,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( -- Dumping structure for table mifostenant-reference.m_savings_account_charge -DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4337,7 +4217,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( -- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by -DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_transaction_id` bigint(20) NOT NULL, @@ -4356,7 +4235,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart -DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4376,7 +4254,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab -DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_interest_rate_chart_id` bigint(20) NOT NULL, @@ -4399,7 +4276,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( -- Dumping structure for table mifostenant-reference.m_savings_account_transaction -DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4431,7 +4307,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( -- Dumping structure for table mifostenant-reference.m_savings_interest_incentives -DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `deposit_account_interest_rate_slab_id` bigint(20) NOT NULL, @@ -4452,7 +4327,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( -- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history -DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_id` bigint(20) NOT NULL, @@ -4476,7 +4350,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_savings_product -DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -4510,7 +4383,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( UNIQUE KEY `sp_unq_short_name` (`short_name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL); @@ -4518,7 +4391,6 @@ INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `dep -- Dumping structure for table mifostenant-reference.m_savings_product_charge -DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, `charge_id` bigint(20) NOT NULL, @@ -4534,7 +4406,6 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( -- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping -DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `appuser_id` bigint(20) NOT NULL, @@ -4552,7 +4423,6 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( -- Dumping structure for table mifostenant-reference.m_staff -DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `is_loan_officer` tinyint(1) NOT NULL DEFAULT '0', @@ -4587,7 +4457,6 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn -- Dumping structure for table mifostenant-reference.m_staff_assignment_history -DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `centre_id` bigint(20) DEFAULT NULL, @@ -4611,7 +4480,6 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_surveys -DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `a_key` varchar(32) NOT NULL, @@ -4629,7 +4497,6 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( -- Dumping structure for table mifostenant-reference.m_survey_components -DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4648,7 +4515,6 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( -- Dumping structure for table mifostenant-reference.m_survey_lookup_tables -DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4668,7 +4534,6 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( -- Dumping structure for table mifostenant-reference.m_survey_questions -DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4688,7 +4553,6 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( -- Dumping structure for table mifostenant-reference.m_survey_responses -DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `question_id` bigint(20) NOT NULL, @@ -4706,7 +4570,6 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( -- Dumping structure for table mifostenant-reference.m_survey_scorecards -DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4735,7 +4598,6 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( -- Dumping structure for table mifostenant-reference.m_tellers -DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `office_id` bigint(20) NOT NULL, @@ -4762,7 +4624,6 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( -- Dumping structure for table mifostenant-reference.m_template -DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, @@ -4779,7 +4640,6 @@ CREATE TABLE IF NOT EXISTS `m_template` ( -- Dumping structure for table mifostenant-reference.m_templatemappers -DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `mapperkey` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, @@ -4794,7 +4654,6 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( -- Dumping structure for table mifostenant-reference.m_template_m_templatemappers -DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, `mappers_id` bigint(20) NOT NULL, @@ -4809,7 +4668,6 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( -- Dumping structure for table mifostenant-reference.m_working_days -DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `recurrence` varchar(100) DEFAULT NULL, @@ -4818,7 +4676,7 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); @@ -4826,7 +4684,6 @@ INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, -- Dumping structure for table mifostenant-reference.oauth_access_token -DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, `token` blob, @@ -4843,7 +4700,6 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( -- Dumping structure for table mifostenant-reference.oauth_client_details -DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, `resource_ids` varchar(256) DEFAULT NULL, @@ -4859,7 +4715,7 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_client_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); @@ -4867,7 +4723,6 @@ INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret` -- Dumping structure for table mifostenant-reference.oauth_refresh_token -DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, `token` blob, @@ -4880,7 +4735,6 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( -- Dumping structure for table mifostenant-reference.ppi_likelihoods -DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(100) NOT NULL, @@ -4894,7 +4748,6 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( -- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi -DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `likelihood_id` bigint(20) NOT NULL, @@ -4909,7 +4762,6 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( -- Dumping structure for table mifostenant-reference.ppi_scores -DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `score_from` int(11) NOT NULL, @@ -4944,7 +4796,6 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES -- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy -DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(100) DEFAULT NULL, @@ -4968,7 +4819,6 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s -- Dumping structure for table mifostenant-reference.rpt_sequence -DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) @@ -4980,7 +4830,6 @@ CREATE TABLE IF NOT EXISTS `rpt_sequence` ( -- Dumping structure for table mifostenant-reference.r_enum_value -DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, `enum_id` int(11) NOT NULL, @@ -5063,7 +4912,6 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en -- Dumping structure for table mifostenant-reference.scheduler_detail -DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, `is_suspended` tinyint(1) NOT NULL DEFAULT '0', @@ -5072,7 +4920,7 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.scheduler_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); @@ -5080,7 +4928,6 @@ INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, ` -- Dumping structure for table mifostenant-reference.schema_version -DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, `installed_rank` int(11) NOT NULL, @@ -5099,7 +4946,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~307 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~304 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5332,6 +5179,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (305, 305, '292', 'update organisation start date', 'SQL', 'V292__update_organisation_start_date.sql', -1854040433, 'root', '2016-03-09 21:33:15', 34, 1), (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:17', 2182, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:17', 34, 1), + (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:05', 58, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 1922951887, 'root', '2014-03-08 02:28:38', 110, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 2079970797, 'root', '2014-03-08 02:28:55', 327, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), @@ -5413,7 +5261,6 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc -- Dumping structure for table mifostenant-reference.sms_messages_outbound -DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `group_id` bigint(20) DEFAULT NULL, @@ -5437,7 +5284,6 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( -- Dumping structure for table mifostenant-reference.stretchy_parameter -DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parameter_name` varchar(45) NOT NULL, @@ -5483,7 +5329,6 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, -- Dumping structure for table mifostenant-reference.stretchy_report -DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, `report_name` varchar(100) NOT NULL, @@ -5498,7 +5343,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~92 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~61 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5597,7 +5442,6 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty -- Dumping structure for table mifostenant-reference.stretchy_report_parameter -DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `report_id` int(11) NOT NULL, @@ -5952,7 +5796,6 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep -- Dumping structure for table mifostenant-reference.x_registered_table -DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, `application_table_name` varchar(50) NOT NULL, @@ -5966,7 +5809,6 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( -- Dumping structure for table mifostenant-reference.x_table_column_code_mappings -DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, `code_id` int(10) NOT NULL, From e965c7fe6b6a174010d3cd65ff97cf048dc84f88 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 13 Apr 2016 20:24:12 +0530 Subject: [PATCH 08/25] Updating release notes for 16.04.01.RELEASE --- MIFOS-CHANGELOG.md | 39 +- api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 492 ++++++++++++- .../sample_data/load_sample_data.sql | 662 +++++++++++++++++- 5 files changed, 1131 insertions(+), 66 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index 3848d93d397..4153f133927 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,6 +4,7 @@ Changelog Releases =============== +1. 13 Apr 2016 - 16.04.01.RELEASE 1. 23 Mar 2016 - 16.03.03.RELEASE 1. 16 Mar 2016 - 16.03.02.RELEASE 1. 09 Mar 2016 - 16.03.01.RELEASE @@ -86,7 +87,43 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta -16.03.03.RELEASE +16.04.01.RELEASE +============= + +This release contains following improvements and bug fixes + +Platform & API +New Features & Improvements + + - Shares and Dividends Feature + - [FINERACT-33] % on Interest Charge for Savings (Tax with holding feature on savings) + - Skip Repayment Date Falling On First Day of Month + - Capturing time of group meeting + + +Bugs + + - [FINERACT-86] - After Rescheduling Future meetings for the loan with multi tranche and interest recalculation enabled is not proper + - [FINERACT-98] - unable to delete a tranche from loan tranche details screen + - Populate Display Name as Full Name when client is a Person + +Community-app +New Features & Improvements + + - Shares and Dividends Feature + - [FINERACT-33] % on Interest Charge for Savings (Tax with holding feature on savings) + +Bugs + + - [MIFOSX-2528] - Add support for YYYY-MM-DD date format + - [MIFOSX-2555] - Some of the places in community app error message displayed is improper + - [MIFOSX-2669] - Make tooltip for rounding mode global configuration setting more informative + - [MIFOSX-2616] - Add # of staff to Office Display under Navigation Drilldown + - [MIFOSX-2617] - Display total number of centers from Loan Officer under Navigational Drilldown. + - Number formatting + - Fixes for missing permissions + + 16.03.03.RELEASE ============= This release contains following improvements and bug fixes diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 827c9c11557..0c4e7ea80fe 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index 8d723a943a9..d35c9c7c33f 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=16.03.03.RELEASE +releaseVersion=16.04.01.RELEASE diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 09bd7c7a5b8..f3a432957d7 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -137,6 +137,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `office_running_balance` decimal(19,6) NOT NULL DEFAULT '0.000000', `organization_running_balance` decimal(19,6) NOT NULL DEFAULT '0.000000', `payment_details_id` bigint(20) DEFAULT NULL, + `share_transaction_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_acc_gl_journal_entry_m_office` (`office_id`), KEY `FK_acc_gl_journal_entry_m_appuser` (`createdby_id`), @@ -147,6 +148,8 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( KEY `FK_acc_gl_journal_entry_m_savings_account_transaction` (`savings_transaction_id`), KEY `FK_acc_gl_journal_entry_m_payment_detail` (`payment_details_id`), KEY `FK_acc_gl_journal_entry_m_client_transaction` (`client_transaction_id`), + KEY `FK_acc_gl_journal_entry_m_share_account_transaction` (`share_transaction_id`), + CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_account` FOREIGN KEY (`account_id`) REFERENCES `acc_gl_account` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_journal_entry` FOREIGN KEY (`reversal_id`) REFERENCES `acc_gl_journal_entry` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_appuser` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), @@ -247,9 +250,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~23 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~24 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -274,7 +277,8 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), - (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL); + (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), + (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -339,30 +343,31 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job: ~19 rows (approximately) +-- Dumping data for table mifostenant-default.job: ~20 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-23 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-23 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-03-24 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-03-24 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-24 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-03-24 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-03-24 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-03-24 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-03-24 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-03-24 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-03-24 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-03-24 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-04-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-04-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-04-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-04-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-04-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-04-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-04-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-04-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -708,6 +713,7 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( `lastmodifiedby_id` bigint(20) DEFAULT NULL, `created_date` datetime DEFAULT NULL, `lastmodified_date` datetime DEFAULT NULL, + `meeting_time` time DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -828,9 +834,12 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( `max_cap` decimal(19,6) DEFAULT NULL, `fee_frequency` smallint(5) DEFAULT NULL, `income_or_liability_account_id` bigint(20) DEFAULT NULL, + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `FK_m_charge_acc_gl_account` (`income_or_liability_account_id`), + KEY `FK_m_charge_m_tax_group` (`tax_group_id`), + CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2859,9 +2868,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=733 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~616 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~778 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3545,7 +3554,35 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (701, 'SHAREPRODUCT', 'CREATE_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE', 0), (702, 'SHAREPRODUCT', 'UPDATE_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE', 0), (703, 'SHAREACCOUNT', 'CREATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0), - (704, 'SHAREACCOUNT', 'UPDATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0); + (704, 'SHAREACCOUNT', 'UPDATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0), + (705, 'organisation', 'READ_TAXCOMPONENT', 'TAXCOMPONENT', 'READ', 0), + (706, 'organisation', 'CREATE_TAXCOMPONENT', 'TAXCOMPONENT', 'CREATE', 0), + (707, 'organisation', 'CREATE_TAXCOMPONENT_CHECKER', 'TAXCOMPONENT', 'CREATE_CHECKER', 0), + (708, 'organisation', 'UPDATE_TAXCOMPONENT', 'TAXCOMPONENT', 'UPDATE', 0), + (709, 'organisation', 'UPDATE_TAXCOMPONENT_CHECKER', 'TAXCOMPONENT', 'UPDATE_CHECKER', 0), + (710, 'organisation', 'READ_TAXGROUP', 'TAXGROUP', 'READ', 0), + (711, 'organisation', 'CREATE_TAXGROUP', 'TAXGROUP', 'CREATE', 0), + (712, 'organisation', 'CREATE_TAXGROUP_CHECKER', 'TAXGROUP', 'CREATE_CHECKER', 0), + (713, 'organisation', 'UPDATE_TAXGROUP', 'TAXGROUP', 'UPDATE', 0), + (714, 'organisation', 'UPDATE_TAXGROUP_CHECKER', 'TAXGROUP', 'UPDATE_CHECKER', 0), + (715, 'portfolio', 'UPDATEWITHHOLDTAX_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'UPDATEWITHHOLDTAX', 0), + (716, 'portfolio', 'UPDATEWITHHOLDTAX_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'UPDATEWITHHOLDTAX_CHECKER', 0), + (717, 'SHAREPRODUCT', 'CREATE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE_DIVIDEND', 0), + (718, 'SHAREPRODUCT', 'CREATE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'CREATE_DIVIDEND_CHECKER', 0), + (719, 'SHAREPRODUCT', 'APPROVE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'APPROVE_DIVIDEND', 0), + (720, 'SHAREPRODUCT', 'APPROVE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'APPROVE_DIVIDEND_CHECKER', 0), + (721, 'SHAREPRODUCT', 'DELETE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'DELETE_DIVIDEND', 0), + (722, 'SHAREPRODUCT', 'DELETE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'DELETE_DIVIDEND_CHECKER', 0), + (723, 'SHAREPRODUCT', 'READ_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'READ_DIVIDEND', 0), + (724, 'SHAREACCOUNT', 'APPROVE_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVE', 0), + (725, 'SHAREACCOUNT', 'ACTIVATE_SHAREACCOUNT', 'SHAREACCOUNT', 'ACTIVATE', 0), + (726, 'SHAREACCOUNT', 'UNDOAPPROVAL_SHAREACCOUNT', 'SHAREACCOUNT', 'UNDOAPPROVAL', 0), + (727, 'SHAREACCOUNT', 'REJECT_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECT', 0), + (728, 'SHAREACCOUNT', 'APPLYADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPLYADDITIONALSHARES', 0), + (729, 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES', 0), + (730, 'SHAREACCOUNT', 'REJECTADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECTADDITIONALSHARES', 0), + (731, 'SHAREACCOUNT', 'REDEEMSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REDEEMSHARES', 0), + (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -4027,6 +4064,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `total_interest_earned_derived` decimal(19,6) DEFAULT NULL, `total_interest_posted_derived` decimal(19,6) DEFAULT NULL, `total_overdraft_interest_derived` decimal(19,6) DEFAULT '0.000000', + `total_withhold_tax_derived` decimal(19,6) DEFAULT NULL, `account_balance_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', `min_required_balance` decimal(19,6) DEFAULT NULL, `enforce_min_required_balance` tinyint(1) NOT NULL DEFAULT '0', @@ -4034,12 +4072,16 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `start_interest_calculation_date` date DEFAULT NULL, `on_hold_funds_derived` decimal(19,6) DEFAULT NULL, `version` int(15) NOT NULL DEFAULT '1', + `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sa_account_no_UNIQUE` (`account_no`), UNIQUE KEY `sa_externalid_UNIQUE` (`external_id`), KEY `FKSA00000000000001` (`client_id`), KEY `FKSA00000000000002` (`group_id`), KEY `FKSA00000000000003` (`product_id`), + KEY `FK_savings_account_tax_group` (`tax_group_id`), + CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FKSA00000000000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKSA00000000000002` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`) @@ -4180,6 +4222,25 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; +-- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details +DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; +CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `savings_transaction_id` bigint(20) NOT NULL, + `tax_component_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_savings_account_transaction_tax_details_savings_transaction` (`savings_transaction_id`), + KEY `FK_savings_account_transaction_tax_details_tax_component` (`tax_component_id`), + CONSTRAINT `FK_savings_account_transaction_tax_details_savings_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`), + CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-default.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( @@ -4255,9 +4316,13 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( `min_required_balance` decimal(19,6) DEFAULT NULL, `enforce_min_required_balance` tinyint(1) NOT NULL DEFAULT '0', `min_balance_for_interest_calculation` decimal(19,6) DEFAULT NULL, + `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sp_unq_name` (`name`), - UNIQUE KEY `sp_unq_short_name` (`short_name`) + UNIQUE KEY `sp_unq_short_name` (`short_name`), + KEY `FK_savings_product_tax_group` (`tax_group_id`), + CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) @@ -4299,6 +4364,265 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; +-- Dumping structure for table mifostenant-default.m_share_account +DROP TABLE IF EXISTS `m_share_account`; +CREATE TABLE IF NOT EXISTS `m_share_account` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_no` varchar(50) NOT NULL, + `product_id` bigint(20) NOT NULL, + `client_id` bigint(20) NOT NULL, + `external_id` varchar(100) DEFAULT NULL, + `status_enum` smallint(5) NOT NULL DEFAULT '300', + `total_approved_shares` bigint(20) DEFAULT NULL, + `total_pending_shares` bigint(20) DEFAULT NULL, + `submitted_date` date NOT NULL, + `submitted_userid` bigint(20) DEFAULT NULL, + `approved_date` date DEFAULT NULL, + `approved_userid` bigint(20) DEFAULT NULL, + `rejected_date` date DEFAULT NULL, + `rejected_userid` bigint(20) DEFAULT NULL, + `activated_date` date DEFAULT NULL, + `activated_userid` bigint(20) DEFAULT NULL, + `closed_date` date DEFAULT NULL, + `closed_userid` bigint(20) DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, + `currency_digits` smallint(5) NOT NULL, + `currency_multiplesof` smallint(5) DEFAULT NULL, + `savings_account_id` bigint(20) NOT NULL, + `minimum_active_period_frequency` decimal(19,6) DEFAULT NULL, + `minimum_active_period_frequency_enum` smallint(5) DEFAULT NULL, + `lockin_period_frequency` decimal(19,6) DEFAULT NULL, + `lockin_period_frequency_enum` smallint(5) DEFAULT NULL, + `allow_dividends_inactive_clients` smallint(1) DEFAULT '0', + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_ibfk_1` (`product_id`), + KEY `m_share_account_ibfk_2` (`savings_account_id`), + KEY `m_share_account_ibfk_3` (`submitted_userid`), + KEY `m_share_account_ibfk_4` (`approved_userid`), + KEY `m_share_account_ibfk_5` (`rejected_userid`), + KEY `m_share_account_ibfk_6` (`activated_userid`), + KEY `m_share_account_ibfk_7` (`closed_userid`), + KEY `m_share_account_ibfk_8` (`lastmodifiedby_id`), + KEY `m_share_account_ibfk_9` (`client_id`), + CONSTRAINT `m_share_account_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), + CONSTRAINT `m_share_account_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`), + CONSTRAINT `m_share_account_ibfk_3` FOREIGN KEY (`submitted_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_4` FOREIGN KEY (`approved_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_5` FOREIGN KEY (`rejected_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_6` FOREIGN KEY (`activated_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_7` FOREIGN KEY (`closed_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_8` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_account_charge +DROP TABLE IF EXISTS `m_share_account_charge`; +CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_id` bigint(20) NOT NULL, + `charge_id` bigint(20) NOT NULL, + `charge_time_enum` smallint(5) NOT NULL, + `charge_calculation_enum` smallint(5) NOT NULL, + `charge_payment_mode_enum` smallint(5) NOT NULL DEFAULT '0', + `calculation_percentage` decimal(19,6) DEFAULT NULL, + `calculation_on_amount` decimal(19,6) DEFAULT NULL, + `charge_amount_or_percentage` decimal(19,6) DEFAULT NULL, + `amount` decimal(19,6) NOT NULL, + `amount_paid_derived` decimal(19,6) DEFAULT NULL, + `amount_waived_derived` decimal(19,6) DEFAULT NULL, + `amount_writtenoff_derived` decimal(19,6) DEFAULT NULL, + `amount_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', + `is_paid_derived` tinyint(1) NOT NULL DEFAULT '0', + `waived` tinyint(1) NOT NULL DEFAULT '0', + `min_cap` decimal(19,6) DEFAULT NULL, + `max_cap` decimal(19,6) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + KEY `charge_id` (`charge_id`), + KEY `m_share_account_charge_ibfk_2` (`account_id`), + CONSTRAINT `m_share_account_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`), + CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by +DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; +CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `share_transaction_id` bigint(20) NOT NULL, + `charge_transaction_id` bigint(20) NOT NULL, + `amount` decimal(20,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_transactions_charge_mapping_ibfk1` (`share_transaction_id`), + KEY `m_share_account_transactions_charge_mapping_ibfk2` (`charge_transaction_id`), + CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk1` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), + CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_account_dividend_details +DROP TABLE IF EXISTS `m_share_account_dividend_details`; +CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `dividend_pay_out_id` bigint(20) NOT NULL, + `account_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + `status` smallint(3) NOT NULL, + `savings_transaction_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_m_share_account_dividend_details_dividend_pay_out_id` (`dividend_pay_out_id`), + KEY `FK_m_share_account_dividend_details_account_id` (`account_id`), + CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`), + CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_account_transactions +DROP TABLE IF EXISTS `m_share_account_transactions`; +CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_id` bigint(20) NOT NULL, + `transaction_date` date DEFAULT NULL, + `total_shares` bigint(20) DEFAULT NULL, + `unit_price` decimal(10,2) DEFAULT NULL, + `amount` decimal(20,2) DEFAULT NULL, + `charge_amount` decimal(20,2) DEFAULT NULL, + `status_enum` smallint(5) NOT NULL DEFAULT '300', + `type_enum` smallint(5) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_purchased_shares_ibfk_1` (`account_id`), + CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_product +DROP TABLE IF EXISTS `m_share_product`; +CREATE TABLE IF NOT EXISTS `m_share_product` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `short_name` varchar(4) NOT NULL, + `external_id` varchar(100) DEFAULT NULL, + `description` varchar(500) NOT NULL, + `start_date` datetime DEFAULT NULL, + `end_date` datetime DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, + `currency_digits` smallint(5) NOT NULL, + `currency_multiplesof` smallint(5) DEFAULT NULL, + `total_shares` bigint(20) NOT NULL, + `issued_shares` bigint(20) DEFAULT NULL, + `totalsubscribed_shares` bigint(20) DEFAULT NULL, + `unit_price` decimal(10,2) NOT NULL, + `capital_amount` decimal(20,2) NOT NULL, + `minimum_client_shares` bigint(20) DEFAULT NULL, + `nominal_client_shares` bigint(20) NOT NULL, + `maximum_client_shares` bigint(20) DEFAULT NULL, + `minimum_active_period_frequency` decimal(19,6) DEFAULT NULL, + `minimum_active_period_frequency_enum` smallint(5) DEFAULT NULL, + `lockin_period_frequency` decimal(19,6) DEFAULT NULL, + `lockin_period_frequency_enum` smallint(5) DEFAULT NULL, + `allow_dividends_inactive_clients` smallint(1) DEFAULT '0', + `createdby_id` bigint(20) DEFAULT NULL, + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + `accounting_type` smallint(2) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `m_share_product_ibfk_1` (`createdby_id`), + KEY `m_share_product_ibfk_2` (`lastmodifiedby_id`), + CONSTRAINT `m_share_product_ibfk_1` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_product_charge +DROP TABLE IF EXISTS `m_share_product_charge`; +CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( + `product_id` bigint(20) NOT NULL, + `charge_id` bigint(20) NOT NULL, + PRIMARY KEY (`product_id`,`charge_id`), + KEY `m_share_product_charge_ibfk_1` (`charge_id`), + CONSTRAINT `m_share_product_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`), + CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out +DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; +CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + `dividend_period_start_date` date NOT NULL, + `dividend_period_end_date` date NOT NULL, + `status` smallint(3) NOT NULL, + `createdby_id` bigint(20) DEFAULT NULL, + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_m_share_product_dividend_pay_out_product_id` (`product_id`), + KEY `FK_m_share_product_dividend_pay_out_createdby_id` (`createdby_id`), + KEY `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` (`lastmodifiedby_id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_createdby_id` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_share_product_market_price +DROP TABLE IF EXISTS `m_share_product_market_price`; +CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) NOT NULL, + `from_date` date DEFAULT NULL, + `share_value` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `m_share_product_market_price_ibfk_1` (`product_id`), + CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-default.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( @@ -4478,6 +4802,112 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; +-- Dumping structure for table mifostenant-default.m_tax_component +DROP TABLE IF EXISTS `m_tax_component`; +CREATE TABLE IF NOT EXISTS `m_tax_component` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `percentage` decimal(19,6) NOT NULL, + `debit_account_type_enum` smallint(2) DEFAULT NULL, + `debit_account_id` bigint(20) DEFAULT NULL, + `credit_account_type_enum` smallint(2) DEFAULT NULL, + `credit_account_id` bigint(20) DEFAULT NULL, + `start_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_component_debit_gl_account` (`debit_account_id`), + KEY `FK_tax_component_credit_gl_account` (`credit_account_id`), + KEY `FK_tax_component_createdby` (`createdby_id`), + KEY `FK_tax_component_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_component_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_credit_gl_account` FOREIGN KEY (`credit_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_tax_component_debit_gl_account` FOREIGN KEY (`debit_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_tax_component_history +DROP TABLE IF EXISTS `m_tax_component_history`; +CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `tax_component_id` bigint(20) NOT NULL, + `percentage` decimal(19,6) NOT NULL, + `start_date` date NOT NULL, + `end_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_component_history_tax_component_id` (`tax_component_id`), + KEY `FK_tax_component_history_createdby` (`createdby_id`), + KEY `FK_tax_component_history_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_component_history_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_history_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_tax_group +DROP TABLE IF EXISTS `m_tax_group`; +CREATE TABLE IF NOT EXISTS `m_tax_group` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_group_createdby` (`createdby_id`), + KEY `FK_tax_group_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_group_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-default.m_tax_group_mappings +DROP TABLE IF EXISTS `m_tax_group_mappings`; +CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `tax_group_id` bigint(20) NOT NULL, + `tax_component_id` bigint(20) NOT NULL, + `start_date` date NOT NULL, + `end_date` date DEFAULT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_group_mappings_tax_group` (`tax_group_id`), + KEY `FK_tax_group_mappings_tax_component` (`tax_component_id`), + KEY `FK_tax_group_mappings_createdby` (`createdby_id`), + KEY `FK_tax_group_mappings_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_group_mappings_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_mappings_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_mappings_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`), + CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-default.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( @@ -4843,7 +5273,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~233 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~231 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5077,6 +5507,10 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:14', 2333, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:14', 56, 1), (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:04', 73, 1), + (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', 1675224847, 'root', '2016-04-13 20:19:10', 56, 1), + (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -173690634, 'root', '2016-04-13 20:19:10', 235, 1), + (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', 1441298172, 'root', '2016-04-13 20:19:12', 1324, 1), + (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:14', 1991, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 914436650, 'root', '2015-06-03 15:26:50', 14, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 255130282, 'root', '2015-06-03 15:26:53', 59, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index c9238ef0a63..640185f1d7b 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -11,6 +11,7 @@ /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -- Dumping structure for table mifostenant-reference.acc_accounting_rule +DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -37,6 +38,7 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( -- Dumping structure for table mifostenant-reference.acc_gl_account +DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, @@ -119,6 +121,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, -- Dumping structure for table mifostenant-reference.acc_gl_closure +DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `office_id` bigint(20) NOT NULL, @@ -145,6 +148,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( -- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account +DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `gl_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -163,6 +167,7 @@ INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financi -- Dumping structure for table mifostenant-reference.acc_gl_journal_entry +DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_id` bigint(20) NOT NULL, @@ -190,6 +195,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `office_running_balance` decimal(19,6) NOT NULL DEFAULT '0.000000', `organization_running_balance` decimal(19,6) NOT NULL DEFAULT '0.000000', `payment_details_id` bigint(20) DEFAULT NULL, + `share_transaction_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_acc_gl_journal_entry_m_office` (`office_id`), KEY `FK_acc_gl_journal_entry_m_appuser` (`createdby_id`), @@ -200,6 +206,8 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( KEY `FK_acc_gl_journal_entry_m_savings_account_transaction` (`savings_transaction_id`), KEY `FK_acc_gl_journal_entry_m_payment_detail` (`payment_details_id`), KEY `FK_acc_gl_journal_entry_m_client_transaction` (`client_transaction_id`), + KEY `FK_acc_gl_journal_entry_m_share_account_transaction` (`share_transaction_id`), + CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_account` FOREIGN KEY (`account_id`) REFERENCES `acc_gl_account` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_journal_entry` FOREIGN KEY (`reversal_id`) REFERENCES `acc_gl_journal_entry` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_appuser` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), @@ -217,6 +225,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( -- Dumping structure for table mifostenant-reference.acc_product_mapping +DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `gl_account_id` bigint(20) DEFAULT NULL, @@ -257,6 +266,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product -- Dumping structure for table mifostenant-reference.acc_rule_tags +DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `acc_rule_id` bigint(20) NOT NULL, @@ -276,6 +286,7 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( -- Dumping structure for table mifostenant-reference.c_account_number_format +DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_type_enum` smallint(1) NOT NULL, @@ -290,6 +301,7 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( -- Dumping structure for table mifostenant-reference.c_cache +DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `cache_type_enum` tinyint(1) NOT NULL DEFAULT '1', @@ -304,6 +316,7 @@ INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES -- Dumping structure for table mifostenant-reference.c_configuration +DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, @@ -314,9 +327,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~23 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~24 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -341,11 +354,13 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (24, 'backdate-penalties-enabled', 0, NULL, 1, 0, 'If this parameter is disabled penalties will only be added to instalments due moving forward, any old overdue instalments will not be affected.'), (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), - (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL); + (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), + (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.c_external_service +DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -362,6 +377,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES -- Dumping structure for table mifostenant-reference.c_external_service_properties +DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, `value` varchar(250) DEFAULT NULL, @@ -385,6 +401,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ -- Dumping structure for table mifostenant-reference.job +DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, @@ -403,34 +420,36 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job: ~19 rows (approximately) +-- Dumping data for table mifostenant-reference.job: ~20 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-03-23 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-03-24 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-03-23 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-03-24 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-03-24 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-03-24 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-03-24 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-03-24 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-03-24 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-03-24 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-03-24 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-03-24 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-03-24 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-03-24 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-03-24 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-03-24 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-03-24 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-04-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-04-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-04-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-04-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-04-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-04-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-04-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-04-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-04-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-04-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-04-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-04-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-04-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-04-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.job_run_history +DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `job_id` bigint(20) NOT NULL, @@ -471,6 +490,7 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim -- Dumping structure for table mifostenant-reference.mix_taxonomy +DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -537,6 +557,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` -- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping +DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `identifier` varchar(50) NOT NULL DEFAULT '', @@ -554,6 +575,7 @@ INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_d -- Dumping structure for table mifostenant-reference.mix_xbrl_namespace +DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `prefix` varchar(20) NOT NULL DEFAULT '', @@ -576,6 +598,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES -- Dumping structure for table mifostenant-reference.m_account_transfer_details +DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_office_id` bigint(20) NOT NULL, @@ -612,6 +635,7 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions +DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(250) NOT NULL, @@ -640,6 +664,7 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history +DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `standing_instruction_id` bigint(20) NOT NULL, @@ -658,6 +683,7 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( -- Dumping structure for table mifostenant-reference.m_account_transfer_transaction +DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_transfer_details_id` bigint(20) NOT NULL, @@ -691,6 +717,7 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( -- Dumping structure for table mifostenant-reference.m_appuser +DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `is_deleted` tinyint(1) NOT NULL DEFAULT '0', @@ -730,6 +757,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` -- Dumping structure for table mifostenant-reference.m_appuser_previous_password +DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL, @@ -746,6 +774,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( -- Dumping structure for table mifostenant-reference.m_appuser_role +DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, `role_id` bigint(20) NOT NULL, @@ -767,6 +796,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES -- Dumping structure for table mifostenant-reference.m_calendar +DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(70) NOT NULL, @@ -785,6 +815,7 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( `lastmodifiedby_id` bigint(20) DEFAULT NULL, `created_date` datetime DEFAULT NULL, `lastmodified_date` datetime DEFAULT NULL, + `meeting_time` time DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -794,6 +825,7 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( -- Dumping structure for table mifostenant-reference.m_calendar_history +DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_id` bigint(20) NOT NULL, @@ -820,6 +852,7 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( -- Dumping structure for table mifostenant-reference.m_calendar_instance +DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_id` bigint(20) NOT NULL, @@ -836,6 +869,7 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( -- Dumping structure for table mifostenant-reference.m_cashiers +DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `staff_id` bigint(20) DEFAULT NULL, @@ -859,6 +893,7 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( -- Dumping structure for table mifostenant-reference.m_cashier_transactions +DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `cashier_id` bigint(20) NOT NULL, @@ -881,6 +916,7 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( -- Dumping structure for table mifostenant-reference.m_charge +DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -900,20 +936,24 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( `max_cap` decimal(19,6) DEFAULT NULL, `fee_frequency` smallint(5) DEFAULT NULL, `income_or_liability_account_id` bigint(20) DEFAULT NULL, + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `FK_m_charge_acc_gl_account` (`income_or_liability_account_id`), + KEY `FK_m_charge_m_tax_group` (`tax_group_id`), + CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; -INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`) VALUES - (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL); +INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES + (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.m_client +DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -1001,6 +1041,7 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s -- Dumping structure for table mifostenant-reference.m_client_attendance +DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL DEFAULT '0', @@ -1019,6 +1060,7 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( -- Dumping structure for table mifostenant-reference.m_client_charge +DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1049,6 +1091,7 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( -- Dumping structure for table mifostenant-reference.m_client_charge_paid_by +DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_transaction_id` bigint(20) NOT NULL, @@ -1067,6 +1110,7 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_client_identifier +DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1092,6 +1136,7 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( -- Dumping structure for table mifostenant-reference.m_client_non_person +DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1112,6 +1157,7 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( -- Dumping structure for table mifostenant-reference.m_client_transaction +DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) NOT NULL, @@ -1139,6 +1185,7 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( -- Dumping structure for table mifostenant-reference.m_code +DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_name` varchar(100) DEFAULT NULL, @@ -1178,6 +1225,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES -- Dumping structure for table mifostenant-reference.m_code_value +DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, `code_id` int(11) NOT NULL, @@ -1225,6 +1273,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` -- Dumping structure for table mifostenant-reference.m_currency +DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(3) NOT NULL, @@ -1407,6 +1456,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` -- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction +DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -1426,6 +1476,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( -- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail +DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -1447,6 +1498,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( -- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure +DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL DEFAULT '0', @@ -1478,6 +1530,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart +DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, `interest_rate_chart_id` bigint(20) NOT NULL, @@ -1493,6 +1546,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail +DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -1510,6 +1564,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( -- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure +DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -1536,6 +1591,7 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( -- Dumping structure for table mifostenant-reference.m_document +DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, `parent_entity_type` varchar(50) NOT NULL, @@ -1556,6 +1612,7 @@ CREATE TABLE IF NOT EXISTS `m_document` ( -- Dumping structure for table mifostenant-reference.m_entity_relation +DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_entity_type` int(10) NOT NULL, @@ -1577,6 +1634,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co -- Dumping structure for table mifostenant-reference.m_entity_to_entity_access +DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `entity_type` varchar(50) NOT NULL, @@ -1597,6 +1655,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( -- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping +DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `rel_id` bigint(20) NOT NULL DEFAULT '0', @@ -1615,6 +1674,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( -- Dumping structure for table mifostenant-reference.m_floating_rates +DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(200) NOT NULL, @@ -1634,6 +1694,7 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( -- Dumping structure for table mifostenant-reference.m_floating_rates_periods +DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `floating_rates_id` bigint(20) NOT NULL, @@ -1656,6 +1717,7 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( -- Dumping structure for table mifostenant-reference.m_fund +DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, @@ -1673,6 +1735,7 @@ INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES -- Dumping structure for table mifostenant-reference.m_group +DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `external_id` varchar(100) DEFAULT NULL, @@ -1718,6 +1781,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o -- Dumping structure for table mifostenant-reference.m_group_client +DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, `client_id` bigint(20) NOT NULL, @@ -1740,6 +1804,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES -- Dumping structure for table mifostenant-reference.m_group_level +DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parent_id` int(11) DEFAULT NULL, @@ -1761,6 +1826,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r -- Dumping structure for table mifostenant-reference.m_group_roles +DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) DEFAULT NULL, @@ -1782,6 +1848,7 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( -- Dumping structure for table mifostenant-reference.m_guarantor +DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -1814,6 +1881,7 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( -- Dumping structure for table mifostenant-reference.m_guarantor_funding_details +DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `guarantor_id` bigint(20) NOT NULL, @@ -1836,6 +1904,7 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( -- Dumping structure for table mifostenant-reference.m_guarantor_transaction +DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `guarantor_fund_detail_id` bigint(20) NOT NULL, @@ -1857,6 +1926,7 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( -- Dumping structure for table mifostenant-reference.m_holiday +DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -1876,6 +1946,7 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( -- Dumping structure for table mifostenant-reference.m_holiday_office +DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, `office_id` bigint(20) NOT NULL, @@ -1892,6 +1963,7 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( -- Dumping structure for table mifostenant-reference.m_hook +DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `template_id` smallint(6) NOT NULL, @@ -1915,6 +1987,7 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( -- Dumping structure for table mifostenant-reference.m_hook_configuration +DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `hook_id` bigint(20) DEFAULT NULL, @@ -1932,6 +2005,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( -- Dumping structure for table mifostenant-reference.m_hook_registered_events +DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `hook_id` bigint(20) NOT NULL, @@ -1948,6 +2022,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( -- Dumping structure for table mifostenant-reference.m_hook_schema +DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `hook_template_id` smallint(6) NOT NULL, @@ -1974,6 +2049,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name -- Dumping structure for table mifostenant-reference.m_hook_templates +DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, `name` varchar(45) NOT NULL, @@ -1989,6 +2065,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES -- Dumping structure for table mifostenant-reference.m_image +DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `location` varchar(500) DEFAULT NULL, @@ -2002,6 +2079,7 @@ CREATE TABLE IF NOT EXISTS `m_image` ( -- Dumping structure for table mifostenant-reference.m_interest_incentives +DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_slab_id` bigint(20) NOT NULL, @@ -2022,6 +2100,7 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( -- Dumping structure for table mifostenant-reference.m_interest_rate_chart +DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, @@ -2038,6 +2117,7 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_interest_rate_slab +DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `interest_rate_chart_id` bigint(20) NOT NULL, @@ -2060,6 +2140,7 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( -- Dumping structure for table mifostenant-reference.m_loan +DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -2203,6 +2284,7 @@ INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id` -- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry +DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `history_id` bigint(20) NOT NULL, @@ -2240,6 +2322,7 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( -- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping +DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -2257,6 +2340,7 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( -- Dumping structure for table mifostenant-reference.m_loan_arrears_aging +DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, `principal_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', @@ -2275,6 +2359,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( -- Dumping structure for table mifostenant-reference.m_loan_charge +DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2312,6 +2397,7 @@ INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge -- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by +DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_transaction_id` bigint(20) NOT NULL, @@ -2331,6 +2417,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_loan_collateral +DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2350,6 +2437,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( -- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail +DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2367,6 +2455,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( -- Dumping structure for table mifostenant-reference.m_loan_installment_charge +DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2393,6 +2482,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history +DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2416,6 +2506,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge +DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2434,6 +2525,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance +DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, `principal_in_advance_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', @@ -2451,6 +2543,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( -- Dumping structure for table mifostenant-reference.m_loan_recalculation_details +DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2473,6 +2566,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( -- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule +DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2543,6 +2637,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, -- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history +DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2572,6 +2667,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( -- Dumping structure for table mifostenant-reference.m_loan_reschedule_request +DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2611,6 +2707,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( -- Dumping structure for table mifostenant-reference.m_loan_term_variations +DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2631,6 +2728,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( -- Dumping structure for table mifostenant-reference.m_loan_tranche_charges +DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2648,6 +2746,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( -- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge +DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_charge_id` bigint(20) NOT NULL, @@ -2665,6 +2764,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( -- Dumping structure for table mifostenant-reference.m_loan_transaction +DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, @@ -2702,6 +2802,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( -- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping +DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_transaction_id` bigint(20) NOT NULL, @@ -2724,6 +2825,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( -- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule +DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -2751,6 +2853,7 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( -- Dumping structure for table mifostenant-reference.m_meeting +DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `calendar_instance_id` bigint(20) NOT NULL, @@ -2766,6 +2869,7 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( -- Dumping structure for table mifostenant-reference.m_note +DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `client_id` bigint(20) DEFAULT NULL, @@ -2803,6 +2907,7 @@ CREATE TABLE IF NOT EXISTS `m_note` ( -- Dumping structure for table mifostenant-reference.m_office +DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `parent_id` bigint(20) DEFAULT NULL, @@ -2827,6 +2932,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` -- Dumping structure for table mifostenant-reference.m_office_transaction +DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `from_office_id` bigint(20) DEFAULT NULL, @@ -2849,6 +2955,7 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( -- Dumping structure for table mifostenant-reference.m_organisation_currency +DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(3) NOT NULL, @@ -2868,6 +2975,7 @@ INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency -- Dumping structure for table mifostenant-reference.m_password_validation_policy +DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, `regex` text NOT NULL, @@ -2886,6 +2994,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ -- Dumping structure for table mifostenant-reference.m_payment_detail +DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `payment_type_id` int(11) DEFAULT NULL, @@ -2905,6 +3014,7 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( -- Dumping structure for table mifostenant-reference.m_payment_type +DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, `value` varchar(100) DEFAULT NULL, @@ -2920,6 +3030,7 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( -- Dumping structure for table mifostenant-reference.m_permission +DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `grouping` varchar(45) DEFAULT NULL, @@ -2929,9 +3040,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=705 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=733 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~652 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~803 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3615,11 +3726,40 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (701, 'SHAREPRODUCT', 'CREATE_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE', 0), (702, 'SHAREPRODUCT', 'UPDATE_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE', 0), (703, 'SHAREACCOUNT', 'CREATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0), - (704, 'SHAREACCOUNT', 'UPDATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0); + (704, 'SHAREACCOUNT', 'UPDATE_SHAREACCOUNT', 'SHAREACCOUNT', 'CREATE', 0), + (705, 'organisation', 'READ_TAXCOMPONENT', 'TAXCOMPONENT', 'READ', 0), + (706, 'organisation', 'CREATE_TAXCOMPONENT', 'TAXCOMPONENT', 'CREATE', 0), + (707, 'organisation', 'CREATE_TAXCOMPONENT_CHECKER', 'TAXCOMPONENT', 'CREATE_CHECKER', 0), + (708, 'organisation', 'UPDATE_TAXCOMPONENT', 'TAXCOMPONENT', 'UPDATE', 0), + (709, 'organisation', 'UPDATE_TAXCOMPONENT_CHECKER', 'TAXCOMPONENT', 'UPDATE_CHECKER', 0), + (710, 'organisation', 'READ_TAXGROUP', 'TAXGROUP', 'READ', 0), + (711, 'organisation', 'CREATE_TAXGROUP', 'TAXGROUP', 'CREATE', 0), + (712, 'organisation', 'CREATE_TAXGROUP_CHECKER', 'TAXGROUP', 'CREATE_CHECKER', 0), + (713, 'organisation', 'UPDATE_TAXGROUP', 'TAXGROUP', 'UPDATE', 0), + (714, 'organisation', 'UPDATE_TAXGROUP_CHECKER', 'TAXGROUP', 'UPDATE_CHECKER', 0), + (715, 'portfolio', 'UPDATEWITHHOLDTAX_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'UPDATEWITHHOLDTAX', 0), + (716, 'portfolio', 'UPDATEWITHHOLDTAX_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'UPDATEWITHHOLDTAX_CHECKER', 0), + (717, 'SHAREPRODUCT', 'CREATE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'CREATE_DIVIDEND', 0), + (718, 'SHAREPRODUCT', 'CREATE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'CREATE_DIVIDEND_CHECKER', 0), + (719, 'SHAREPRODUCT', 'APPROVE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'APPROVE_DIVIDEND', 0), + (720, 'SHAREPRODUCT', 'APPROVE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'APPROVE_DIVIDEND_CHECKER', 0), + (721, 'SHAREPRODUCT', 'DELETE_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'DELETE_DIVIDEND', 0), + (722, 'SHAREPRODUCT', 'DELETE_DIVIDEND_SHAREPRODUCT_CHECKER', 'SHAREPRODUCT', 'DELETE_DIVIDEND_CHECKER', 0), + (723, 'SHAREPRODUCT', 'READ_DIVIDEND_SHAREPRODUCT', 'SHAREPRODUCT', 'READ_DIVIDEND', 0), + (724, 'SHAREACCOUNT', 'APPROVE_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVE', 0), + (725, 'SHAREACCOUNT', 'ACTIVATE_SHAREACCOUNT', 'SHAREACCOUNT', 'ACTIVATE', 0), + (726, 'SHAREACCOUNT', 'UNDOAPPROVAL_SHAREACCOUNT', 'SHAREACCOUNT', 'UNDOAPPROVAL', 0), + (727, 'SHAREACCOUNT', 'REJECT_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECT', 0), + (728, 'SHAREACCOUNT', 'APPLYADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPLYADDITIONALSHARES', 0), + (729, 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES', 0), + (730, 'SHAREACCOUNT', 'REJECTADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECTADDITIONALSHARES', 0), + (731, 'SHAREACCOUNT', 'REDEEMSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REDEEMSHARES', 0), + (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.m_portfolio_account_associations +DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_account_id` bigint(20) DEFAULT NULL, @@ -3645,6 +3785,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( -- Dumping structure for table mifostenant-reference.m_portfolio_command_source +DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `action_name` varchar(50) NOT NULL, @@ -3760,6 +3901,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o -- Dumping structure for table mifostenant-reference.m_product_loan +DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `short_name` varchar(4) NOT NULL, @@ -3831,6 +3973,7 @@ INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_dig -- Dumping structure for table mifostenant-reference.m_product_loan_charge +DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, `charge_id` bigint(20) NOT NULL, @@ -3848,6 +3991,7 @@ INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES -- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes +DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -3872,6 +4016,7 @@ INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, ` -- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates +DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -3894,6 +4039,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( -- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details +DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -3911,6 +4057,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( -- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details +DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -3935,6 +4082,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( -- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config +DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL, @@ -3951,6 +4099,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( -- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle +DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_product_id` bigint(20) NOT NULL DEFAULT '0', @@ -3971,6 +4120,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( -- Dumping structure for table mifostenant-reference.m_product_mix +DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `product_id` bigint(20) NOT NULL, @@ -3988,6 +4138,7 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( -- Dumping structure for table mifostenant-reference.m_provisioning_criteria +DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `criteria_name` varchar(200) NOT NULL, @@ -4009,6 +4160,7 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( -- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition +DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `criteria_id` bigint(20) NOT NULL, @@ -4035,6 +4187,7 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( -- Dumping structure for table mifostenant-reference.m_provisioning_history +DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `journal_entry_created` bit(1) DEFAULT b'0', @@ -4055,6 +4208,7 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( -- Dumping structure for table mifostenant-reference.m_provision_category +DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `category_name` varchar(100) NOT NULL, @@ -4074,6 +4228,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES -- Dumping structure for table mifostenant-reference.m_role +DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -4091,6 +4246,7 @@ INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES -- Dumping structure for table mifostenant-reference.m_role_permission +DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, `permission_id` bigint(20) NOT NULL, @@ -4109,6 +4265,7 @@ INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES -- Dumping structure for table mifostenant-reference.m_savings_account +DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_no` varchar(20) NOT NULL, @@ -4158,6 +4315,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `total_interest_earned_derived` decimal(19,6) DEFAULT NULL, `total_interest_posted_derived` decimal(19,6) DEFAULT NULL, `total_overdraft_interest_derived` decimal(19,6) DEFAULT '0.000000', + `total_withhold_tax_derived` decimal(19,6) DEFAULT NULL, `account_balance_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', `min_required_balance` decimal(19,6) DEFAULT NULL, `enforce_min_required_balance` tinyint(1) NOT NULL DEFAULT '0', @@ -4165,12 +4323,16 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `start_interest_calculation_date` date DEFAULT NULL, `on_hold_funds_derived` decimal(19,6) DEFAULT NULL, `version` int(15) NOT NULL DEFAULT '1', + `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sa_account_no_UNIQUE` (`account_no`), UNIQUE KEY `sa_externalid_UNIQUE` (`external_id`), KEY `FKSA00000000000001` (`client_id`), KEY `FKSA00000000000002` (`group_id`), KEY `FKSA00000000000003` (`product_id`), + KEY `FK_savings_account_tax_group` (`tax_group_id`), + CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FKSA00000000000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKSA00000000000002` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`) @@ -4182,6 +4344,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( -- Dumping structure for table mifostenant-reference.m_savings_account_charge +DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4217,6 +4380,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( -- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by +DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_transaction_id` bigint(20) NOT NULL, @@ -4235,6 +4399,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( -- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart +DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4254,6 +4419,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( -- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab +DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_interest_rate_chart_id` bigint(20) NOT NULL, @@ -4276,6 +4442,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( -- Dumping structure for table mifostenant-reference.m_savings_account_transaction +DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `savings_account_id` bigint(20) NOT NULL, @@ -4306,7 +4473,27 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details +DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; +CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `savings_transaction_id` bigint(20) NOT NULL, + `tax_component_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_savings_account_transaction_tax_details_savings_transaction` (`savings_transaction_id`), + KEY `FK_savings_account_transaction_tax_details_tax_component` (`tax_component_id`), + CONSTRAINT `FK_savings_account_transaction_tax_details_savings_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`), + CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-reference.m_savings_interest_incentives +DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `deposit_account_interest_rate_slab_id` bigint(20) NOT NULL, @@ -4327,6 +4514,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( -- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history +DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account_id` bigint(20) NOT NULL, @@ -4350,6 +4538,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_savings_product +DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, @@ -4378,19 +4567,24 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( `min_required_balance` decimal(19,6) DEFAULT NULL, `enforce_min_required_balance` tinyint(1) NOT NULL DEFAULT '0', `min_balance_for_interest_calculation` decimal(19,6) DEFAULT NULL, + `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', + `tax_group_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sp_unq_name` (`name`), - UNIQUE KEY `sp_unq_short_name` (`short_name`) + UNIQUE KEY `sp_unq_short_name` (`short_name`), + KEY `FK_savings_product_tax_group` (`tax_group_id`), + CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; -INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`) VALUES - (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL); +INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`) VALUES + (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; -- Dumping structure for table mifostenant-reference.m_savings_product_charge +DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, `charge_id` bigint(20) NOT NULL, @@ -4406,6 +4600,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( -- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping +DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `appuser_id` bigint(20) NOT NULL, @@ -4422,7 +4617,267 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; +-- Dumping structure for table mifostenant-reference.m_share_account +DROP TABLE IF EXISTS `m_share_account`; +CREATE TABLE IF NOT EXISTS `m_share_account` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_no` varchar(50) NOT NULL, + `product_id` bigint(20) NOT NULL, + `client_id` bigint(20) NOT NULL, + `external_id` varchar(100) DEFAULT NULL, + `status_enum` smallint(5) NOT NULL DEFAULT '300', + `total_approved_shares` bigint(20) DEFAULT NULL, + `total_pending_shares` bigint(20) DEFAULT NULL, + `submitted_date` date NOT NULL, + `submitted_userid` bigint(20) DEFAULT NULL, + `approved_date` date DEFAULT NULL, + `approved_userid` bigint(20) DEFAULT NULL, + `rejected_date` date DEFAULT NULL, + `rejected_userid` bigint(20) DEFAULT NULL, + `activated_date` date DEFAULT NULL, + `activated_userid` bigint(20) DEFAULT NULL, + `closed_date` date DEFAULT NULL, + `closed_userid` bigint(20) DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, + `currency_digits` smallint(5) NOT NULL, + `currency_multiplesof` smallint(5) DEFAULT NULL, + `savings_account_id` bigint(20) NOT NULL, + `minimum_active_period_frequency` decimal(19,6) DEFAULT NULL, + `minimum_active_period_frequency_enum` smallint(5) DEFAULT NULL, + `lockin_period_frequency` decimal(19,6) DEFAULT NULL, + `lockin_period_frequency_enum` smallint(5) DEFAULT NULL, + `allow_dividends_inactive_clients` smallint(1) DEFAULT '0', + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_ibfk_1` (`product_id`), + KEY `m_share_account_ibfk_2` (`savings_account_id`), + KEY `m_share_account_ibfk_3` (`submitted_userid`), + KEY `m_share_account_ibfk_4` (`approved_userid`), + KEY `m_share_account_ibfk_5` (`rejected_userid`), + KEY `m_share_account_ibfk_6` (`activated_userid`), + KEY `m_share_account_ibfk_7` (`closed_userid`), + KEY `m_share_account_ibfk_8` (`lastmodifiedby_id`), + KEY `m_share_account_ibfk_9` (`client_id`), + CONSTRAINT `m_share_account_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), + CONSTRAINT `m_share_account_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`), + CONSTRAINT `m_share_account_ibfk_3` FOREIGN KEY (`submitted_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_4` FOREIGN KEY (`approved_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_5` FOREIGN KEY (`rejected_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_6` FOREIGN KEY (`activated_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_7` FOREIGN KEY (`closed_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_8` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_account_charge +DROP TABLE IF EXISTS `m_share_account_charge`; +CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_id` bigint(20) NOT NULL, + `charge_id` bigint(20) NOT NULL, + `charge_time_enum` smallint(5) NOT NULL, + `charge_calculation_enum` smallint(5) NOT NULL, + `charge_payment_mode_enum` smallint(5) NOT NULL DEFAULT '0', + `calculation_percentage` decimal(19,6) DEFAULT NULL, + `calculation_on_amount` decimal(19,6) DEFAULT NULL, + `charge_amount_or_percentage` decimal(19,6) DEFAULT NULL, + `amount` decimal(19,6) NOT NULL, + `amount_paid_derived` decimal(19,6) DEFAULT NULL, + `amount_waived_derived` decimal(19,6) DEFAULT NULL, + `amount_writtenoff_derived` decimal(19,6) DEFAULT NULL, + `amount_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000', + `is_paid_derived` tinyint(1) NOT NULL DEFAULT '0', + `waived` tinyint(1) NOT NULL DEFAULT '0', + `min_cap` decimal(19,6) DEFAULT NULL, + `max_cap` decimal(19,6) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', + PRIMARY KEY (`id`), + KEY `charge_id` (`charge_id`), + KEY `m_share_account_charge_ibfk_2` (`account_id`), + CONSTRAINT `m_share_account_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`), + CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by +DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; +CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `share_transaction_id` bigint(20) NOT NULL, + `charge_transaction_id` bigint(20) NOT NULL, + `amount` decimal(20,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_transactions_charge_mapping_ibfk1` (`share_transaction_id`), + KEY `m_share_account_transactions_charge_mapping_ibfk2` (`charge_transaction_id`), + CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk1` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), + CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_account_dividend_details +DROP TABLE IF EXISTS `m_share_account_dividend_details`; +CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `dividend_pay_out_id` bigint(20) NOT NULL, + `account_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + `status` smallint(3) NOT NULL, + `savings_transaction_id` bigint(20) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_m_share_account_dividend_details_dividend_pay_out_id` (`dividend_pay_out_id`), + KEY `FK_m_share_account_dividend_details_account_id` (`account_id`), + CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`), + CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_account_transactions +DROP TABLE IF EXISTS `m_share_account_transactions`; +CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `account_id` bigint(20) NOT NULL, + `transaction_date` date DEFAULT NULL, + `total_shares` bigint(20) DEFAULT NULL, + `unit_price` decimal(10,2) DEFAULT NULL, + `amount` decimal(20,2) DEFAULT NULL, + `charge_amount` decimal(20,2) DEFAULT NULL, + `status_enum` smallint(5) NOT NULL DEFAULT '300', + `type_enum` smallint(5) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_share_account_purchased_shares_ibfk_1` (`account_id`), + CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_product +DROP TABLE IF EXISTS `m_share_product`; +CREATE TABLE IF NOT EXISTS `m_share_product` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(200) NOT NULL, + `short_name` varchar(4) NOT NULL, + `external_id` varchar(100) DEFAULT NULL, + `description` varchar(500) NOT NULL, + `start_date` datetime DEFAULT NULL, + `end_date` datetime DEFAULT NULL, + `currency_code` varchar(3) NOT NULL, + `currency_digits` smallint(5) NOT NULL, + `currency_multiplesof` smallint(5) DEFAULT NULL, + `total_shares` bigint(20) NOT NULL, + `issued_shares` bigint(20) DEFAULT NULL, + `totalsubscribed_shares` bigint(20) DEFAULT NULL, + `unit_price` decimal(10,2) NOT NULL, + `capital_amount` decimal(20,2) NOT NULL, + `minimum_client_shares` bigint(20) DEFAULT NULL, + `nominal_client_shares` bigint(20) NOT NULL, + `maximum_client_shares` bigint(20) DEFAULT NULL, + `minimum_active_period_frequency` decimal(19,6) DEFAULT NULL, + `minimum_active_period_frequency_enum` smallint(5) DEFAULT NULL, + `lockin_period_frequency` decimal(19,6) DEFAULT NULL, + `lockin_period_frequency_enum` smallint(5) DEFAULT NULL, + `allow_dividends_inactive_clients` smallint(1) DEFAULT '0', + `createdby_id` bigint(20) DEFAULT NULL, + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + `accounting_type` smallint(2) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`), + KEY `m_share_product_ibfk_1` (`createdby_id`), + KEY `m_share_product_ibfk_2` (`lastmodifiedby_id`), + CONSTRAINT `m_share_product_ibfk_1` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_product_charge +DROP TABLE IF EXISTS `m_share_product_charge`; +CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( + `product_id` bigint(20) NOT NULL, + `charge_id` bigint(20) NOT NULL, + PRIMARY KEY (`product_id`,`charge_id`), + KEY `m_share_product_charge_ibfk_1` (`charge_id`), + CONSTRAINT `m_share_product_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`), + CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out +DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; +CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) NOT NULL, + `amount` decimal(19,6) NOT NULL, + `dividend_period_start_date` date NOT NULL, + `dividend_period_end_date` date NOT NULL, + `status` smallint(3) NOT NULL, + `createdby_id` bigint(20) DEFAULT NULL, + `created_date` datetime DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `lastmodified_date` datetime DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `FK_m_share_product_dividend_pay_out_product_id` (`product_id`), + KEY `FK_m_share_product_dividend_pay_out_createdby_id` (`createdby_id`), + KEY `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` (`lastmodifiedby_id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_createdby_id` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_share_product_market_price +DROP TABLE IF EXISTS `m_share_product_market_price`; +CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `product_id` bigint(20) NOT NULL, + `from_date` date DEFAULT NULL, + `share_value` decimal(10,2) NOT NULL, + PRIMARY KEY (`id`), + KEY `m_share_product_market_price_ibfk_1` (`product_id`), + CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-reference.m_staff +DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `is_loan_officer` tinyint(1) NOT NULL DEFAULT '0', @@ -4457,6 +4912,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn -- Dumping structure for table mifostenant-reference.m_staff_assignment_history +DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `centre_id` bigint(20) DEFAULT NULL, @@ -4480,6 +4936,7 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( -- Dumping structure for table mifostenant-reference.m_surveys +DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `a_key` varchar(32) NOT NULL, @@ -4497,6 +4954,7 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( -- Dumping structure for table mifostenant-reference.m_survey_components +DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4515,6 +4973,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( -- Dumping structure for table mifostenant-reference.m_survey_lookup_tables +DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4534,6 +4993,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( -- Dumping structure for table mifostenant-reference.m_survey_questions +DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4553,6 +5013,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( -- Dumping structure for table mifostenant-reference.m_survey_responses +DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `question_id` bigint(20) NOT NULL, @@ -4570,6 +5031,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( -- Dumping structure for table mifostenant-reference.m_survey_scorecards +DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `survey_id` bigint(20) NOT NULL, @@ -4597,7 +5059,114 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; +-- Dumping structure for table mifostenant-reference.m_tax_component +DROP TABLE IF EXISTS `m_tax_component`; +CREATE TABLE IF NOT EXISTS `m_tax_component` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `percentage` decimal(19,6) NOT NULL, + `debit_account_type_enum` smallint(2) DEFAULT NULL, + `debit_account_id` bigint(20) DEFAULT NULL, + `credit_account_type_enum` smallint(2) DEFAULT NULL, + `credit_account_id` bigint(20) DEFAULT NULL, + `start_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_component_debit_gl_account` (`debit_account_id`), + KEY `FK_tax_component_credit_gl_account` (`credit_account_id`), + KEY `FK_tax_component_createdby` (`createdby_id`), + KEY `FK_tax_component_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_component_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_credit_gl_account` FOREIGN KEY (`credit_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_tax_component_debit_gl_account` FOREIGN KEY (`debit_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_tax_component_history +DROP TABLE IF EXISTS `m_tax_component_history`; +CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `tax_component_id` bigint(20) NOT NULL, + `percentage` decimal(19,6) NOT NULL, + `start_date` date NOT NULL, + `end_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_component_history_tax_component_id` (`tax_component_id`), + KEY `FK_tax_component_history_createdby` (`createdby_id`), + KEY `FK_tax_component_history_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_component_history_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_history_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_tax_group +DROP TABLE IF EXISTS `m_tax_group`; +CREATE TABLE IF NOT EXISTS `m_tax_group` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_group_createdby` (`createdby_id`), + KEY `FK_tax_group_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_group_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-reference.m_tax_group_mappings +DROP TABLE IF EXISTS `m_tax_group_mappings`; +CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `tax_group_id` bigint(20) NOT NULL, + `tax_component_id` bigint(20) NOT NULL, + `start_date` date NOT NULL, + `end_date` date DEFAULT NULL, + `createdby_id` bigint(20) NOT NULL, + `created_date` datetime NOT NULL, + `lastmodifiedby_id` bigint(20) NOT NULL, + `lastmodified_date` datetime NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_tax_group_mappings_tax_group` (`tax_group_id`), + KEY `FK_tax_group_mappings_tax_component` (`tax_component_id`), + KEY `FK_tax_group_mappings_createdby` (`createdby_id`), + KEY `FK_tax_group_mappings_lastmodifiedby` (`lastmodifiedby_id`), + CONSTRAINT `FK_tax_group_mappings_createdby` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_mappings_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_tax_group_mappings_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`), + CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-reference.m_tellers +DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `office_id` bigint(20) NOT NULL, @@ -4624,6 +5193,7 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( -- Dumping structure for table mifostenant-reference.m_template +DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, @@ -4640,6 +5210,7 @@ CREATE TABLE IF NOT EXISTS `m_template` ( -- Dumping structure for table mifostenant-reference.m_templatemappers +DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `mapperkey` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL, @@ -4654,6 +5225,7 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( -- Dumping structure for table mifostenant-reference.m_template_m_templatemappers +DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, `mappers_id` bigint(20) NOT NULL, @@ -4668,6 +5240,7 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( -- Dumping structure for table mifostenant-reference.m_working_days +DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `recurrence` varchar(100) DEFAULT NULL, @@ -4684,6 +5257,7 @@ INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, -- Dumping structure for table mifostenant-reference.oauth_access_token +DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, `token` blob, @@ -4700,6 +5274,7 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( -- Dumping structure for table mifostenant-reference.oauth_client_details +DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, `resource_ids` varchar(256) DEFAULT NULL, @@ -4723,6 +5298,7 @@ INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret` -- Dumping structure for table mifostenant-reference.oauth_refresh_token +DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, `token` blob, @@ -4735,6 +5311,7 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( -- Dumping structure for table mifostenant-reference.ppi_likelihoods +DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(100) NOT NULL, @@ -4748,6 +5325,7 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( -- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi +DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `likelihood_id` bigint(20) NOT NULL, @@ -4762,6 +5340,7 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( -- Dumping structure for table mifostenant-reference.ppi_scores +DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `score_from` int(11) NOT NULL, @@ -4796,6 +5375,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES -- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy +DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `code` varchar(100) DEFAULT NULL, @@ -4819,6 +5399,7 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s -- Dumping structure for table mifostenant-reference.rpt_sequence +DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) @@ -4830,6 +5411,7 @@ CREATE TABLE IF NOT EXISTS `rpt_sequence` ( -- Dumping structure for table mifostenant-reference.r_enum_value +DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, `enum_id` int(11) NOT NULL, @@ -4912,6 +5494,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en -- Dumping structure for table mifostenant-reference.scheduler_detail +DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, `is_suspended` tinyint(1) NOT NULL DEFAULT '0', @@ -4928,6 +5511,7 @@ INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, ` -- Dumping structure for table mifostenant-reference.schema_version +DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, `installed_rank` int(11) NOT NULL, @@ -4946,7 +5530,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~304 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~296 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5180,6 +5764,10 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:17', 2182, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:17', 34, 1), (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:05', 58, 1), + (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', 1675224847, 'root', '2016-04-13 20:19:15', 25, 1), + (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -173690634, 'root', '2016-04-13 20:19:15', 145, 1), + (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', 1441298172, 'root', '2016-04-13 20:19:17', 1491, 1), + (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:18', 1249, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 1922951887, 'root', '2014-03-08 02:28:38', 110, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 2079970797, 'root', '2014-03-08 02:28:55', 327, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), @@ -5261,6 +5849,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc -- Dumping structure for table mifostenant-reference.sms_messages_outbound +DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `group_id` bigint(20) DEFAULT NULL, @@ -5284,6 +5873,7 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( -- Dumping structure for table mifostenant-reference.stretchy_parameter +DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `parameter_name` varchar(45) NOT NULL, @@ -5329,6 +5919,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, -- Dumping structure for table mifostenant-reference.stretchy_report +DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, `report_name` varchar(100) NOT NULL, @@ -5343,7 +5934,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~61 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~125 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5442,6 +6033,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty -- Dumping structure for table mifostenant-reference.stretchy_report_parameter +DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, `report_id` int(11) NOT NULL, @@ -5796,6 +6388,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep -- Dumping structure for table mifostenant-reference.x_registered_table +DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, `application_table_name` varchar(50) NOT NULL, @@ -5809,6 +6402,7 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( -- Dumping structure for table mifostenant-reference.x_table_column_code_mappings +DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, `code_id` int(10) NOT NULL, From 348fffdce2b83e67eb6afe2e81acdb988e94031f Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Tue, 3 May 2016 17:14:36 +0530 Subject: [PATCH 09/25] Adding MIFOS-INSTALL.md --- MIFOS-INSTALL.md | 298 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 MIFOS-INSTALL.md diff --git a/MIFOS-INSTALL.md b/MIFOS-INSTALL.md new file mode 100644 index 00000000000..2cdfb5333ae --- /dev/null +++ b/MIFOS-INSTALL.md @@ -0,0 +1,298 @@ +# Installation Fineract Platform + +This file describes how to install fineract platform for use in a production or test environment. + +## Release Artifact Structure + +The release artifact (.zip file) has the following structure: + +``` + + fineractplatform-X.Y.Z.RELEASE ... parent folder which will have the release number on it + | + + api-docs ... folder contains html based documentation on the platform API for this release + + database ... folder contains database setup and upgrade scripts along with sample data required for installation + + pentahoReports ... folder contains any out-of-the-box reports provided through pentaho + + apps ... folder contains apps like community app that speak to the platform + + runmifosx.bat ... launch script for Windows + + runmifosx.sh ... launch script for Mac OS X and Linux + | + -- CHANGELOG.MD ... file documents changelog of project up to this release + -- CONTRIBUTORS.MD ... file provides details on contributors to project + -- INSTALL.MD ... file provides details on installation instructions + -- LICENSE.MD ... file provides details on the open source license used by the project + -- fineract-provider.war ... the platform WAR file to be dropped into Tomcat 7.0.68.0 & above + -- README.MD ... initial readme file for the project + -- VERSIONING.MD ... file provides details on approach to release versioning +``` + +## How to Install + +The three ways to get up and running with mifos platform is: + +1. Use Amazon AWS and fineractplatform public AMI to spin up a new instance in the cloud +2. Manually install the prerequisite software on your own machine, follow setup instructions and use release artifacts to get platform running yourself. +3. ~~The (and the easiest) method is to just fire up the launch script provided in the release artifact and Mifos takes care of all the database, server-side and client-side setup for you.~~ Currently Broken + +## 1. Launch script automatic out-of-the box setup + +Important : Automatic setup is currently broken, please follow the instructions for **Manual Installation** instead. For details of the issue, refer comments at https://mifosforge.jira.com/browse/MIFOSX-1756 + +The Mifos release artifact contains two launch scripts with names starting with "**runmifosx**". One of them (the one with the *.bat* file extension) is used to launch the platform on a Windows machine while the other (which has the *.sh* file extension) is used to launch the platform on Mac OS X and Linux. Just double-click on the respective script (depending on your OS) and voila! you have your own Mifos X platform running locally on your computer. + +**Note**: *In case your script does not launch by double clicking on Linux or Mac OS X, here's what you can do. Head over to bash and type the following:* + +``` +$ cd /path/where/runmifosx.sh/is/located +$ chmod 0755 ./runmifosx.sh +$ ./runmifosx.sh +``` + +## 2. Amazon Public AMI + + Use AWS Wizard to launch instance by using this link: Mifos X AMI (ami-a875a0cb) + + *Note:* Read through the following as you step through the AWS Wizard + + - You are automatically brought to Step 2 on the wizard, by default a 'micro' instance is selected, you may need to select a 'General Purpose' m1.small as the t1.micro's memory is right on the edge of whats needed to support MySQL, Tomcat 7 + Fineract Platform + - Use default settings for steps 3 to 5 until you reach step 6 configure security group. + - If your first time using AWS you should use the create new security group option and add the following 'rules' to the security group: + - SSH (PORT 22), MYSQL (3306), HTTPS (443), Custom TCP Rule (8443) all with a 'Source' value of 'Anywhere' + - Click 'Review and Launch' + - You will be asked to use a 'keypair' which you will need to SSH onto the new instance, if this is your first time create a new keypair, be sure to download it and store in place as you will need it later, otherwise use an existing keypair. + - When the instance starts, the following should be available at: + - Platform application should be available @ https://[public DNS]/fineract-provider/api/v1/offices?tenantIdentifier=default&pretty=true + - Community app should be available @ https://[public DNS] + - API docs should be available @ https://[public DNS]/api-docs/apiLive.htm + + *Name:* Mifos Platform 16.03.3.RELEASE Public AMI + + - AMI ID: ami-a875a0cb + - Kernel ID: aki-503e7402 + - Name: Mifos Platform 16.03.3.RELEASE Public AMI + - Owner: 540782944231 + - Architecture: Ubuntu 14.04.4 LTS x86_64 + - Java 1.8.0_77 64 bit JVM + - Tomcat 7.0.68 + - MySql 5.5.47 + +## 3. Manual Installation + +### 3.1 Prerequisite Software + + Before running mifos platform you must have the following software installed: + - Oracle Java - JDK 8 (http://www.oracle.com/technetwork/java/javase/downloads/index.html) + - MySQL server - 5.5 or 5.6 (http://dev.mysql.com/downloads/mysql/5.5.html#downloads/) + - Apache Tomcat - 7.0.68 (http://tomcat.apache.org/download-70.cgi) + +### 3.2 MySQL server Setup + + Assumption: MySQL server is now installed. + + You should know your password for MySQL root user. If you wish you can change it by doing: + ``` + mysqladmin -u root -p 'oldpassword' password newpassword + ``` + The mifosplatform settings default to a mysql root user with username: root, password: mysql + + If you have never installed fineractplatform before follow section 3.2.1 for first time setup of database, otherwise read section 3.2.2 on database upgrades. + +#### 3.2.1 First Time Database setup + + Mifos platform has support for hosting multiple tenants so we use two database schemas: + - *mifosplatform-tenants*: which is responsible for persisting the tenant information which is used when deciding what schema each incoming request in the platform should route to. It acts as a registry which contains the details of all the tenant databases, and their connection information, which is used by MifosX to connect to the appropriate tenant. + - *mifostenant-default*: All tenant specific schemas follow the pattern mifostenant-xxxx, out of the box the default schema is used. + + Step one: create mifosplatform-tenants database + ``` + mysql -uroot -pmysql + create database `mifosplatform-tenants`; + exit + ``` + + Step two: create mifostenant-default database + ``` + mysql -uroot -pmysql + create database `mifostenant-default`; + exit + ``` + The tables and lookup data for both databases are created on application startup. + + Step three (optional): to be followed only if your mysql credentials are other than root/mysql + + Manually restore the contents of *mifosplatform-tenants* database + + ``` + mysql -uroot -pmysql mifosplatform-tenants < database/mifospltaform-tenants-first-time-install.sql + ``` + Next, update the default credentials for connecting to *mifoplatform-default* database stored in the *tenants* table of *mifosplatform-tenants* with your credentials + + ``` + UPDATE tenants SET schema_username = "your_username", schema_password = "your_password" WHERE identifier = "default"; + ``` + +#### 3.2.2 Upgrade existing database(s) + + The list database *mifosplatform-tenants* is upgraded when the application starts. Any *tenant* databases will also be upgraded automatically when the application starts if the *auto_update* field of the *tenants* database table is enabled(=1). This is the default setting. + + Upgrading your database in this way is the recommended way as it will upgrade any *tenants* setup in the *mifosplatform-tenants* database but can be disabled by setting the *auto_update* field of the tenant to zero. + +##### 3.2.2.1 Special Instructions for those upgrading from version 1.24.* or lower + +Starting from version 1.25.* , updates to *mifosplatform-tenants* database are managed by Flyway (http://flywaydb.org/). To ensure that flyway works correctly, verify that table *schema_version* is present along with two entries in *mifosplatform-tenants* database. + +You can do so as follows + +```` +mysql -uroot -pmysql + +use `mifosplatform-tenants`; +select * from schema_version; +``` + +If the table does not exist, create the same using the script at https://gist.github.com/vishwasbabu/dc105b6a9450cff8ff1f + +Next, check if the patch for "externalizing mysql connection properties" has been run (i.e if you are updating from 1.21 or a higher version of Mifos X) + +```` +mysql -uroot -pmysql + +use `mifosplatform-tenants`; +select pool_initial_size from tenants; +``` + +If the above query does **not** throw an error (Unknown column 'pool_initial_size'), *schema_version* needs to be updated with the details of this patch by executing the scripts below + +``` +mysql -uroot -pmysql + +use `mifosplatform-tenants`; +INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES + (2, 2, '2', 'externalize-connection-properties', 'SQL', 'V2__externalize-connection-properties.sql', 210473669, 'root', '2014-10-12 22:13:51', 661, 1); +``` + +#### 3.2.3 Load *mifostenant-default* schema with sample data (optional) + Every release ships with sample data (offices, users, customers, loan products, savings products and a chart of accounts). The same can be restored by running the following command + + ``` + mysql -uroot -pmysql mifostenant-default < database/migrations/sample_data/load_sample_data.sql + ``` + + +### 3.3 Tomcat 7.0.68 & above Setup + + Assumption: You have downloaded and installed Tomcat 7 correctly for your operation system: see http://tomcat.apache.org/tomcat-7.0-doc/setup.html + +#### 3.3.1 Environment Variables Check + + Check that the following environment variables exist: + - JAVA_HOME ... should point to directory where a 1.8 JDK is on machine + - CATALINA_HOME ... should point to a directory where a Tomcat 7 instance is installed + + Check that the following is on your path: + - %JAVA_HOME%\bin; + +#### 3.3.2 Logging + + - In the [TOMCAT_HOME]/logs create a file called ```fineract-platform.log``` + +#### 3.3.3 Libraries + + Ensure the following libraries are in the [TOMCAT_HOME]/lib folder + - tomcat-jdbc.jar (You can download the same from http://www.java2s.com/Code/JarDownload/tomcat-jdbc/tomcat-jdbc.jar) + - drizzle-jdbc-1.3 (You will need to download the latest MySQL Connector/J Jar file from http://central.maven.org/maven2/org/drizzle/jdbc/drizzle-jdbc/1.3/drizzle-jdbc-1.3.jar) + +#### 3.3.4 Configure for SSL + + Generate a new keystore using java keytool (if you havent already done this): + - Follow docs to create keystore.(http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html#Configuration) + + - Update server.xml as in docs. (Ther server.xml configuration given in the configure tomcat 7 below is what is need.) + + ```sudo keytool -genkey -keyalg RSA -alias tomcat -keystore /usr/share/tomcat.keystore``` + +#### 3.3.5 Update tomcat configuration files for SSL, compression and JNDI connection to MySql + +``` + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +#### 3.3.6 Drop application into tomcat webapps folder + + Drop the following from the release artifact into the [TOMCAT_HOME]/webapps folder: + - fineract-provider.war + + Drop the following from the release artifact into [TOMCAT_HOME]/webapps folder: + - The entire ```apps/community-app``` folder & rename it to ROOT + - The entire api-docs folder into ROOT + +#### 3.3.7 Startup tomcat + Startup tomcat: + - Platform application should be available @ https://[public DNS]/fineract-provider/api/v1/offices?tenantIdentifier=default&pretty=true + - Community application should be available @ https://[public DNS] + - API docs should be available @ https://[public DNS]/api-docs/apiLive.htm + + *where [server ip address] is the hostname or IP address of your computer. For instance, if you've installed Mifos on your local machine then [server ip address] is localhost* + +## How to integrate the web front-end UI with the back-end + +To be able to use the front-end UI along with the back-end, you simply need to copy the webapp's source code files to the ```apps``` folder. For instance, you could copy the source code files of the community app to ```apps/community-app```. This would enable you to access the commuity app from the following URL: +*https://[server ip address]/fineract-provider/apps/community-app?baseApiUrl=https://[server ip address]* From 69d1e62736f0bce3c2bbc7132625b3c731156286 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 4 May 2016 20:44:44 +0530 Subject: [PATCH 10/25] Updating release notes for 16.05.01.RELEASE --- MIFOS-CHANGELOG.md | 38 ++++ api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 177 ++++++++++++----- .../sample_data/load_sample_data.sql | 187 ++++++++++++------ 5 files changed, 297 insertions(+), 109 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index 4153f133927..6be2ef6b0db 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,6 +4,7 @@ Changelog Releases =============== +1. 04 May 2016 - 16.05.01.RELEASE 1. 13 Apr 2016 - 16.04.01.RELEASE 1. 23 Mar 2016 - 16.03.03.RELEASE 1. 16 Mar 2016 - 16.03.02.RELEASE @@ -87,6 +88,43 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.05.01.RELEASE +============= + +This release contains following improvements and bug fixes + +Platform & API +New Features & Improvements + + - [FINERACT-94] - Allow a recurring gap/moratorium for principal between repayments + - [MIFOSX-2405] - Add ability to mark Client Identifier as Active or Inactive + - In tranche loans, if repayment date is same as tranche disbursement date then allow to change the emi amount + - [FINERACT-144] - Performance improvement for accrual job + - [FINERACT-32] - Dormant Savings Accounts Feature + - Added MIFOS-INSTALL.md + - Customer Self Service : APIs for Third Party Beneficiary management and Third Party Account Transfers + - [FINERACT-60] - Improvements to Interest Compounding, nth day rest frequency and meeting calendar date changes + +Bugs + + - [MIFOSX-2497] - Waive specified due date penalty should not create additional row in repayment schedule for Overdue/Due Fee/Int,Principal repayment strategy + - [MIFOSX-2505] - Waived specified due date penalty/charges are not adding entries in waved column after prepay. + - Repayment schedule not regenerating when frp is changed at the time of disbursal + - Edit disbursement causes the full amount to be shown - in repayment schedule + - accrual exception while doing repayment + - adding driver property for flyway tasks in gradle, fixes migrateDB tasks in gradle + - Shares And Dividends: Adding validation to check whether savings account is his own account + +Community-app +New Features & Improvements + + - [FINERACT-32] - Dormant Savings Accounts Feature + - [MIFOSX-2705] - Fix some translation issue 'locale-zh_CN.json' + + Bugs + + - [MIFOSX-2639] - While creating the client if "Legal Form" is modified from Client to Entity then not able save the page + 16.04.01.RELEASE ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 3e3c85253ce..c3646face85 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index d35c9c7c33f..4a4e1418de5 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=16.04.01.RELEASE +releaseVersion=16.05.01.RELEASE diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index f3a432957d7..2553c8318c0 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -242,7 +242,7 @@ INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(50) DEFAULT NULL, + `name` varchar(100) DEFAULT NULL, `value` int(11) DEFAULT NULL, `date_value` date DEFAULT NULL, `enabled` tinyint(1) NOT NULL DEFAULT '0', @@ -250,9 +250,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~24 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -278,7 +278,9 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), - (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'); + (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'), + (30, 'change-emi-if-repaymentdate-same-as-disbursementdate', 0, NULL, 1, 0, 'In tranche loans, if repayment date is same as tranche disbursement date then allow to change the emi amount'), + (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -327,8 +329,8 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL, - `display_name` varchar(50) NOT NULL, + `name` varchar(100) NOT NULL, + `display_name` varchar(100) NOT NULL, `cron_expression` varchar(20) CHARACTER SET latin1 NOT NULL, `create_time` datetime NOT NULL, `task_priority` smallint(6) NOT NULL DEFAULT '5', @@ -343,31 +345,33 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-04-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-04-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-04-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-04-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-04-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-04-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-04-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-04-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-04-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-04 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-04 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-05 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-05-05 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-05 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-05 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-05-05 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-05-05 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-05-05 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-05-05 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-05-05 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-05-05 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -1004,6 +1008,8 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `client_id` bigint(20) NOT NULL, `document_type_id` int(11) NOT NULL, `document_key` varchar(50) NOT NULL, + `status` int(5) NOT NULL DEFAULT '300', + `active` int(5) DEFAULT NULL, `description` varchar(500) DEFAULT NULL, `createdby_id` bigint(20) DEFAULT NULL, `lastmodifiedby_id` bigint(20) DEFAULT NULL, @@ -1011,7 +1017,7 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `lastmodified_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique_identifier_key` (`document_type_id`,`document_key`), - UNIQUE KEY `unique_client_identifier` (`client_id`,`document_type_id`), + UNIQUE KEY `unique_active_client_identifier` (`client_id`,`document_type_id`,`active`), KEY `FK_m_client_document_m_client` (`client_id`), KEY `FK_m_client_document_m_code_value` (`document_type_id`), CONSTRAINT `FK_m_client_document_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), @@ -2032,10 +2038,9 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `term_period_frequency_enum` smallint(5) NOT NULL DEFAULT '2', `repay_every` smallint(5) NOT NULL, `repayment_period_frequency_enum` smallint(5) NOT NULL, - `repayment_frequency_nth_day_enum` smallint(5) DEFAULT '0', - `repayment_frequency_day_of_week_enum` smallint(5) DEFAULT '0', `number_of_repayments` smallint(5) NOT NULL, `grace_on_principal_periods` smallint(5) DEFAULT NULL, + `recurring_moratorium_principal_periods` smallint(5) DEFAULT NULL, `grace_on_interest_periods` smallint(5) DEFAULT NULL, `grace_interest_free_periods` smallint(5) DEFAULT NULL, `amortization_method_enum` smallint(5) NOT NULL, @@ -2128,8 +2133,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2337,6 +2342,23 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; +-- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details +DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; +CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_repayment_schedule_id` bigint(20) NOT NULL, + `effective_date` date NOT NULL, + `amount` decimal(19,6) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_additional_details_repayment_schedule_id` (`loan_repayment_schedule_id`), + CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( @@ -2407,10 +2429,16 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `reschedule_strategy_enum` smallint(5) NOT NULL, `rest_frequency_type_enum` smallint(1) NOT NULL, `rest_frequency_interval` smallint(3) NOT NULL DEFAULT '0', - `rest_freqency_date` date DEFAULT NULL, `compounding_frequency_type_enum` smallint(1) DEFAULT NULL, `compounding_frequency_interval` smallint(3) DEFAULT NULL, - `compounding_freqency_date` date DEFAULT NULL, + `rest_frequency_nth_day_enum` int(5) DEFAULT NULL, + `rest_frequency_on_day` int(5) DEFAULT NULL, + `rest_frequency_weekday_enum` int(5) DEFAULT NULL, + `compounding_frequency_nth_day_enum` int(5) DEFAULT NULL, + `compounding_frequency_on_day` int(5) DEFAULT NULL, + `is_compounding_to_be_posted_as_transaction` tinyint(1) NOT NULL DEFAULT '0', + `compounding_frequency_weekday_enum` int(5) DEFAULT NULL, + `allow_compounding_on_eod` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_m_loan_m_loan_recalculation_details` (`loan_id`), CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) @@ -2868,9 +2896,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=733 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~778 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~731 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3582,7 +3610,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (729, 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES', 0), (730, 'SHAREACCOUNT', 'REJECTADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECTADDITIONALSHARES', 0), (731, 'SHAREACCOUNT', 'REDEEMSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REDEEMSHARES', 0), - (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0); + (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0), + (733, 'SSBENEFICIARYTPT', 'READ_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'READ', 0), + (734, 'SSBENEFICIARYTPT', 'CREATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'CREATE', 0), + (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), + (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -3686,6 +3718,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( `min_number_of_repayments` smallint(5) DEFAULT NULL, `max_number_of_repayments` smallint(5) DEFAULT NULL, `grace_on_principal_periods` smallint(5) DEFAULT NULL, + `recurring_moratorium_principal_periods` smallint(5) DEFAULT NULL, `grace_on_interest_periods` smallint(5) DEFAULT NULL, `grace_interest_free_periods` smallint(5) DEFAULT NULL, `amortization_method_enum` smallint(5) NOT NULL, @@ -3814,12 +3847,18 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `reschedule_strategy_enum` smallint(5) NOT NULL, `rest_frequency_type_enum` smallint(1) NOT NULL, `rest_frequency_interval` smallint(3) NOT NULL DEFAULT '0', - `rest_freqency_date` date DEFAULT NULL, `arrears_based_on_original_schedule` tinyint(1) NOT NULL DEFAULT '0', `pre_close_interest_calculation_strategy` smallint(3) NOT NULL DEFAULT '1', `compounding_frequency_type_enum` smallint(1) DEFAULT NULL, `compounding_frequency_interval` smallint(3) DEFAULT NULL, - `compounding_freqency_date` date DEFAULT NULL, + `rest_frequency_nth_day_enum` int(5) DEFAULT NULL, + `rest_frequency_on_day` int(5) DEFAULT NULL, + `rest_frequency_weekday_enum` int(5) DEFAULT NULL, + `compounding_frequency_nth_day_enum` int(5) DEFAULT NULL, + `compounding_frequency_on_day` int(5) DEFAULT NULL, + `compounding_frequency_weekday_enum` int(5) DEFAULT NULL, + `is_compounding_to_be_posted_as_transaction` tinyint(1) NOT NULL DEFAULT '0', + `allow_compounding_on_eod` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_m_product_loan_m_product_loan_recalculation_details` (`product_id`), CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) @@ -4024,6 +4063,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `product_id` bigint(20) DEFAULT NULL, `field_officer_id` bigint(20) DEFAULT NULL, `status_enum` smallint(5) NOT NULL DEFAULT '300', + `sub_status_enum` smallint(5) NOT NULL DEFAULT '0', `account_type_enum` smallint(5) NOT NULL DEFAULT '1', `deposit_type_enum` smallint(5) NOT NULL DEFAULT '100', `submittedon_date` date NOT NULL, @@ -4081,10 +4121,10 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( KEY `FKSA00000000000002` (`group_id`), KEY `FKSA00000000000003` (`product_id`), KEY `FK_savings_account_tax_group` (`tax_group_id`), - CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FKSA00000000000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKSA00000000000002` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), - CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`) + CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`), + CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) @@ -4318,6 +4358,10 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( `min_balance_for_interest_calculation` decimal(19,6) DEFAULT NULL, `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', `tax_group_id` bigint(20) DEFAULT NULL, + `is_dormancy_tracking_active` smallint(1) DEFAULT NULL, + `days_to_inactive` int(11) DEFAULT NULL, + `days_to_dormancy` int(11) DEFAULT NULL, + `days_to_escheat` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sp_unq_name` (`name`), UNIQUE KEY `sp_unq_short_name` (`short_name`), @@ -4346,6 +4390,27 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; +-- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt +DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; +CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `app_user_id` bigint(20) NOT NULL, + `name` varchar(50) NOT NULL, + `office_id` bigint(20) NOT NULL, + `client_id` bigint(20) NOT NULL, + `account_id` bigint(20) NOT NULL, + `account_type` smallint(4) NOT NULL, + `transfer_limit` bigint(20) DEFAULT '0', + `is_active` bit(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( @@ -5273,7 +5338,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~231 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~171 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5513,6 +5578,12 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:14', 1991, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 914436650, 'root', '2015-06-03 15:26:50', 14, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 255130282, 'root', '2015-06-03 15:26:53', 59, 1), + (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -244138054, 'root', '2016-05-04 20:40:42', 277, 1), + (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', -484783519, 'root', '2016-05-04 20:40:43', 356, 1), + (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 696724338, 'root', '2016-05-04 20:40:43', 137, 1), + (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:44', 376, 1), + (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:44', 160, 1), + (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:45', 1447, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), @@ -5634,9 +5705,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1010 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_parameter: ~19 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5657,7 +5728,8 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1006, 'transactionId', 'transactionId', 'transactionId', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1007, 'selectCenterId', 'centerId', 'Enter Center Id', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), - (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL); + (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), + (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; @@ -5675,9 +5747,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~61 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~63 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5771,7 +5843,8 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (161, 'Active Loan Summary per Branch', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (162, 'Balance Outstanding', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), - (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1); + (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), + (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; @@ -5788,9 +5861,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=441 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report_parameter: ~334 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6126,7 +6199,9 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (437, 163, 2, 'toDate'), (438, 164, 5, 'branch'), (439, 164, 1, 'fromDate'), - (440, 164, 2, 'toDate'); + (440, 164, 2, 'toDate'), + (441, 165, 1010, NULL), + (442, 165, 5, NULL); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 640185f1d7b..dd6c12f57ab 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -319,7 +319,7 @@ INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(50) DEFAULT NULL, + `name` varchar(100) DEFAULT NULL, `value` int(11) DEFAULT NULL, `date_value` date DEFAULT NULL, `enabled` tinyint(1) NOT NULL DEFAULT '0', @@ -327,9 +327,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~24 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -355,7 +355,9 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (26, 'organisation-start-date', 0, NULL, 0, 0, NULL), (27, 'paymenttype-applicable-for-disbursement-charges', NULL, NULL, 0, 0, 'Is the Disbursement Entry need to be considering the fund source of the paymnet type'), (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), - (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'); + (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'), + (30, 'change-emi-if-repaymentdate-same-as-disbursementdate', 0, NULL, 1, 0, 'In tranche loans, if repayment date is same as tranche disbursement date then allow to change the emi amount'), + (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; @@ -404,8 +406,8 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `name` varchar(50) NOT NULL, - `display_name` varchar(50) NOT NULL, + `name` varchar(100) NOT NULL, + `display_name` varchar(100) NOT NULL, `cron_expression` varchar(20) CHARACTER SET latin1 NOT NULL, `create_time` datetime NOT NULL, `task_priority` smallint(6) NOT NULL DEFAULT '5', @@ -420,31 +422,33 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-04-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-04-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-04-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-04-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-04-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-04-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-04-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-04-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-04-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-04-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-04-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-04-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-04-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-04-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-04-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-04-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-04-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-05-04 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-05 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-05-04 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-05-05 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-05-05 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-05-05 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-05-05 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-05-05 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-05-05 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-05-05 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-05-05 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-05-05 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-05-05 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-05-05 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -1116,6 +1120,8 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `client_id` bigint(20) NOT NULL, `document_type_id` int(11) NOT NULL, `document_key` varchar(50) NOT NULL, + `status` int(5) NOT NULL DEFAULT '300', + `active` int(5) DEFAULT NULL, `description` varchar(500) DEFAULT NULL, `createdby_id` bigint(20) DEFAULT NULL, `lastmodifiedby_id` bigint(20) DEFAULT NULL, @@ -1123,7 +1129,7 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `lastmodified_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `unique_identifier_key` (`document_type_id`,`document_key`), - UNIQUE KEY `unique_client_identifier` (`client_id`,`document_type_id`), + UNIQUE KEY `unique_active_client_identifier` (`client_id`,`document_type_id`,`active`), KEY `FK_m_client_document_m_client` (`client_id`), KEY `FK_m_client_document_m_code_value` (`document_type_id`), CONSTRAINT `FK_m_client_document_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), @@ -2172,10 +2178,9 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `term_period_frequency_enum` smallint(5) NOT NULL DEFAULT '2', `repay_every` smallint(5) NOT NULL, `repayment_period_frequency_enum` smallint(5) NOT NULL, - `repayment_frequency_nth_day_enum` smallint(5) DEFAULT '0', - `repayment_frequency_day_of_week_enum` smallint(5) DEFAULT '0', `number_of_repayments` smallint(5) NOT NULL, `grace_on_principal_periods` smallint(5) DEFAULT NULL, + `recurring_moratorium_principal_periods` smallint(5) DEFAULT NULL, `grace_on_interest_periods` smallint(5) DEFAULT NULL, `grace_interest_free_periods` smallint(5) DEFAULT NULL, `amortization_method_enum` smallint(5) NOT NULL, @@ -2268,8 +2273,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2278,8 +2283,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( -- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; -INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `repayment_frequency_nth_day_enum`, `repayment_frequency_day_of_week_enum`, `number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES - (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 0, 0, 25, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); +INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES + (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; @@ -2481,6 +2486,23 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; +-- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details +DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; +CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_repayment_schedule_id` bigint(20) NOT NULL, + `effective_date` date NOT NULL, + `amount` decimal(19,6) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK_additional_details_repayment_schedule_id` (`loan_repayment_schedule_id`), + CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( @@ -2551,10 +2573,16 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `reschedule_strategy_enum` smallint(5) NOT NULL, `rest_frequency_type_enum` smallint(1) NOT NULL, `rest_frequency_interval` smallint(3) NOT NULL DEFAULT '0', - `rest_freqency_date` date DEFAULT NULL, `compounding_frequency_type_enum` smallint(1) DEFAULT NULL, `compounding_frequency_interval` smallint(3) DEFAULT NULL, - `compounding_freqency_date` date DEFAULT NULL, + `rest_frequency_nth_day_enum` int(5) DEFAULT NULL, + `rest_frequency_on_day` int(5) DEFAULT NULL, + `rest_frequency_weekday_enum` int(5) DEFAULT NULL, + `compounding_frequency_nth_day_enum` int(5) DEFAULT NULL, + `compounding_frequency_on_day` int(5) DEFAULT NULL, + `is_compounding_to_be_posted_as_transaction` tinyint(1) NOT NULL DEFAULT '0', + `compounding_frequency_weekday_enum` int(5) DEFAULT NULL, + `allow_compounding_on_eod` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_m_loan_m_loan_recalculation_details` (`loan_id`), CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) @@ -3040,9 +3068,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=733 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~803 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~670 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3754,7 +3782,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (729, 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'APPROVEADDITIONALSHARES', 0), (730, 'SHAREACCOUNT', 'REJECTADDITIONALSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REJECTADDITIONALSHARES', 0), (731, 'SHAREACCOUNT', 'REDEEMSHARES_SHAREACCOUNT', 'SHAREACCOUNT', 'REDEEMSHARES', 0), - (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0); + (732, 'SHAREACCOUNT', 'CLOSE_SHAREACCOUNT', 'SHAREACCOUNT', 'CLOSE', 0), + (733, 'SSBENEFICIARYTPT', 'READ_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'READ', 0), + (734, 'SSBENEFICIARYTPT', 'CREATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'CREATE', 0), + (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), + (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -3931,6 +3963,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( `min_number_of_repayments` smallint(5) DEFAULT NULL, `max_number_of_repayments` smallint(5) DEFAULT NULL, `grace_on_principal_periods` smallint(5) DEFAULT NULL, + `recurring_moratorium_principal_periods` smallint(5) DEFAULT NULL, `grace_on_interest_periods` smallint(5) DEFAULT NULL, `grace_interest_free_periods` smallint(5) DEFAULT NULL, `amortization_method_enum` smallint(5) NOT NULL, @@ -3967,8 +4000,8 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( -- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; -INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES - (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); +INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES + (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; @@ -4065,12 +4098,18 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `reschedule_strategy_enum` smallint(5) NOT NULL, `rest_frequency_type_enum` smallint(1) NOT NULL, `rest_frequency_interval` smallint(3) NOT NULL DEFAULT '0', - `rest_freqency_date` date DEFAULT NULL, `arrears_based_on_original_schedule` tinyint(1) NOT NULL DEFAULT '0', `pre_close_interest_calculation_strategy` smallint(3) NOT NULL DEFAULT '1', `compounding_frequency_type_enum` smallint(1) DEFAULT NULL, `compounding_frequency_interval` smallint(3) DEFAULT NULL, - `compounding_freqency_date` date DEFAULT NULL, + `rest_frequency_nth_day_enum` int(5) DEFAULT NULL, + `rest_frequency_on_day` int(5) DEFAULT NULL, + `rest_frequency_weekday_enum` int(5) DEFAULT NULL, + `compounding_frequency_nth_day_enum` int(5) DEFAULT NULL, + `compounding_frequency_on_day` int(5) DEFAULT NULL, + `compounding_frequency_weekday_enum` int(5) DEFAULT NULL, + `is_compounding_to_be_posted_as_transaction` tinyint(1) NOT NULL DEFAULT '0', + `allow_compounding_on_eod` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `FK_m_product_loan_m_product_loan_recalculation_details` (`product_id`), CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) @@ -4275,6 +4314,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `product_id` bigint(20) DEFAULT NULL, `field_officer_id` bigint(20) DEFAULT NULL, `status_enum` smallint(5) NOT NULL DEFAULT '300', + `sub_status_enum` smallint(5) NOT NULL DEFAULT '0', `account_type_enum` smallint(5) NOT NULL DEFAULT '1', `deposit_type_enum` smallint(5) NOT NULL DEFAULT '100', `submittedon_date` date NOT NULL, @@ -4332,10 +4372,10 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( KEY `FKSA00000000000002` (`group_id`), KEY `FKSA00000000000003` (`product_id`), KEY `FK_savings_account_tax_group` (`tax_group_id`), - CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), CONSTRAINT `FKSA00000000000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKSA00000000000002` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), - CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`) + CONSTRAINT `FKSA00000000000003` FOREIGN KEY (`product_id`) REFERENCES `m_savings_product` (`id`), + CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) @@ -4569,6 +4609,10 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( `min_balance_for_interest_calculation` decimal(19,6) DEFAULT NULL, `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', `tax_group_id` bigint(20) DEFAULT NULL, + `is_dormancy_tracking_active` smallint(1) DEFAULT NULL, + `days_to_inactive` int(11) DEFAULT NULL, + `days_to_dormancy` int(11) DEFAULT NULL, + `days_to_escheat` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sp_unq_name` (`name`), UNIQUE KEY `sp_unq_short_name` (`short_name`), @@ -4578,8 +4622,8 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( -- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; -INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`) VALUES - (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL); +INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES + (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; @@ -4599,6 +4643,27 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; +-- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt +DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; +CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `app_user_id` bigint(20) NOT NULL, + `name` varchar(50) NOT NULL, + `office_id` bigint(20) NOT NULL, + `client_id` bigint(20) NOT NULL, + `account_id` bigint(20) NOT NULL, + `account_type` smallint(4) NOT NULL, + `transfer_limit` bigint(20) DEFAULT '0', + `is_active` bit(1) NOT NULL DEFAULT b'0', + PRIMARY KEY (`id`), + UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; + + -- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( @@ -5530,7 +5595,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~296 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~269 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5770,6 +5835,12 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:18', 1249, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 1922951887, 'root', '2014-03-08 02:28:38', 110, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 2079970797, 'root', '2014-03-08 02:28:55', 327, 1), + (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -244138054, 'root', '2016-05-04 20:40:46', 198, 1), + (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', -484783519, 'root', '2016-05-04 20:40:47', 713, 1), + (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 696724338, 'root', '2016-05-04 20:40:48', 246, 1), + (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:48', 372, 1), + (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:48', 136, 1), + (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:50', 1220, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), @@ -5891,9 +5962,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1010 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_parameter: ~19 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5914,7 +5985,8 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1006, 'transactionId', 'transactionId', 'transactionId', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1007, 'selectCenterId', 'centerId', 'Enter Center Id', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), - (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL); + (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), + (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; @@ -5932,7 +6004,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=165 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.stretchy_report: ~125 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; @@ -6028,7 +6100,8 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (161, 'Active Loan Summary per Branch', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (162, 'Balance Outstanding', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), - (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1); + (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), + (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; @@ -6045,9 +6118,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=441 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~334 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6383,7 +6456,9 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (437, 163, 2, 'toDate'), (438, 164, 5, 'branch'), (439, 164, 1, 'fromDate'), - (440, 164, 2, 'toDate'); + (440, 164, 2, 'toDate'), + (441, 165, 1010, NULL), + (442, 165, 5, NULL); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; From e6ca76d1aa34e3b763ae26adcdb70e01376f7984 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Thu, 12 May 2016 14:12:27 +0530 Subject: [PATCH 11/25] [MIFOSX-2676] - Report is not working only in linux environment due to case sensitive alias name for a table --- .../pentahoReports/Balance Outstanding.prpt | Bin 9891 -> 9890 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt b/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt index 7b9f139ea0e2d255613629033f2dc6dec76bb7fe..b4f94dd8c42e612ba1d14888a243cf7ad8fe310c 100644 GIT binary patch delta 1732 zcmY+EdpOg39LM+jVY6W_b6MpqW)s;?jOrv&k+LPkDw10?OKurGa@jITQBJ-%h0_j6 zolsF&gj80NgrkduT5g4uYRmPM-_vuR^ZowudcM#5{rSAVm*@GOcP@0kerf4Bs2u)? z#@-4o-D0)N%-0Fbpeg*Qm#ehq;%9V-E>|}_+?W3a)OfHl#%Tf6hF8<#gXjlXHEw@C}G5V^B3gLT7Fp|yCT(k)> z%(=7-&7G=xlFr>>8cMjzHrZ3*z{q1-2Nf4CvK+Z{+^KQo=?1<-Y9HCXqMxeCd*r}p zmYirgC=QBlt?JOBH#1tY9XyR%SBfkWP)m#_bSj4oUDM&cC&Dk;A0L|i!QqR+_nTB-HDHJUMjVsszFxo^0MW{bdH4e>}^z1 zJ29*)Wu#1@jPD^W_M9(bZ#sF?&AQLpkI^~#up)jUeQZWP`mJ+WTjG?yi*Q3z(FH=6 z%t;umj+S4G77Wb>>=fUK?k|j)ZhGt*xmE4`ir80Y(i-ZO_I1aF6Xw78y^K{l<$Eq) z>7{0qg*?HZU==qVJ^a|C^krE!fcjUQ7@67v}@{!woOj5KCax{ z*kf?mV7TqlAdhw?l4N+uo56s34OZ(vlB7RbGyt=eCotrVA-IqaA;m-f1R&7X^D#G8 zX7DrYPWVOOmJf~1B`%?^)h$@Pqm^sWecQe`lDRMc4Fj9xdqxmQIpDZSHZ7~Hh|3=A zz&X|YvWswH=E{u+YwOlEEGEn^iRxb`m-YHQ-^uOqs;xU(c$4qGI`c25DYN`nL#MR8 z&Gptkz_jca<&7*u)uR-&T#JWSZPGJMSrr??C#8m$jw*JTnVb4F?wttERaJ6WqYLlY zx`poXcTjcC=k`t}J}YdJwEY|*&ZVQy(jt6&^t#54f?a)n&b@z=ca{a(EIWcm+uAr- z`erq_VM7a=Z?CEG0s$n6s+rOKsYugEj+)P%({pzR>nAZ~812_D^6VRgGUkRzA}`qt zEXG+v*TFX2N~jSeVY!t+pWYv%bh zDQN%LTynmov*mqf+GPKy(Kiz_pT2YrG?f68Eb&2&RC4=nu_6uILsI;(KCv3h$$fW# zA&b|p*+PG7F*38{YifipzeBRxt@dj>uv4>zq##j^PK@)H3H-9|RcGM)bG_2~pjXF5 z_u8bQ!{Dx3BpSLFg5$m9|wrk8D@x&Nb;abl4#;KvLJ((L)FeeL8(vFs; zT=@|z?{{6P@p~M7ia5fI&AD^h&b1C!j-4H68?UZ>*z2cY%B#!x^;q!hqW7Wi*p{0K zSK?Cq1oOW|)!Rh{SgloMC43;hNYFRR*!z|xd64qW;`93RO&s~|Q>VAj^IJ8Ei!un( zJeTy9)_qotdh`XmsDzRg$%!#w5>LVW zF`k#B*!vlf)QJ}AZ@E|X8XBdyMhx>_rkA>TJ&-u!$+F)yJOe}gW$M#5l#%I?1mEl}4^4MhlEiUOreiFgVM8G;1>Ut^Mn=Cj~PY49in9vYJIEOO9-f)Gr7SGr+fLN?HSFGQ4|bY(513zYt!PQ-v@G97<$ z0C6J(4P+X883V@1-ta#dz%sI+hKB812>MB+o%Z+rE2IAV%nOWk;G@bwY(&w0dM7mL z$9ev`g%lzLpNwcQtO*P#p0KGVh@+U{y-A#f&IrK`3Qgsp77DdDJd76<#slVLA|CQY zEC_)nl?Lx706VG)KI;OaAOz7=8eXJ_LIwKs{G;{;2Zj1C)VtaucZ(2oQE9kLA_{fD hKQ=siA;Gx(1mgHfSC$g`$J^k)PbVc5%HHtD>R$my0jmH2 delta 1689 zcmY+Edpy(oAIJAybJ>Y)wE1oOY3!;njbP`t5~-g~8P!pW&Cuzb+)jNY z99p?`4xLl7%#q`gTRU!T!inEPLW?%dWz^_6$HO_l-~0W?^N;uK_4?;s=u_lVnGelq zBQFMdvNtGchde=!E{(?-v@=|ee}{9sC#pi<&)RzO>_{_o-(#RNDi0BPUM(r1dmi-y z<{tJj|5{RRclB3!#D2z_b;Zk-Vuicgr!vvMyV?I>Pv#?ZR`xem{O%uV$cCtY`YVzXgs z^H1hh?IYQ}tU=E}A+6mq&@du>Ykz#}EOa8LVYDqXiLO+|WE;P~9xkdCSWQ|5_a896 z`7U&a4tt%$h#`u$-@V0+;PAUl#=Ws84(j&yk9==$@gL?CcOcI?u3T7_Qx;yFlI^+U*DjV`iSY4ih~b@@eLekPgUgr91Zh@?Z#8-P zl3{!4wVT-nN^O_Q{Dd2H_f_EIS%$rCCN)%&yyf&Jt;l z4Lj`pLx*J76T#k2dC1v*v`3ygV=+`_<@%Nyg1Xkiu)VbcN>b&X=OGRMQ*`j#)5Q% zY{(D%O0s1Kq`Q4B?EPvwFR7M$qP!WK}V zX94*Fu^tUl1BG57ln&hWx9X0d<0lr)R6Za{KbbTXlBx)u^OV|a@t!DHxPp5s+MU{` zWj_-~qA<&`fQkwW=zJEe?v;E3ic&{`?F(nhY?IR8zw5wEXx``(B1VlaSmf_eY} z&BX6MtWFHgY8LsThVu@j4neYS1UT4Wmrx{UV)28HBzr+~%SmsuZGtp}9xLX~QYAvm7Y@_<{GD;6ph((d|j^Tb{ z1m_+fTl0MPbys1ubZ*;RS#A-s-_iBs2424X&>=gUyp3O%)SXS6a>}^UW}{+-A8FFy z-#JTO*lHZx*gt-#AJuNcfmJfCL^5b|E}*s~FdSY__#CgqzHkY2x;ef-Je zo-eGqscmtCuG>U};3DC7>FLI93Nrcr_tukHi^KE?E(IztBqx+!|_cr75KFj0Tb{dr}T08h1qqqKoLH3V*_4W@NA0vif; zZ5VI*_Yc>F!L-OQm=SDEis_0Jxi&DM(LgAb1oqKr@MCBYM+=5$putm`1#0oPRXeK$ z`gBWpKL$9^$$xJL=jbGOg8|5)Z$h9>3k84K8Kx8A2qU1O)7JWofir^$R~vy4#{byb mM<&95FaaDgiLt|Z)zTXMytK4e)WJ|I>7fOKxvdC?!TtcZV+!d2 From 911df1d3179e7d94631ffe91d17963755fba8059 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Fri, 13 May 2016 15:50:32 +0530 Subject: [PATCH 12/25] Updating release notes for formal 16.05.01.RELEASE --- MIFOS-CHANGELOG.md | 22 +- .../migrations/sample_data/barebones_db.sql | 749 +++++++++--------- .../sample_data/load_sample_data.sql | 749 +++++++++--------- 3 files changed, 770 insertions(+), 750 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index 6be2ef6b0db..f385f0b6436 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,7 +4,7 @@ Changelog Releases =============== -1. 04 May 2016 - 16.05.01.RELEASE +1. 13 May 2016 - 16.05.01.RELEASE 1. 13 Apr 2016 - 16.04.01.RELEASE 1. 23 Mar 2016 - 16.03.03.RELEASE 1. 16 Mar 2016 - 16.03.02.RELEASE @@ -114,17 +114,35 @@ Bugs - accrual exception while doing repayment - adding driver property for flyway tasks in gradle, fixes migrateDB tasks in gradle - Shares And Dividends: Adding validation to check whether savings account is his own account + - Stop interest posting once the loan has moved to overpaid state (Related to FINERACT-60) + - Fixed issue with loan pre-closure (Related to FINERACT-60) + - Stop interest calculation as well as posting income transaction, once the loan has moved to NPA state (Related to FINERACT-60) + - [Fineract-151] - If the disbursement date is modified during loan disbursement the first repayment schedule generated is not proper + - adding new supported parameter recurringMoratoriumOnPrincipalPeriods on loanProduct (Related to FINERACT-94) + - [FINERACT-152] - Should not allowed to add date field for the "Savings no activity fee" if the fee/penalty is added after submitting the savings application. + - [FINERACT-153] - Should not allowed to pay "Savings no activity charge" if the savings account is in active state + - [FINERACT-154] - If "Post Interest For Savings" and "Update Savings Dormant Accounts" scheduler jobs are executed together then post interest scheduler job fails + - [FINERACT-108] - Disbursement charge applied to tranche loan is not getting displayed in repayment schedule after submission of loan application, approval and disbursement of the loan + - [FINERACT-155] - Original schedule is getting modified if the advance repayment is done and after second tranche is disbursed? + - [MIFOSX-2565] - In Penalties, Fees, Interest, Principal order with floating interest rate attached, prepay of loan will move the loan account to closed state + - [MIFOSX-2676] - Balance outstanding report not working + - [MIFOSX-2652] - In Variable installments if the repayment is deleted, then the repayment schedule generated after loan repayment is not proper Community-app New Features & Improvements - [FINERACT-32] - Dormant Savings Accounts Feature - [MIFOSX-2705] - Fix some translation issue 'locale-zh_CN.json' + - [MIFOSX-2405] - Add ability to mark Client Identifier as Active or Inactive Bugs - [MIFOSX-2639] - While creating the client if "Legal Form" is modified from Client to Entity then not able save the page - + - [FINERACT-152] - Should not allowed to add date field for the "Savings no activity fee" if the fee/penalty is added after submitting the savings application. + - [FINERACT-153] - Should not allowed to pay "Savings no activity charge" if the savings account is in active state + - [MIFOSX-2707] - While creating the account closure the date picker is not same as other date pickers in the community app + - [MIFOSX-2712] - After enabling maker checker tasks, Client awaiting for activation is not getting displayed under Pending approval in checker in box and tasks + 16.04.01.RELEASE ============= diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 2553c8318c0..5c9dc18acbe 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-default.acc_accounting_rule +-- Dumping structure for table mifostenant-barebone.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_account +-- Dumping structure for table mifostenant-barebone.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,12 +59,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_closure +-- Dumping structure for table mifostenant-barebone.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -86,12 +86,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -103,12 +103,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_journal_entry +-- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -161,12 +161,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_product_mapping +-- Dumping structure for table mifostenant-barebone.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -183,12 +183,12 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_rule_tags +-- Dumping structure for table mifostenant-barebone.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -203,12 +203,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_account_number_format +-- Dumping structure for table mifostenant-barebone.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -218,12 +218,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_cache +-- Dumping structure for table mifostenant-barebone.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -231,14 +231,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_configuration +-- Dumping structure for table mifostenant-barebone.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -252,7 +252,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -284,7 +284,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_external_service +-- Dumping structure for table mifostenant-barebone.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -293,7 +293,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -301,7 +301,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_external_service_properties +-- Dumping structure for table mifostenant-barebone.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -311,7 +311,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -325,7 +325,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.job +-- Dumping structure for table mifostenant-barebone.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -347,35 +347,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-barebone.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-04 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-04 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-05 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-05 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-05-05 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-05 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-05 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-05-05 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-05-05 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-05-05 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-05-05 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-05-05 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-05-05 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-05-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-05-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-05-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-05-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-05-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-05-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-05-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-05-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-05-14 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.job_run_history +-- Dumping structure for table mifostenant-barebone.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -392,12 +392,12 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_taxonomy +-- Dumping structure for table mifostenant-barebone.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -410,7 +410,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -464,7 +464,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -475,14 +475,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_xbrl_namespace +-- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -492,7 +492,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -505,7 +505,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_details +-- Dumping structure for table mifostenant-barebone.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -537,12 +537,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -566,12 +566,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -585,12 +585,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_transaction +-- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -619,12 +619,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser +-- Dumping structure for table mifostenant-barebone.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -653,7 +653,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), @@ -661,7 +661,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser_previous_password +-- Dumping structure for table mifostenant-barebone.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -673,12 +673,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser_role +-- Dumping structure for table mifostenant-barebone.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -690,14 +690,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar +-- Dumping structure for table mifostenant-barebone.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -721,12 +721,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar_history +-- Dumping structure for table mifostenant-barebone.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -748,12 +748,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar_instance +-- Dumping structure for table mifostenant-barebone.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -765,12 +765,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_cashiers +-- Dumping structure for table mifostenant-barebone.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -789,12 +789,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_cashier_transactions +-- Dumping structure for table mifostenant-barebone.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -812,12 +812,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_charge +-- Dumping structure for table mifostenant-barebone.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -847,12 +847,12 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client +-- Dumping structure for table mifostenant-barebone.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -927,12 +927,12 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_attendance +-- Dumping structure for table mifostenant-barebone.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -946,12 +946,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_charge +-- Dumping structure for table mifostenant-barebone.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -977,12 +977,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -996,12 +996,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_identifier +-- Dumping structure for table mifostenant-barebone.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1024,12 +1024,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_non_person +-- Dumping structure for table mifostenant-barebone.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1045,12 +1045,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_transaction +-- Dumping structure for table mifostenant-barebone.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1073,12 +1073,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_code +-- Dumping structure for table mifostenant-barebone.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1088,7 +1088,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code: ~24 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code: ~24 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1118,7 +1118,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_code_value +-- Dumping structure for table mifostenant-barebone.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1134,7 +1134,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1), @@ -1152,7 +1152,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_currency +-- Dumping structure for table mifostenant-barebone.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1166,7 +1166,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1335,7 +1335,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1350,12 +1350,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1372,12 +1372,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1404,12 +1404,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1420,12 +1420,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1438,12 +1438,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1465,12 +1465,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_document +-- Dumping structure for table mifostenant-barebone.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1486,12 +1486,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_relation +-- Dumping structure for table mifostenant-barebone.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1502,7 +1502,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1513,7 +1513,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_to_entity_access +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1529,12 +1529,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1548,12 +1548,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_floating_rates +-- Dumping structure for table mifostenant-barebone.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1568,12 +1568,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_floating_rates_periods +-- Dumping structure for table mifostenant-barebone.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1591,12 +1591,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_fund +-- Dumping structure for table mifostenant-barebone.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1607,12 +1607,12 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group +-- Dumping structure for table mifostenant-barebone.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1648,12 +1648,12 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_client +-- Dumping structure for table mifostenant-barebone.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1664,12 +1664,12 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_level +-- Dumping structure for table mifostenant-barebone.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1683,7 +1683,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1691,7 +1691,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_roles +-- Dumping structure for table mifostenant-barebone.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1708,12 +1708,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor +-- Dumping structure for table mifostenant-barebone.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1741,12 +1741,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor_funding_details +-- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1764,12 +1764,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor_transaction +-- Dumping structure for table mifostenant-barebone.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1786,12 +1786,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_holiday +-- Dumping structure for table mifostenant-barebone.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1806,12 +1806,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_holiday_office +-- Dumping structure for table mifostenant-barebone.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1823,12 +1823,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook +-- Dumping structure for table mifostenant-barebone.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1847,12 +1847,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_configuration +-- Dumping structure for table mifostenant-barebone.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1865,12 +1865,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_registered_events +-- Dumping structure for table mifostenant-barebone.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1882,12 +1882,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_schema +-- Dumping structure for table mifostenant-barebone.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1901,7 +1901,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -1914,7 +1914,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_templates +-- Dumping structure for table mifostenant-barebone.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1922,7 +1922,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -1930,7 +1930,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_image +-- Dumping structure for table mifostenant-barebone.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1939,12 +1939,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1960,12 +1960,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1977,12 +1977,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2000,12 +2000,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan +-- Dumping structure for table mifostenant-barebone.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2141,12 +2141,12 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2179,12 +2179,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2197,12 +2197,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_arrears_aging +-- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2216,12 +2216,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_charge +-- Dumping structure for table mifostenant-barebone.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2252,12 +2252,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2272,12 +2272,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_collateral +-- Dumping structure for table mifostenant-barebone.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2292,12 +2292,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2310,12 +2310,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2337,12 +2337,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2354,12 +2354,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2378,12 +2378,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2397,12 +2397,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2415,12 +2415,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2444,12 +2444,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2489,12 +2489,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2519,12 +2519,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_reschedule_request +-- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2559,12 +2559,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_term_variations +-- Dumping structure for table mifostenant-barebone.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2580,12 +2580,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_tranche_charges +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2598,12 +2598,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2616,12 +2616,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_transaction +-- Dumping structure for table mifostenant-barebone.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2654,12 +2654,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2677,12 +2677,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2705,12 +2705,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_meeting +-- Dumping structure for table mifostenant-barebone.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2721,12 +2721,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_note +-- Dumping structure for table mifostenant-barebone.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2759,12 +2759,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_office +-- Dumping structure for table mifostenant-barebone.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2780,14 +2780,14 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_office_transaction +-- Dumping structure for table mifostenant-barebone.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2805,12 +2805,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_organisation_currency +-- Dumping structure for table mifostenant-barebone.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2823,14 +2823,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_password_validation_policy +-- Dumping structure for table mifostenant-barebone.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2841,7 +2841,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -2849,7 +2849,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_payment_detail +-- Dumping structure for table mifostenant-barebone.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2864,12 +2864,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_payment_type +-- Dumping structure for table mifostenant-barebone.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2880,12 +2880,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_permission +-- Dumping structure for table mifostenant-barebone.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2898,7 +2898,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~731 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_permission: ~613 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3618,7 +3618,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_portfolio_account_associations +-- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3639,12 +3639,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_portfolio_command_source +-- Dumping structure for table mifostenant-barebone.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3682,12 +3682,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan +-- Dumping structure for table mifostenant-barebone.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3753,12 +3753,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_charge +-- Dumping structure for table mifostenant-barebone.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -3769,12 +3769,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3792,12 +3792,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3815,12 +3815,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3833,12 +3833,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3864,12 +3864,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3881,12 +3881,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3902,12 +3902,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_mix +-- Dumping structure for table mifostenant-barebone.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3920,12 +3920,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_criteria +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3942,12 +3942,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3969,12 +3969,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_history +-- Dumping structure for table mifostenant-barebone.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3990,12 +3990,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provision_category +-- Dumping structure for table mifostenant-barebone.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4005,7 +4005,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4015,7 +4015,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_role +-- Dumping structure for table mifostenant-barebone.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4026,14 +4026,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_role_permission +-- Dumping structure for table mifostenant-barebone.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4045,14 +4045,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account +-- Dumping structure for table mifostenant-barebone.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4127,12 +4127,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_charge +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4163,12 +4163,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4182,12 +4182,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4202,12 +4202,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4225,12 +4225,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_transaction +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4257,12 +4257,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4276,12 +4276,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4297,12 +4297,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4321,12 +4321,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_product +-- Dumping structure for table mifostenant-barebone.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4369,12 +4369,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_product_charge +-- Dumping structure for table mifostenant-barebone.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4385,12 +4385,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4406,12 +4406,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4424,12 +4424,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account +-- Dumping structure for table mifostenant-barebone.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4483,12 +4483,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_charge +-- Dumping structure for table mifostenant-barebone.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4517,12 +4517,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4536,12 +4536,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_dividend_details +-- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4557,12 +4557,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_transactions +-- Dumping structure for table mifostenant-barebone.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4579,12 +4579,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product +-- Dumping structure for table mifostenant-barebone.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4623,12 +4623,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_charge +-- Dumping structure for table mifostenant-barebone.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4639,12 +4639,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4666,12 +4666,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_market_price +-- Dumping structure for table mifostenant-barebone.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4683,12 +4683,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_staff +-- Dumping structure for table mifostenant-barebone.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4714,12 +4714,12 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_staff_assignment_history +-- Dumping structure for table mifostenant-barebone.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4738,12 +4738,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_surveys +-- Dumping structure for table mifostenant-barebone.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4756,12 +4756,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_components +-- Dumping structure for table mifostenant-barebone.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4775,12 +4775,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_lookup_tables +-- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4795,12 +4795,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_questions +-- Dumping structure for table mifostenant-barebone.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4815,12 +4815,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_responses +-- Dumping structure for table mifostenant-barebone.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4833,12 +4833,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_scorecards +-- Dumping structure for table mifostenant-barebone.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4862,12 +4862,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_component +-- Dumping structure for table mifostenant-barebone.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4893,12 +4893,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_component_history +-- Dumping structure for table mifostenant-barebone.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4919,12 +4919,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_group +-- Dumping structure for table mifostenant-barebone.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4940,12 +4940,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_group_mappings +-- Dumping structure for table mifostenant-barebone.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4968,12 +4968,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tellers +-- Dumping structure for table mifostenant-barebone.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4995,12 +4995,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_template +-- Dumping structure for table mifostenant-barebone.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5012,12 +5012,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5027,12 +5027,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_template_m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5042,12 +5042,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_working_days +-- Dumping structure for table mifostenant-barebone.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5057,14 +5057,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_access_token +-- Dumping structure for table mifostenant-barebone.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5076,12 +5076,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_client_details +-- Dumping structure for table mifostenant-barebone.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5098,14 +5098,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_refresh_token +-- Dumping structure for table mifostenant-barebone.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5113,12 +5113,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_likelihoods +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5127,12 +5127,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5142,12 +5142,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_scores +-- Dumping structure for table mifostenant-barebone.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5156,7 +5156,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5182,7 +5182,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5193,7 +5193,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5206,19 +5206,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.rpt_sequence +-- Dumping structure for table mifostenant-barebone.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.r_enum_value +-- Dumping structure for table mifostenant-barebone.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5231,7 +5231,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-barebone.r_enum_value: ~64 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), @@ -5301,7 +5301,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.scheduler_detail +-- Dumping structure for table mifostenant-barebone.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5311,14 +5311,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.schema_version +-- Dumping structure for table mifostenant-barebone.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5338,7 +5338,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~171 rows (approximately) +-- Dumping data for table mifostenant-barebone.schema_version: ~262 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5584,6 +5584,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:44', 376, 1), (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:44', 160, 1), (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:45', 1447, 1), + (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 44, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), @@ -5662,7 +5663,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.sms_messages_outbound +-- Dumping structure for table mifostenant-barebone.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5681,12 +5682,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5707,7 +5708,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5733,7 +5734,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_report +-- Dumping structure for table mifostenant-barebone.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5749,7 +5750,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~63 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report: ~63 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5848,7 +5849,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_report_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5863,7 +5864,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6205,7 +6206,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.x_registered_table +-- Dumping structure for table mifostenant-barebone.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6214,12 +6215,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.x_table_column_code_mappings +-- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6229,7 +6230,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index dd6c12f57ab..300cb96b9df 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-reference.acc_accounting_rule +-- Dumping structure for table mifostenant-sampledata.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -120,7 +120,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_closure +-- Dumping structure for table mifostenant-sampledata.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -142,12 +142,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -159,14 +159,14 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_journal_entry +-- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -219,12 +219,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_product_mapping +-- Dumping structure for table mifostenant-sampledata.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -241,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -265,7 +265,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_rule_tags +-- Dumping structure for table mifostenant-sampledata.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -280,12 +280,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_account_number_format +-- Dumping structure for table mifostenant-sampledata.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -295,12 +295,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_cache +-- Dumping structure for table mifostenant-sampledata.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -308,14 +308,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_configuration +-- Dumping structure for table mifostenant-sampledata.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -329,7 +329,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -361,7 +361,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_external_service +-- Dumping structure for table mifostenant-sampledata.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -370,7 +370,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -378,7 +378,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_external_service_properties +-- Dumping structure for table mifostenant-sampledata.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -388,7 +388,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -402,7 +402,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.job +-- Dumping structure for table mifostenant-sampledata.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -424,35 +424,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-05-04 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-05 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-05-04 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-05-05 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-05-05 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-05-05 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-05-05 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-05-05 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-05-05 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-05-05 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-05-05 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-05-05 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-05-05 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-05-05 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-05-05 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-05-05 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 5, NULL, NULL, '2016-05-05 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-05-05 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-05-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-05-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-05-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-05-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-05-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-05-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-05-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-05-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-05-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-05-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-05-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-05-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-05-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-05-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-05-14 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.job_run_history +-- Dumping structure for table mifostenant-sampledata.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -469,7 +469,7 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job_run_history: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job_run_history: ~18 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -493,7 +493,7 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_taxonomy +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -506,7 +506,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -560,7 +560,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -571,14 +571,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_xbrl_namespace +-- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -588,7 +588,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -601,7 +601,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_details +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -633,12 +633,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -662,12 +662,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -681,12 +681,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_transaction +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -715,12 +715,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser +-- Dumping structure for table mifostenant-sampledata.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -749,7 +749,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -760,7 +760,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser_previous_password +-- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -772,12 +772,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser_role +-- Dumping structure for table mifostenant-sampledata.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -789,7 +789,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -799,7 +799,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar +-- Dumping structure for table mifostenant-sampledata.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -823,12 +823,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar_history +-- Dumping structure for table mifostenant-sampledata.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -850,12 +850,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar_instance +-- Dumping structure for table mifostenant-sampledata.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -867,12 +867,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_cashiers +-- Dumping structure for table mifostenant-sampledata.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -891,12 +891,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_cashier_transactions +-- Dumping structure for table mifostenant-sampledata.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -914,12 +914,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_charge +-- Dumping structure for table mifostenant-sampledata.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -949,14 +949,14 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client +-- Dumping structure for table mifostenant-sampledata.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1031,7 +1031,7 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`) VALUES (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -1044,7 +1044,7 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_attendance +-- Dumping structure for table mifostenant-sampledata.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1058,12 +1058,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_charge +-- Dumping structure for table mifostenant-sampledata.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1089,12 +1089,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1108,12 +1108,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_identifier +-- Dumping structure for table mifostenant-sampledata.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1136,12 +1136,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_non_person +-- Dumping structure for table mifostenant-sampledata.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1157,12 +1157,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_transaction +-- Dumping structure for table mifostenant-sampledata.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1185,12 +1185,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_code +-- Dumping structure for table mifostenant-sampledata.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1200,7 +1200,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code: ~24 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code: ~24 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1230,7 +1230,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_code_value +-- Dumping structure for table mifostenant-sampledata.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1246,7 +1246,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1), @@ -1278,7 +1278,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_currency +-- Dumping structure for table mifostenant-sampledata.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1292,7 +1292,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1461,7 +1461,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1476,12 +1476,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1498,12 +1498,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1530,12 +1530,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1546,12 +1546,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1564,12 +1564,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1591,12 +1591,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_document +-- Dumping structure for table mifostenant-sampledata.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1612,12 +1612,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_relation +-- Dumping structure for table mifostenant-sampledata.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1628,7 +1628,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1639,7 +1639,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_to_entity_access +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1655,12 +1655,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1674,12 +1674,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1694,12 +1694,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_floating_rates_periods +-- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1717,12 +1717,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_fund +-- Dumping structure for table mifostenant-sampledata.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1733,14 +1733,14 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group +-- Dumping structure for table mifostenant-sampledata.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1776,7 +1776,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -1786,7 +1786,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_client +-- Dumping structure for table mifostenant-sampledata.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1797,7 +1797,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -1809,7 +1809,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_level +-- Dumping structure for table mifostenant-sampledata.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1823,7 +1823,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1831,7 +1831,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_roles +-- Dumping structure for table mifostenant-sampledata.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1848,12 +1848,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor +-- Dumping structure for table mifostenant-sampledata.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1881,12 +1881,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor_funding_details +-- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1904,12 +1904,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor_transaction +-- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1926,12 +1926,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_holiday +-- Dumping structure for table mifostenant-sampledata.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1946,12 +1946,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_holiday_office +-- Dumping structure for table mifostenant-sampledata.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1963,12 +1963,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook +-- Dumping structure for table mifostenant-sampledata.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1987,12 +1987,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_configuration +-- Dumping structure for table mifostenant-sampledata.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2005,12 +2005,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_registered_events +-- Dumping structure for table mifostenant-sampledata.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2022,12 +2022,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_schema +-- Dumping structure for table mifostenant-sampledata.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2041,7 +2041,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2054,7 +2054,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_templates +-- Dumping structure for table mifostenant-sampledata.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2062,7 +2062,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -2070,7 +2070,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_image +-- Dumping structure for table mifostenant-sampledata.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2079,12 +2079,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2100,12 +2100,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2117,12 +2117,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2140,12 +2140,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan +-- Dumping structure for table mifostenant-sampledata.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2281,14 +2281,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2321,12 +2321,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2339,12 +2339,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_arrears_aging +-- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2358,12 +2358,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2394,14 +2394,14 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2416,12 +2416,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_collateral +-- Dumping structure for table mifostenant-sampledata.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2436,12 +2436,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2454,12 +2454,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2481,12 +2481,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2498,12 +2498,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2522,12 +2522,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2541,12 +2541,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2559,12 +2559,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2588,12 +2588,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2633,7 +2633,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -2664,7 +2664,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2689,12 +2689,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_reschedule_request +-- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2729,12 +2729,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_term_variations +-- Dumping structure for table mifostenant-sampledata.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2750,12 +2750,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_tranche_charges +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2768,12 +2768,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2786,12 +2786,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_transaction +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2824,12 +2824,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2847,12 +2847,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2875,12 +2875,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_meeting +-- Dumping structure for table mifostenant-sampledata.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2891,12 +2891,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_note +-- Dumping structure for table mifostenant-sampledata.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2929,12 +2929,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_office +-- Dumping structure for table mifostenant-sampledata.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2950,7 +2950,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -2959,7 +2959,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_office_transaction +-- Dumping structure for table mifostenant-sampledata.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2977,12 +2977,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_organisation_currency +-- Dumping structure for table mifostenant-sampledata.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2995,14 +2995,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_password_validation_policy +-- Dumping structure for table mifostenant-sampledata.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3013,7 +3013,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -3021,7 +3021,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_payment_detail +-- Dumping structure for table mifostenant-sampledata.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3036,12 +3036,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_payment_type +-- Dumping structure for table mifostenant-sampledata.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3052,12 +3052,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_permission +-- Dumping structure for table mifostenant-sampledata.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3070,7 +3070,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~670 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_permission: ~676 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3790,7 +3790,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_portfolio_account_associations +-- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3811,12 +3811,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_portfolio_command_source +-- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3854,7 +3854,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~75 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~71 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -3932,7 +3932,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan +-- Dumping structure for table mifostenant-sampledata.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3998,14 +3998,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4016,14 +4016,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4041,14 +4041,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4066,12 +4066,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4084,12 +4084,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4115,12 +4115,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4132,12 +4132,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4153,12 +4153,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_mix +-- Dumping structure for table mifostenant-sampledata.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4171,12 +4171,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_criteria +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4193,12 +4193,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4220,12 +4220,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_history +-- Dumping structure for table mifostenant-sampledata.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4241,12 +4241,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provision_category +-- Dumping structure for table mifostenant-sampledata.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4256,7 +4256,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4266,7 +4266,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_role +-- Dumping structure for table mifostenant-sampledata.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4277,14 +4277,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_role_permission +-- Dumping structure for table mifostenant-sampledata.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4296,14 +4296,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account +-- Dumping structure for table mifostenant-sampledata.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4378,12 +4378,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4414,12 +4414,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4433,12 +4433,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4453,12 +4453,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4476,12 +4476,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_transaction +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4508,12 +4508,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4527,12 +4527,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4548,12 +4548,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4572,12 +4572,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_product +-- Dumping structure for table mifostenant-sampledata.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4620,14 +4620,14 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_product_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4638,12 +4638,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4659,12 +4659,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4677,12 +4677,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account +-- Dumping structure for table mifostenant-sampledata.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4736,12 +4736,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_charge +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4770,12 +4770,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4789,12 +4789,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_dividend_details +-- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4810,12 +4810,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_transactions +-- Dumping structure for table mifostenant-sampledata.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4832,12 +4832,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product +-- Dumping structure for table mifostenant-sampledata.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4876,12 +4876,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_charge +-- Dumping structure for table mifostenant-sampledata.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4892,12 +4892,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4919,12 +4919,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_market_price +-- Dumping structure for table mifostenant-sampledata.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4936,12 +4936,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_staff +-- Dumping structure for table mifostenant-sampledata.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4967,7 +4967,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -4976,7 +4976,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_staff_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4995,12 +4995,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_surveys +-- Dumping structure for table mifostenant-sampledata.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5013,12 +5013,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_components +-- Dumping structure for table mifostenant-sampledata.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5032,12 +5032,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_lookup_tables +-- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5052,12 +5052,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_questions +-- Dumping structure for table mifostenant-sampledata.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5072,12 +5072,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_responses +-- Dumping structure for table mifostenant-sampledata.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5090,12 +5090,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_scorecards +-- Dumping structure for table mifostenant-sampledata.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5119,12 +5119,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_component +-- Dumping structure for table mifostenant-sampledata.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5150,12 +5150,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_component_history +-- Dumping structure for table mifostenant-sampledata.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5176,12 +5176,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_group +-- Dumping structure for table mifostenant-sampledata.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5197,12 +5197,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_group_mappings +-- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5225,12 +5225,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tellers +-- Dumping structure for table mifostenant-sampledata.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5252,12 +5252,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_template +-- Dumping structure for table mifostenant-sampledata.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5269,12 +5269,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5284,12 +5284,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_template_m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5299,12 +5299,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_working_days +-- Dumping structure for table mifostenant-sampledata.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5314,14 +5314,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_access_token +-- Dumping structure for table mifostenant-sampledata.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5333,12 +5333,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_client_details +-- Dumping structure for table mifostenant-sampledata.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5355,14 +5355,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_refresh_token +-- Dumping structure for table mifostenant-sampledata.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5370,12 +5370,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_likelihoods +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5384,12 +5384,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5399,12 +5399,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_scores +-- Dumping structure for table mifostenant-sampledata.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5413,7 +5413,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5439,7 +5439,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5450,7 +5450,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5463,19 +5463,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.rpt_sequence +-- Dumping structure for table mifostenant-sampledata.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.r_enum_value +-- Dumping structure for table mifostenant-sampledata.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5488,7 +5488,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-sampledata.r_enum_value: ~64 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), @@ -5558,7 +5558,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.scheduler_detail +-- Dumping structure for table mifostenant-sampledata.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5568,14 +5568,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.schema_version +-- Dumping structure for table mifostenant-sampledata.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5595,7 +5595,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~269 rows (approximately) +-- Dumping data for table mifostenant-sampledata.schema_version: ~323 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5841,6 +5841,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:48', 372, 1), (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:48', 136, 1), (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:50', 1220, 1), + (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 22, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), @@ -5919,7 +5920,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.sms_messages_outbound +-- Dumping structure for table mifostenant-sampledata.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5938,12 +5939,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5964,7 +5965,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5990,7 +5991,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_report +-- Dumping structure for table mifostenant-sampledata.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6006,7 +6007,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~125 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report: ~63 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6105,7 +6106,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_report_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6120,7 +6121,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6462,7 +6463,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.x_registered_table +-- Dumping structure for table mifostenant-sampledata.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6471,12 +6472,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.x_table_column_code_mappings +-- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6486,7 +6487,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; From 8d40e24a09123773b7dcbcbea226d7c37960c70e Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Mon, 13 Jun 2016 18:33:02 +0530 Subject: [PATCH 13/25] Switch back to MySQL as drizzle having lot of issues --- fineract-provider/build.gradle | 32 +++++++++--------- fineract-provider/dependencies.gradle | 4 +-- fineract-provider/dev-dependencies.gradle | 4 +-- .../core/boot/db/DataSourceProperties.java | 2 +- ...onedConnectionCleanupShutdownListener.java | 8 +++-- .../Active Loan Summary per Branch.prpt | Bin 9151 -> 8686 bytes .../Active Loans - Details(Pentaho).prpt | Bin 10150 -> 9655 bytes .../Active Loans - Summary(Pentaho).prpt | Bin 23695 -> 23008 bytes ...assed Final Maturity Summary(Pentaho).prpt | Bin 9855 -> 9307 bytes ... Loans Passed Final Maturity(Pentaho).prpt | Bin 9582 -> 9048 bytes ...ve Loans by Disbursal Period(Pentaho).prpt | Bin 23887 -> 23194 bytes ... in last installment Summary(Pentaho).prpt | Bin 10128 -> 9579 bytes ...ve Loans in last installment(Pentaho).prpt | Bin 23552 -> 22860 bytes .../pentahoReports/Aging Detail(Pentaho).prpt | Bin 9083 -> 8555 bytes ... Summary (Arrears in Months)(Pentaho).prpt | Bin 9192 -> 8630 bytes ...g Summary (Arrears in Weeks)(Pentaho).prpt | Bin 9353 -> 8785 bytes .../pentahoReports/Balance Outstanding.prpt | Bin 9890 -> 9876 bytes .../main/pentahoReports/Balance Sheet.prpt | Bin 23549 -> 22446 bytes .../Branch Expected Cash Flow.prpt | Bin 35549 -> 35048 bytes .../Client Listing(Pentaho).prpt | Bin 8177 -> 7662 bytes .../Client Loan Account Schedule.prpt | Bin 14409 -> 13698 bytes .../Client Loans Listing(Pentaho).prpt | Bin 10948 -> 10456 bytes .../Client Saving Transactions.prpt | Bin 8950 -> 8451 bytes .../Client Savings Summary.prpt | Bin 16637 -> 15945 bytes .../pentahoReports/Collection Report.prpt | Bin 10282 -> 9769 bytes .../main/pentahoReports/Disbursal Report.prpt | Bin 9770 -> 9334 bytes ...ted Payments By Date - Basic(Pentaho).prpt | Bin 9011 -> 8515 bytes ...Expected Payments By Date - Formatted.prpt | Bin 36111 -> 35580 bytes ...ween Dates Summary by Office(Pentaho).prpt | Bin 8313 -> 7745 bytes ...bursed Between Dates Summary(Pentaho).prpt | Bin 8076 -> 7509 bytes .../pentahoReports/GeneralLedgerReport.prpt | Bin 9036 -> 8548 bytes .../main/pentahoReports/Income Statement.prpt | Bin 18156 -> 17202 bytes .../Loan Account statement.prpt | Bin 8273 -> 7694 bytes .../Loan Transaction Receipt.prpt | Bin 7314 -> 6795 bytes ...g Disbursal Summary by Month(Pentaho).prpt | Bin 8691 -> 8131 bytes ...s Awaiting Disbursal Summary(Pentaho).prpt | Bin 8523 -> 7965 bytes .../Loans Awaiting Disbursal(Pentaho).prpt | Bin 9591 -> 9048 bytes .../Loans Pending Approval(Pentaho).prpt | Bin 9348 -> 8800 bytes ...Obligation Met Loans Details(Pentaho).prpt | Bin 9592 -> 9061 bytes ...Obligation Met Loans Summary(Pentaho).prpt | Bin 9315 -> 8752 bytes .../Portfolio at Risk by Branch(Pentaho).prpt | Bin 9220 -> 8671 bytes .../Portfolio at Risk(Pentaho).prpt | Bin 9025 -> 8469 bytes .../Rescheduled Loans(Pentaho).prpt | Bin 8960 -> 8415 bytes .../Saving Account Statement.prpt | Bin 8133 -> 7565 bytes .../Savings Transaction Receipt.prpt | Bin 7329 -> 6854 bytes .../pentahoReports/Savings Transactions.prpt | Bin 15703 -> 14997 bytes .../Staff Assignment History.prpt | Bin 7135 -> 6565 bytes .../main/pentahoReports/Trial Balance.prpt | Bin 8498 -> 7978 bytes .../TxnRunningBalances(Pentaho).prpt | Bin 9238 -> 8743 bytes .../Written-Off Loans(Pentaho).prpt | Bin 9275 -> 8739 bytes .../resources/META-INF/spring/jdbc.properties | 4 +-- .../src/test/resources/META-INF/context.xml | 2 +- 52 files changed, 29 insertions(+), 27 deletions(-) diff --git a/fineract-provider/build.gradle b/fineract-provider/build.gradle index c1545a99f18..2229d0bbdaf 100644 --- a/fineract-provider/build.gradle +++ b/fineract-provider/build.gradle @@ -222,7 +222,7 @@ configurations { driver } dependencies { - driver 'org.drizzle.jdbc:drizzle-jdbc:1.3' + driver 'mysql:mysql-connector-java:5.1.16' } URLClassLoader loader = GroovyObject.class.classLoader @@ -232,17 +232,17 @@ configurations.driver.each {File file -> task createDB<<{ description= "Creates the Database. Needs database name to be passed (like: -PdbName=someDBname)" - sql = Sql.newInstance( 'jdbc:mysql:thin://localhost:3306/', mysqlUser, mysqlPassword, 'org.drizzle.jdbc.DrizzleDriver' ) + sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.jdbc.Driver' ) sql.execute( 'create database '+"`$dbName`" ) } task dropDB<<{ description= "Drops the specified database. The database name has to be passed (like: -PdbName=someDBname)" - sql = Sql.newInstance( 'jdbc:mysql:thin://localhost:3306/', mysqlUser, mysqlPassword, 'org.drizzle.jdbc.DrizzleDriver' ) + sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.jdbc.Driver' ) sql.execute( 'DROP DATABASE '+"`$dbName`") } task setBlankPassword<<{ - sql = Sql.newInstance( 'jdbc:mysql:thin://localhost:3306/', mysqlUser, mysqlPassword, 'org.drizzle.jdbc.DrizzleDriver' ) + sql = Sql.newInstance( 'jdbc:mysql://localhost:3306/', mysqlUser, mysqlPassword, 'com.mysql.jdbc.Driver' ) sql.execute('USE `mifosplatform-tenants`') sql.execute('UPDATE mifosplatform-tenants.tenants SET schema_server = \'localhost\', schema_server_port = \'3306\', schema_username = \'mifos\', schema_password = \'mysql\' WHERE id=1;') } @@ -262,8 +262,8 @@ buildscript { flyway { - url = "jdbc:mysql:thin://localhost:3306/mifostenant-default" - driver = "org.drizzle.jdbc.DrizzleDriver" + url = "jdbc:mysql://localhost:3306/mifostenant-default" + driver = "com.mysql.jdbc.Driver" user = mysqlUser password = mysqlPassword } @@ -277,8 +277,8 @@ task migrateTenantDB<<{ tenantDbName = rootProject.getProperty("dbName") } - flyway.url= "jdbc:mysql:thin://localhost:3306/$tenantDbName" - flyway.driver = "org.drizzle.jdbc.DrizzleDriver" + flyway.url= "jdbc:mysql://localhost:3306/$tenantDbName" + flyway.driver = "com.mysql.jdbc.Driver" flyway.locations= [filePath] /**We use ${ as the prefix for strecthy reporting, do not want them to be interpreted by Flyway**/ flyway.placeholderPrefix = "\$\${" @@ -294,8 +294,8 @@ task showTenantDBInfo<<{ tenantDbName = rootProject.getProperty("dbName") } - flyway.url= "jdbc:mysql:thin://localhost:3306/$tenantDbName" - flyway.driver = "org.drizzle.jdbc.DrizzleDriver" + flyway.url= "jdbc:mysql://localhost:3306/$tenantDbName" + flyway.driver = "com.mysql.jdbc.Driver" flyway.locations= [filePath] flywayInfo.execute() } @@ -310,8 +310,8 @@ task migrateTenantListDB<<{ tenantsDbName = rootProject.getProperty("dbName") } - flyway.url= "jdbc:mysql:thin://localhost:3306/$tenantsDbName" - flyway.driver = "org.drizzle.jdbc.DrizzleDriver" + flyway.url= "jdbc:mysql://localhost:3306/$tenantsDbName" + flyway.driver = "com.mysql.jdbc.Driver" flyway.locations= [filePath] flywayMigrate.execute() @@ -326,8 +326,8 @@ task showTenantListDBInfo<<{ tenantsDbName = rootProject.getProperty("dbName") } - flyway.url= "jdbc:mysql:thin://localhost:3306/$tenantsDbName" - flyway.driver = "org.drizzle.jdbc.DrizzleDriver" + flyway.url= "jdbc:mysql://localhost:3306/$tenantsDbName" + flyway.driver = "com.mysql.jdbc.Driver" flyway.locations= [filePath] flywayInfo.execute() } @@ -341,8 +341,8 @@ task repairTenantDB<<{ tenantsDbName = rootProject.getProperty("dbName") } - flyway.url= "jdbc:mysql:thin://localhost:3306/$tenantsDbName" - flyway.driver = "org.drizzle.jdbc.DrizzleDriver" + flyway.url= "jdbc:mysql://localhost:3306/$tenantsDbName" + flyway.driver = "com.mysql.jdbc.Driver" flyway.locations= [filePath] flywayRepair.execute() } diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index 610eec00d60..7acc5d8661f 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -47,8 +47,8 @@ dependencies { // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here) - //[group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], - [group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], + [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], + //[group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], // [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion], [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'], diff --git a/fineract-provider/dev-dependencies.gradle b/fineract-provider/dev-dependencies.gradle index 74e5b3797fe..e2259b9e79c 100644 --- a/fineract-provider/dev-dependencies.gradle +++ b/fineract-provider/dev-dependencies.gradle @@ -46,8 +46,8 @@ dependencies { // no slf4j & logback here (anymore), as spring-boot-starter-logging already brings this now, better assembled (log4j-over-slf4j was originally forgotten here) - //[group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], - [group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], + [group: 'mysql', name: 'mysql-connector-java', version: '5.1.27'], + //[group: 'org.drizzle.jdbc', name: 'drizzle-jdbc', version: '1.3'], [group: 'org.apache.tomcat', name: 'tomcat-jdbc', version: tomcatVersion], [group: 'pentaho-reporting-engine', name: 'pentaho-reporting-engine-classic-core', version: '3.9.1.1'], diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/db/DataSourceProperties.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/db/DataSourceProperties.java index 24276f7828b..626aafc4560 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/db/DataSourceProperties.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/db/DataSourceProperties.java @@ -60,7 +60,7 @@ public class DataSourceProperties extends PoolProperties { @Value("${" + PROTOCOL + ":jdbc}") private volatile @NotNull String jdbcProtocol; - @Value("${" + SUBPROTOCOL + ":mysql:thin}") + @Value("${" + SUBPROTOCOL + ":mysql}") private volatile @NotNull String jdbcSubprotocol; public DataSourceProperties(String driverClassName, String protocol, String subProtocol, Integer port) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/AbandonedConnectionCleanupShutdownListener.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/AbandonedConnectionCleanupShutdownListener.java index 579b4318bed..e22ecaae9ae 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/AbandonedConnectionCleanupShutdownListener.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/service/AbandonedConnectionCleanupShutdownListener.java @@ -29,6 +29,8 @@ import org.springframework.context.event.ContextClosedEvent; import org.springframework.stereotype.Service; +import com.mysql.jdbc.AbandonedConnectionCleanupThread; + @Service public class AbandonedConnectionCleanupShutdownListener implements ApplicationListener { @@ -44,13 +46,13 @@ public void onApplicationEvent(@SuppressWarnings("unused") ContextClosedEvent ev } private void shutDowncleanUpThreadAndDeregisterJDBCDriver() { - /*try { + try { - AbandonedConnectionCleanupThread.shutdown(); tomcat memoroy leak with mysql connector. With Drizzle not required + AbandonedConnectionCleanupThread.shutdown(); //tomcat memoroy leak with mysql connector. With Drizzle not required logger.info("Shut-down of AbandonedConnectionCleanupThread successful"); } catch (Throwable t) { logger.error("Exception occurred while shut-down of AbandonedConnectionCleanupThread", t); - }*/ + } // This manually deregisters JDBC driver, which prevents Tomcat 7 from // complaining about memory leaks diff --git a/fineract-provider/src/main/pentahoReports/Active Loan Summary per Branch.prpt b/fineract-provider/src/main/pentahoReports/Active Loan Summary per Branch.prpt index bc0c3684293d560aec384601f7750ab8a834f3f4..76af0d36df4c7c2aff3035cbfcbd81aedda3ff07 100644 GIT binary patch literal 8686 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 literal 9151 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 Z$HSx`4FUPK5&rdBdqw)XUbljP{1@L_Hzxo9 literal 10150 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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans - Summary(Pentaho).prpt index a3b582964ef798f9b08cac2d52b607d585db9d05..34bc1543dd9613178f28baad24fc6d91a154d59b 100644 GIT binary patch literal 23008 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 IQUrwm09%AFr2qf` literal 23695 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 diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity Summary(Pentaho).prpt index 6b20dbd37e890757a2c8b90b48d758bd9e2482da..0426d38ab1cd6431e214f07341204d435425d06d 100644 GIT binary patch literal 9307 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 literal 9855 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ℑ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 S0KBaX1t0+f0FaXXxcWaL#u6C- diff --git a/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans Passed Final Maturity(Pentaho).prpt index b874416b9dbf62b78eb2a5020997d2a028eac5c1..70da51a0060f22168bea5a4a70c00ef46a753899 100644 GIT binary patch literal 9048 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 literal 9582 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 o84CUVBL1iE_kMpn{(h-duW6? zyG>SPpV>P6wgKkm5vek>5{opEZjMcAM-E zp#(hZAkteNZf@?**0ZB!8Pa(abgE{|y`eV%B6(@20#YDv2VcbRNIjTWL|L2|_F_Q@ zvSvZw;D<*qPZD}IGz+UQ~Oq6x6Y(x;kIfN1TEPu$;mDom*h zha8T>eS;&RMZwOq$O%H{JtNoTlov(ZjtY5SN<}8hvW?E7G&(q6f(-GN8YGcvb?u;s z`tnDG(GVc!tP3|K#=K|hOcH6V{%Pu%RR6FLkfeBxv}eJ1XJ|yYSt`uA`>Yti49FRQ zeFMpokUDwdqgdJ0N-}!P9Ufh7(aTe+P^im{ugNxNLFkUx5-Xdx!x8z6u_l$F^8Grd z8G01`a)ZT(`^fOTHny*I#&)C3_`%LP;`_hyBcmwt(vyUb^C4{|lqc0A4X0%_9$-L`pK1L>xQ<0mwROvX z?J>gft6^Q>El^67#rI-BZx(kt>*oj0mBl$$FO={-|Ae{cl?K|_o!^y!Q8R&7R8*1~ zt?a?t`LHrewQUgz+N^X5-y(8dA+{awAk?9wkglT2zGH43$o3w)4lsxLRh8~AdoHfI zESekd0xrJQ(Ca2we<{Sy`+C@LAG&sKh9X?;*P4{~4xUXPU`-oJO&6wksZ~N1c?@iQ zR7QF99xsd7q4cOY7uK4C>;evnLyfE+Alnq~5PC+PHH%~;TaHE>+{4gcmOG3t@zgI~ zmqb_TUgn&k-fGH;(yon8?*?!|QH2j4SXbcofs82Sm(S3YY#1-SKkv_Xxhb6EQSA`C zMD5tc;q2h{QSI2pqOgex-f-2c;h{En(nHI`uv$tEto}IqfRHaOpvFi!Q(v{yr%E#a zA!??BEEx;N+B<{)EU<`afJLb{>v&mR3*USrO-ff@-y>zyA9^1#)gfE^j;O|n%6g1&z^9PSYPb({Z*Kw9D+_=FY_&~iOMyvG-H`*!LlDS= zO>;=w<=P-zR=UR=O;ESexXd<*S^R9;s zf+F$-3;RQy=L3Wk8L>rm;&Rfmhf8XP_^@)*#L0Ge;SK6&AlNlC#`j#qqL|0=UeC!9 zaFCgK!to{A?2%eYo^qOxR`k92o%D@Rp2td_P22EDBy!}DA7}?9;-_ZbDk7M(Z%P74 zax{a76zcU0B>#U)iN0^Aurg@n=jcBPDf$Bd0Q-NW#L39q#Kz!1GE%ZIU^_?;4Z8PP z+#{621=B^aG#EqX4@N&=MZ_X&+y%blYoWnht5lo%z5a20^9HWuB!-Gt!KQb;!Yod^ z!wu8Zku8^%!-31o*NH`LJsg9cKTbs4gQ2pxqxlzE!^tlz9{KN@C@!@Czr>zA^}-%R zO&0$!SC=^5SnZ{%%`M?!-?;xfxx9&A4oezZvHxTyl{k-P{+~l4hKa;9^w_n-vf)B_iba!Uldp@f5`w8{ec#PAH-KHa64@khBK=Nl^AQG|uTnpCe0<;AtA2BcO02(_o-ihU)yd;#z(XcKA20|M`Ghxg^6!^j_|R(w2F=724{NC^(ETk zPcu53A+d)B6{)2nCnAA+U%zrfx*}tO>lIxNSkWTAcUjZ|c#mfZLF%h#tPS!B;ro!jxcqCM-UY~N)L@z1#&)UQU;vP$tqR7qP(38rGflPSxSWtVs1g- zaDbEhuxNebS+4K$8yP6En3Mv_1@kL0(j?f5P&AFL3=w*V+AX;gC z>Fn`9IQ52NPa#wbn{45x=%mVU4gnlz#=O)BAc3 z+C`Z6UdIc|$h9dW#VuO~#`N; z?nhdth82r#4u%tO!*Ihbz_py?LQIpa6#;XTG=ZoPtV6Vx!-8t142fNe~lGXUjrhJU&Bo>yOWiY(PCYUOGLi4 zADUm?l%crIvSRPdF@Hh}%Vhbn<1HcT7bd)W6S4dk274GVuHDv8=4AGACew99^UYNKbntL#~$eQIQ}9lWK8V=%bHj=n*yA~vbQSQ z;M+2uQQ}8dM~VGW8x0ImU7M(~V-;B_1~Ud>riDZ-LalKvl&$V}9R`jNB3O>0vdk6v z4dgTA@Q7vuk_`2L3S(4m zGRnY?`L|IM-(Ez!@>yB;Az5<2gE)V@Hx8jux^wFWV*mKu;&7ajF&{wbY;@T0Kn!^Y)PT+0RNhxkbs#kWi+AK?s zX(eU^=6gcjZVWZFT%|bGo8^NwZ>FyNSRfS6HuhOwiJ}g96D3s8mjnwBiJTA3 z(0++|SK-#~NoSyl_t|QMFmtF_S0eM4h^`|%w$k0fKxQ|@dcL55C%k=n2WSF|;g&+_ zvP+g<>z^XASYD)~aJNp`&C@8oadAYUM9AFS679aFIiL_mMsVEm@t7!+9(>1NgAC?X zaB86HM5t=+KUxr1i-261o8GR+^J}mf+x;#LMYp2H7{>eISN;h&KcMSOfmN|bu--DL zba&ecTB%wjd0I9{uHaic9J2n@oDC(N`M-XU2t&DazIfMmsYWs(9OzaX;`adLKPQMp zbE7dJsB0EK(rO_@4M6xWatBIIpE!027TxbJFN>RSc6|n?ro`zvoMVT{ZvEhX`916p z6L*|c>4d>%vtou}jpCmtnX$IE70*3QLo(Y42B7;LkcOI%)wS$d)1t9pOdjACxMi>) zN?`1=IG!Nx1SW77#s`VytkugB3g9OoWx?e1FObjNyX7vT<*KtTTvIc+7`=yaB&#-u z9ifa&6Ay9M{;WdP=J6wPWJ877*PWb{?8T!ktGhoqn^DUIz-EgF`PchQj7T{Ydx=aS zTWSxE`w3$1xgfb|QqhT0(cFkmtcHUogCgiyF3hZQ(Xt)n zq+iZ5eB0Rw?d3#XM={&BAU17UQ2CpLMBQGJ_DS7eCI(}TOGM%K9_X|ja6=`h2JN@| z9_dl13RLxeM4>hG(0#vp(E9|fPh3MR`ApFJlV}EFzc8!ojaeVgvHsh4f%#9DMKW#G zOAaLRlE;8GxH3jhD-luLET0?a2QmL1e*ZN~)<`Y*-?CC&jNk`wgF1NEHEF51_r5JR zUP)f*jWd2K)Q+fyPww>9qYVBq;Z+yxh)SpP-Fq9Xd8`ZVEQv%cfzZ#y?#|mp(W4!) z#!`>Zt~g^-G;HQERJQs{aa6@t&o;FT3O#Q;Xe9JqWT))b<@sohB?B9;U%rTA&Yn}Z z!bl|gutx~_0?3r}D^fKYYbnsu@o2SB9!d({zVZv}uWRn^dgh1{o<`!<9|l7hc<%_578DjmLxKf(SUJcvWYP zQ|=e@XQqoz(N(lYm2GZ6k^x5pQ)*TEQE{VbQefw_VSMO9^81G)~69bkl*c9jOBFl2KB{h1)eI=e= z&wl@ti0&PcIb8t(0M!1~l>fj8z{bS+zxdaZEb|Zl;6q-s2Pb%Q(~*Hy!7D3KU6fR4 zc>FJ+_b3}^HU)TmAA!InNzMXGMjyX=PotBj`>GPH=RHiGs12DTz%4BxOIDlCjNXyu z3O#torYuW{9|p%d1#u1_gYaXNy>{%T3pXrmgVl1a6beoS9E}uiNxs^%+(dm!crG+u zHodB8j;J?+^*Q`&bR=T5ga`notVM9qP2i7#1YZC*fHqu|D2VBV`@PfayVx;ChVB_9 z-ox*S31)96p z3ZxEtkrbF%MgunwJnUIc?M+=r4{~A|+9@n-uNI}eG2VzOTY#d~)Cnkmn1(Mx(`xDk zn2W?`St0yJj4`&G_Xu5)>Tn_#tVhIwvcx3aCz5zG@1Hm0E%ABA!Dt*18_fc8CIa|I@aIjiS>p+5}3{mur)Kl^WP zEdFK3!`=jBAOHdY9~`(p#+sCYLf}ck;^zk49tn3+osLz&=#4am(25#1!l`W>?0=5e z^kp_Q_irrTfBA;~cXl#ycDArJbNUbes>BM&4%0)6yz+=7^Dtb&OEUc-P^E?s1S+mL z7q+|}lNFu1wg_M}G<)~!dHvpZ%9w@_VN$ZQ+iGDEj~JC!vfJIwt+l--aMo>Dc`h-n zNqTuvx9R|br>550gH((WbEQU-*Or%(F860P5fpb)o`wh&J&dkj)PD?_LC;I)eOMx1 znL_qPpe28{W>vP+pbdv1A+S$vu-L@n1-rd_jUQP^EvDNU)(?06&TC;Z-o#2t8@Ot{Z7sv)+YardqmCV zU$+GQCs)s)zP}!@shHj2x}!D9R3{36LbG_X9uDx2B&S9;g#r-;*G=7SLLv2}Dk|B! z6fgM#&h7lR6I|TG)3wiEFRJ*+2yao@9{(r&IN_;>k?5_jj{-hYyHhfy5;knlc2+f} zL`xlMZ#_YR;=duffE}e3cfs0k9Mk+L%zuuBdi6Qp5XvMQ#^5HoPxiFPcYDVVWZ1XE z75k7|1=mMnf`iG56l+MJq+(E!^o&Y459tON?^#kcwH)){OaU#M31xKyL-vh*7cOO> zI{kg2Atp0S32#dT8}0rmxZ?%Iu!he^n9kRlOdIALY}-dSm-VAkusV9j;zF}=m{(CH zr4~yk>57t+&aD>qm+OB{5zNyFkvF4iOcGN$H@~qSRvyaoehWfY%R^K|H#rRX5X{?3 zG73+PwW#aOZGnFYWr&gXF)cJ1W+D(^U0^a&t#FgE&z=oRX;-^}i&X+=BGb1F(t}mL zV85}_a_q(Le~y1`FYRg>82!?+(lx;!ogSq@3MIUsFAAtiH^dKt#H2z|*jpvMSB?Gf z;7m$JJk*u{SyTK1(@}_1Dt;COhebY@Bv-q`ev36;rC5YBlKBSHWPFA@V&q$AaEq*- zv5I+?Kt5lv8JFZ}&p_5X!jId{^$Pguhi>9IBsO8tK2dvF#l0Ke}8%| z?o7M(m_FsUoK^_pi#3RB#ibj@KFLc1LE%9H7y)t$~RePY8;@_AUwk zd|9Qx_-hG9)y)3wFj1Z9(DMB&Q=qoZ70VEyCfsE|&uTVoD2$|83@Zz@m52v~crRi} zbiYcQkM>~b)FqjBy0e_pjG)B5y}T}U;lsQYTWG6T)g$wq*V`fG|yU&U^| zcdEf=H=$nl`^~K4*-DBWrGt6u05FpQ`yfSM6Uvlt?$!?Z*GY#=)Z*rAeyTh6wr{6& z@W*%Ult^MdxJCD&Ap!Ik!N-!_+Zq;rZJ3RNHOB!n@J>m>3nbYBrIw*gt|?}QXPDR& zB=-@anr{334iieMqQZ?2;JC1N^jM?xQHv`DLwxYRF;yRo9%EJxX2K9N2V$QYDqj9TgZQx>m( zhW5{#9Sv-qtPTFtly#!DceJxNadfsYagv!DfC!<758n5xM8C5I!=)blgUYy1^B0B~ zYv9JGFt9Bk?;UiC;efn{kWpe5w$6|y%BlgBaQ{b`E8!|z1dw9q{Wwcr9 z=F5&Qt@N+fPx!45^gi%^)c!x}1_1E*uT%Wri~n=@kJ|sIQ|x5t;%H>zME5`Uh0x1; z7WaQ1wf_w3e|Z|&+1T5;*c#Iq|5q+uVh13H@Zp7TeM8(=ZR!%==%O;!!)v!$=6-yr zN}iS``=O`0H4tH+5-iJ_NVsz5#u+ZfcrxEGs!OBic>qpjxovISc-jI&uxvMnOnk!dXUc)59K=(PpmxKK1Kwg0SKNJ2>XuL=G4Nd=c z#8GSj0M!3AVJ8Rc|1;NVjepY4j`&ln#{lkW=4B-{?%L&Mp9HW&ynStx1+##AQzRtS zJWWeeNqju4_0+cut!MmBV&mEI2PJUhV2T@iW^zcvQ=5J=^dty-4z0*C$EjUwYysM0 z|484~hGnYpRcX58BxQm1SyQRRjGLxoTC#Po)R2R19dpDTdQcvM5H%|yq_ zL-Jy11X2fcql5gOU-4LaCZ%D>Y!=pU2GuZf*JE6gi~KElc>&if#sjKmq4Hn@()R0O zP`U4#g6vpm468>#9 zYBK6l&CJUnu8C*FDf_y@qwia~5+VsG$x1=PI@3|L3FE`T;l=c6g~rgTC6_wL&B*}3 z4_&>toVW?QIxvt<*`nID&I$HQ7X1OY)aCqz*|Y6SAP)K&^V=}OPtHIFMD za$M(%9*?`u#}+lu;f@58|BjJpEgGK@(&l4_d#*2{(Mh_lxY!-!Ht3bql-yleox7drmBeKGitxT|AeOFQDMmeEMHN6^tu755JjQLgM zJv3zv6*Cm}%+o66fqq{Z17tZ)DuT<3A42RSr_TEn4hvYbuxV82H{v#B@PJ-FB}uun zF-SrOH4%*YA|;KwO|tHcIOrF63KnyI^Nw$YIP=XvxD;NW#A!k z%@%SJD^gQQO{vRToA~U;|4W3d1}s7tp?ZDEvB!(5KbwZ5(g6?F9-UU&e)iug-YLD5 zS_y!|Hi2+Ec*#Bu-hcT8*(A@y%MLYIH#|H7Dyw&ZAd48FqHM#D&)l+39k$z4r!rKPteM>s{ts2`ZaV+^Js#(1>RW+oQrnZbC-!CTwYWc zIE^wC;F-u*0@hjsxJCFzq-5%92zo}15jcMr!&y^+pONNb%eG4H)v9m!PIy^Vt&|z? zq|nfD3bonqx4!LoO=ZbHVR3B-ZdN&!olR8pHG+mOD`yc$zMPE{I6G z=m;pPRRWRuepT{eJy&T7>XZlafX60$kyVNa*qcs>$Yd153Y8WO{f|*K^i_ai%zZ4g zjvW8%#d%d3U7qfJBU(LXG2I{SqCoN&f#I|An87v4$jx0er|xW`7}wTKFK zIbOp$OR2KoBUH{?<>b3Y`%Bxj2@TRLXE4abSN6>oRP9TEnAYBi7excLnpGgMh2Uq6 zB(HWR>%33b35!$i=b31b7(qZ~WCaz)Vq%Jkr7Vw;?h>W<(7VnQrN284mW(li%4yz~ z1Z(>EWlGsZ*o~1B!SI1aZ8U^dbN!O4!!*M9_Kh+WSf=c2`jF%Lm~I6nHqLEKLhz;2 z>C@)f@zET&=#Rc2RtmvhP_9`ZW}seDMnYYRTio5W@M+!l%7s50?nh=}VdG~H*n;%A z-cQt@5ZMB3E6=XcAN1^;R~$fz!G%AU+mN|RQQlvb?QrEK^Ly1w z+gB*<55CzlB|9q`LZzB!#VP)*?3Q&;FToX+E+I`v?0Pq#7Za1cdm2ScQl^^ADBFj% zz?l@rT`+F6?Yzym&AirIBD;GYZ|#j7wapy&`$*-N+q~BEG!A>yB-^2P)9m(q30GuH zyY)v^7;T?mDY4qy)@(Y8X-|{zKc?}{LlO<1_NP)R53+RONut4t^OvhRE*f8JM~7TF zvOb&M+jW?}{Sg=>!K&G=L&!x>tdjYDa>>1QbJZQ!`}-XQs(tIQ2@6cBkcU4%^V<4d zBa0Xk>yeS8h2_L|JR>GSReji*_PrAb!YQ_*rcS2dFdH?!-e@kMVmUcboll>fJzje)I&sfp8n zzi+i9OWFQmfDV1lHcb8|zOKb&sK12R08)<#D33rggfq0=g+>&yDL}C_OMAQbn;Fur zjbmU2qrO6VzEI#R2OTFpwb-m$O*?&&s8NeD0e-+TKA(vyJwfoZ_F_T4K&(HF#V2$# z>`G41ZWIzuym9hoOHhp}?I5@F?r#-MZRl7Fh2MZ~yi8F*a}qu+NMSIl!#~}l370d5 zJ#sdIyh@}^S4!}NwgIB|s+!W_&JwRwTkY(NpEVvRN+0*hs|NxM!;a}kVPzf326e1C+!gQxyyu-71g9@G2nC~cuiX+`E1YTW0c3xlKI#)~m(fo?H=DI5 zqc-aQT`;+Sv8m=T;denH0|_6h@X$C_1QWH4u)K%;|4+kz@Y>Pj z{~MztG?~9VnE?PaSO5T!{)eB1je(g7t-Y-oj~9qKvcl`D^+2K&IJkJ4cp5XfI5jyX zq&OX9l(lHa_T|G{{lRXp<1?20HE%LCe$7M2f~gl`BwPHwyfr5q5H9pmrt zI#!_%1DU^f{I=L@?W_%4bzI*!ky!ukuHM4>_Q+>%Pgzm%C{bB93kxj39>|ES5(E7o=N48<=f=jW*wdfW9)+0Ni@-|Aa14wOox{%^I*3YPEDjNS89U6w~dLb*s*( zs23asoo4MQNFQw(c0Rh_;-KYB1-MPmOi8;1Tlu}Hv{vYsUoE<62L}|0$=`@@iI?c} zB_MHI^W4`tt|2B~UKV4iRqDiH0?^=5ZH=ktTJK?)yknQsk^zj4<8`~!V^rbyY zV^rtX$j{pw0MLbH2z4va)!)B}Vj)f`>_2{`GCL9&lfQK3G1O;t8gq4E0RY$`WLU;D z2>pAOEDlnae$AUKjRet_V}Fx<$?X6Z!o05xrYrl<PL2!kzQ;pr0AOgY!A=5u zECb@Cn@Eg8#Fyn~6MIC!xev&;Je5B8Y9>iR>_HsSiJAX&1$XmRIRrb`xPX?r4c&og zqZ%sU^H%nWv;2FrG+8t_4@%g7nDZJN(5oli7SC>|5iFCePcBGNiZ%h|iMTvRSYhgh zKh8CW6d7L(01kAL&HRb`{r4xyV7H*Twx{qdP=As^Y;G89MoA%${iq5*5`avV&c{k# z-M8Z{qgvN^o*_2F^v1zv{{H)ZGeP8KTnITa+0;(69j&Io*ap7RfvJ#(Rixg(hC}qO#}q**V}VX%-fLu%IRAvX{=X5P`$@yEf}M; zUq3yc{Q}399z==Kr}dJJdBrb`8^c#uvh?qIx?2#u1@%Jb%*8S`acZZuZIQlldF-6bF7BhVeD^eQmZ^Pd8hh+hkh92dt3zJX{imj#T(* z8Uk7FodUH`gV+c9r@AteYl2KfZOq- zbZwsIa#dh8e>BY1-ULcnrB(cdhs1l-g zpG6WyOBV-sp6;F@38fiGo2lMI<``*ko&;uG{U@1rSRb#rW5gckupt|m1f^qGg$7DF zt1O9dztx?*2}8$Q3a8^%^wnIUB#l=iAm=dEwgU*p?hmm6<^1>{Je8;1Q;A0Ww`8_# zhRPw_p+YD}%f8scPkeH~Lzdjp1uU3^BWwc-4lC4^(CrN{V=|hrKO&M&t-8pf5U=B+ zlU}!0Y`gt_SLgG05K4L8JkKVYMic#IM#yK%g3GOOYK|CgAd!B(Xl9@23=j1*00lJ} z^NyCHz{tbp?c{&}>FLr?#5Og?c*$b~X+KB^NG#lWXJvb&2|Kg!|v!LcpBawVs3g_rDWG}~Hhl*`I1A~L*6pezx%Wl&bo;}DoWrpX%mJ0)7 zle8fPSIXpeLiq}=5j#-|8&X0VcQWCn8Q%!L4qfpNn^m*NV$aL!Yp2+?ed|Afo9d~@ zC;l$uq)#`qXzfNrm6?3(f>o8YDOJ?8aH9IHc#8=SwSUBzhA^TwqmksRmioj@d*yjm zqCf&JaX|SsX@$=?L(qL7gC4K|Kv`me0 zbg~aAP?Ja4K?+AgeWG`L9qi+Hnt6c#x;Ki-HX&M=_JgE+DDxVcx~c8&%Y#rBci63t zitC2dXaa}aa!BREoEPUQhtndQy6o^UAYp2|;2Uf!L)eZL9Fy67i$Z=^i!SQ&iRAh= z{;B5g%59scfF25^l%bR>FBqg^9i|6?l{akp2JXwENmbO8EB=_Q^pUR@cR_#rh^!t< z5kxk`*(raG5_3P>Ht7{Asq1r6YpI+~fHAmgH3V@yy9?s2_=|OeUU$TSKJGjO7gASl zp&NSQS*Lr9NZUhbYyGmZ2xn4`<0vp-Jupc z6k(wch6!8Bts2|=T&YM#E-j5>b^#ZX-A^j@k?pN38H1ZMYz3a^*wf~N)7-);oTjm- zm*)RfGt0OjmTDIa$YhdmVNrP`RmQnuJ%0E{sJhaOMD#ctlaW&_4Mo4p=#c{B&Dp#J zHgEl*n)U6FRPCrmb>E30MXd_1oNXrUP%(ZDh7id_Zmbg54tNI zEgaj&%M}q{kXEC#u)B6=@j)4<1hP!fe?nAVIvLg-M`U~}qmdp;5Slt8CD|7|oov<0 zPn{Tz-DEsj2S;rD$X`ym+FOP6B^g&K4NUgIgVD&952h;;xxdf_ukR&neXJDpFDgp` z&9qq1uZwGX><@*G1HyV9IHKS#nxz_#N(G_jI}5)rp&nc%73u@!e%erk;+qlU(M3JP z#DE#AjL#p-0{}YTsPlUpT{FD{a3r^`P&4}Fdb{HoV;*r?M6}heQ3#~eeCnE~yX|=| zVS)-o_tJ!bnxC-h`sT6$z9Id@k5Fh1nDKN98A0q zUm7yipMU>Bck6vZo46jYG#V3RaMEUzI|6Tvs`^&9p9{VUQcOf8t{uZ6X!iUvs9=r|7cmpQWMD6`uKqY;; z{gfUq8`Wi6PLKh__QK4)*BEt4h(ek@a5}<&sF|ch4yIeBBF6gRJ3wZB*skvW3b zCVIw{uTzIIR((7TfGH#dSWmpa|>%Ly;te42yU7P z&C{84$J5!K*;vTU>a`Qi;mOI-P zEr25|p)IV@*dG#wWyw4FoH}F1c6Kfpum)0Xx|NQc^I;Wk4NaMr$jY)Kn%NVCCsy12hhWyP@+(Scpfo$)V)|VUvQKOeVOS|O z9*%lX0uQ_TDg)l!PVtW65lS^@BM04k6aT9_=3fgajJ~u9iMW z;V`zi*B$n=y%iWOT1!sIGvDA=T^P);6bN!q(ow zeyJ%fXwYjTxmU9pT<;{Qc(pX>9PkL;F#q1fQ>|fU1$&-0fO<6W;i1priM>{?@)}|F zji8%P)$MrNO|5OQw_8yoVf)^B3s2N>vLN zf*YVNNHBk?@4HsO#bS9T=c(wrAwCn1EZ=uGUc8%!i2*!Ev?AoB`@E8+7{K!UFPJxO zE04i$ypY_`2^86HW>J3Sv#Ng;Y>9Sy@x&&OF3E02Kz$9LxZ4qe^Q;nx<6;cP9ux(@ z`v_s6Q}aus#N9?5XxSWyo0r z856U##viY8&Eq?d0>gg&z?pmkJl1y`j3k*rAts2dJw#ufBq2cOW>*SH7 zYNNsa%VCu&ov`F!{ppzSU6VBIH;6*QS(Q>S&Z#NmdM@&gb8xksp`=mCGK2$w?^JB{ z?!b4RFImn=Hl$26ck{PBxEz6*ob}K~RMV0tyv6MU!As=#Xsm;F6#}*no>5Rcc7dUU zTl_3gkCMYA|DmJ&8K`A)wGc2zb$y@l^NiL*fbsb9h|MX8cT^(t54M+CSYyE;+TsRn zF7ejb?Sd}tm@!X%x%gGd1Bc*>Tez5ANd~Npn0q6!u2>t0iosR!4phPDckI!#3lS>?W~SGEM)XnaYl?KSjS@Saeo`P&B%h2YUYidJ)+r_QKW9BfTcdBu$mQ9qn3bU~B z)V*wNJNftv>vXa_L-rC1))o(N&+U%faZyz%w9Izsel(G~k}{7^!eOX>9ju##2D?U9(q)QH5`Ct1G34Y%;UG_Gz>>mL=E?o zWY1;?9RCE;$aKo$#TjyDh_N~B-}D*3uVkR3?ByAt9#4+|zkc^nn(o$6LKh>Io4@kJ zk+9(gY_hR!GdL-HZV0#O;o`CQvHVt$KDYyOOe%Tyf%N6wYMKLCmfGh`^&k{9 z3R2&zB&GP>P&zs`L84~Mq@T{VKfaj5asLc!qOrIbC9{m1uWLYA-^G{b>q_swABf@9 zHgYAu93!39MCd9l?OC-zp#=spMWF?jJ+8gBYrzCwg& zZpbNuOAZYi!r_8uSD0Y|b^BV-@r9{YYN6@G*K`o>MTl57J*$0YzJCqWdhIu|=>ytk zTYKY>4U)42x)!WjA=MVzR2kG{Lu08l!TLQz;i1z3iu(7~IF#-H_IpQ z6yl^PZq3%|nEiLW4J`tL^}q*;DPJ;9;2IqZb$ypc&pd2x9R}WF zt!^NnK9hOn;^r!GUW=bw`Y4pGFm71Npu4gnA3y*FQspmW`1_9dpXb=;io!d*a=J!RbxlH{dJn}(YTz{j8*wSlbXQfo-vhd% zcX+tZ7>T2LbBC**^qI0xq|+8NBZ*(*yK-#)?7$Gq`Ss7k*@gMDaa>}dvz6s(g?5Or zL$e;alGAcy^>|y8y@5HKEp@LX7hFS$)e5@P=oiF!#K7YjsK=VlTLaMr$J9^BmCU%B zISL$ci|7X#O#;BSP6;<7cFRHDn?;QT<2c;M^yUSp-;d`Okm7->?<#TIZFR?Op>Pn# zcshAMnW2bQu)@=kK;7ssPXfbOXjdbcG!<<71{#CKWp{j`+sYS26=i;N>%yVZnxhBb zRO0MhWHMB&qmOHh0?LIQe~)CrM5)`8aA?L)Ch(pbSw4FF4$`JDM-|-jj}_ut6KG$x zukBy+Runl%Va@Jmv5op6Ea%yr1FHG1uRfvKc)NnK%|U zOd&QPyHb)#A<_^wOdduWUX-7h{7jUa%}aS{BsMj*`ZXA66|50RZrlQzsSgL3S{_+6LILi0>~A52 zYq0%-WN%X(f!3jm*&K0^Vw~%=mR;x=BU0<-&MO6|>>mRYA3O*2Y(mF9JpvYh@0$ z)$W4DJgM(=7T59So>CzKXPTyq{(5zL#+ z7AlCZ$OEb=s$`V`GTd8x+4=d(H1b~D1Y*V@h1k<(GB-40<{NJ&tTM|itC5fe>^5QE z++*q2y^Ypi1V&uBj?@b!rQ-fN)+?-8q9~q=hmxV`MBe#hE?+;qzR)X@0S;E^bgWj{ zh~w;2t*KGDL^?h1lsL9@!wGIQ`fX-@Pui|66r>8v`@OHO&LycyMJ+1Q)UmPpz)U2X zot?5oR@i|h%xJtp+UK?PTO(7v*(r29i|RlpgqT`O`+&QL)xNE#aKs5mHdVaW21 zWgo*HW3{;M1u6*nU3d;2kKK~u^bCDVBOL@yU6Tp0fLuHn1sWynazwFyP4-#g;6q2ipTP|bDG9+MA*L;Ty zSwO|)Nm6!PB6ktjQy(!U6zbK=qywnb0;wJnb^VOdnx1Qj$)!tUO%SHK`Fsk~&!-~X z_ma44{@Ev}yk}%HF!913ZM8je^!3(}P>>g^-Dh!@S}G~+pV`?>$GMAbIagW9y#5CN zl6TIFvXRp}L)`6hb|X9I*KKlwkC^v)cvx@e!Hvk~H3(v-;z5${j3hBRa#2Y&c-MEe`$oS1XiTyBK}&*v9xXIj&>}lRIX9ugn0VM2yMW{H{n05&qXmlQh0x) z?F`)Y((aVCUCw1RAlZnN)d#_GKtaVKKX0YBk(~9xPCHoiO$f6(i;7Hr;&ha)D!lz&H`c^Kr`!gMpM&gTFnNs(87Q|m}+HD8i$ ze2qABQjw|d+Hp(t_xJRDP|&o7-q$ zQqmwxN-f>6go3n4qog36g7hNN-Q6iEQZ9|;(jwg))R%M6_xH{@b9QI;+Glp=^WE#- zd!OfzXRZ&Xx_B1`ElLBY$ET#undLx*GA5Sm3*d!Rw{TXCL3E^Kl`zQe8P3dOwl)80 z&>|}0J;sI2p~ym>#kXq?6;+M$m>1%92_LfupK=%&`%NDu$3HTlhnnd1HZ{colXNlP z2ijD_y(qr6;cOKVuw_%{-)kZ!^P$Tln7VM`eSOXy%eFk?;r5mYX(O%?^+0u4p6bE6+_nPpOtKdr^V(GeX>F^l-tRqvUWej1}WY?NZ_U`+=P9=8a zuOC8QGU;gR%7aixV_Hg$1mbrXtxLi^W0Ku zP?Ix48icHNjS#!uKe<<8=%PH7)D&qOpo|z&FF|*2jriUsX~Pfn#YxZ33N+!Ep~cw@ z^hRKw(t;|k7qkT2@1nbJK&)B4ji3weG%Pa>lxjLR-PlXThFlIpVj8=UtdAnXR8#; zii4QhdK@BP=O~KGZ^XS8?#cbFW2e>_DQEyQ-)2u7;|t}=_J~2Qm)d)UG#e>kaB*j& z+2&KTwzAe_z5U(xU0ZUOt|@dnJs}%wp_3A1U;N2zF^mg~ zdv1jAvtQUAo|7!m)?qw~boMJDjNXSeB&TjVIn%XBf}#1`{fPT02Eye)%VRhGq;|ZC zyq8dWGKTZX(YA+5+b0Or=5DN;q+isIKyx!jPnRs^9K+dMU>|dchS|G&)JzL5DK8^| zuSY*P&B~=-T`JYQVnMz7k|tLliQ#lI36ERtvb3w|*8X&-nK0HKrlD@Sj;XFX_gijxe| zw(|iz4sb;U_3bYGLpj(OGbE8vv})O^yS1-QlVCe>;T1dhua3QYD)u^(fm z=wljC7*dbH>K>VMpRLW>iHJ(7A$TDKOyJNqtbAh-JE<`u5T_-)zbCjhAZn41sb%h- zvr>Q(HDb@LlZI69g>7T`z5~XB+jSt789KD%JB4S~qmp4eqKjbIqu>ExozRZw(KCeG zIx$C}q@Aioe0#krD#q=t*m8uC@;R_RlyFsuEw)D%Bi)>IiOs?Yy{Lt1NZSf@UzdG| z6ZC~hduix_wjf3bCvOu!Z8AA1JslJB)-bmj*=`CbBp@o;e`NE+pgm_ZS?MGj?NW5p zyk$_oQ6JtDfFUmV7{hw%5$2Ft-<1MowKlNSA*npTM{Pj-vvq%(*9_F_&{wSaV9xn@Q z0j&jGI}B3`jXCZ%q2yM?w=88i6KUvgy7XY zjy%6kAZy3-d$y^LKZ2Z+eA1O?Y@cTZVxy(i@GgAwl>HPpFDQ95ssEa3+;Wzg!}==_ zw90(w75PYDrDu;e$V7FG+}J1vLs5Qgm*w=K`$i<6O?W~3r%Q5C(Nf{Yd5bpfwm65p zL!wOjM-!N-9bht1M68B zN)u;qC3hWQ?Tf^`6*6b*7Ij1Jot#}84XPXBCI8YrSy`v4Cw8=mHC6u z$l(l5It`sLA4tX%2-f>I4xlROiWZ=*Mg!>Q9HiNRxI*ELev~f!>wb3E5#y>)2GpRN z9)Tc;ndP8(AS7g3;Bqh?QJ9+!kZ4?{iQTLP5oRo1g}Dp5`WjFW$W>|9zCYM^Q#5pi z>U%SR$t)^rbCO_!uTu9lquldXBNUeL%iY%JKh}(Nm!)Obm#z+_VjEG$&!DEvVC@U@ z2IRL7zLJb+dWA|;*lJsI->-02%S2AcT|r0-0FJ99O=jRELf?vJT(dp$8A_z6Q`QlS zmUZ=*Fn!I@SH&=c*D&qBX6zn+&hBqleh-};M=QhT{d}6P{ET-m#$_F9imNQnWG=R$ zC+##PKy&w8C53a#KeS;;yo|-qW+1%<=~=R)HA7~&nAG85|Ff413wl(AXPPVe3DF@R z(!!oE5-y!nzdfX&2YRW_y+MAl;^Mn&D{V*RA_O9Ta&y~*DI)e+%XZIrTp9`s6&4EX zx^umcVmtE^IYp7S?E5bw{olMezJ=2tr0IYUSMwH5a@C?k5?$WUA}BcluO$3fh$?-xKc_hsKP##8hjS`10W44 z*$g4w#eI0}O0e>tMJAF8axm>wt1IqnI=2dHN2sXIrWq#)=TbPMbESz*=+H5q!)@O_ zfU6-3a;4?m2P@_?FL*5&B5BuIg^awbwh7h=WA#c>URMIaj2?s`F;W-uNOX)JE}PZv z*K9_xWpG0Y0YivFOX$*ze2s(hybEl_VPI%|12?M6$+ot#Y2puO^V1;LHg5YSA7( zR_hiRZzlEX_D#ZZtbR>+F14F5g5b*ZszS_E7H5gmqDw^;gR4homBkNOfm0_u~TWxH{~%S zh)k>MNnZkOwe}-VNs1V(m8`m?l1Qz&k1kI*&JMqy^J`uhyR_Dn7>l^T^z6i?Jv3!y z?X>-#mBw1gsOFlim_iUcD-bHn5g+h4HHRHHvO)VR(DKY*$~di$oOnNXAi7`8ud-sE z92H}|GCBH8c|xI&blTPAn~yT_baFGkLQhf_!#aq&`z`XGO;Gyfu==y1qmFljxHURf z+fX$rG8|~q#IF0B6(D#UiIqxry@_juBsP*he&T49z*;LdFWGXZ+OJ^$rLzqJ$$YNj za|c`nc^W^0M*03}Ph=&_?@lGbv7^OBLIyL7)VrL4Bz_3d%~M?BIpSjl{S++Nz>UwF z%P_k0uc<+t|AtCD0DOu^z_NWZ^sYFM^-hgBbaeY37Fhz~UbO8SuIT*Q!X-uR)v^ZVZN^xnE$+Tt>Gqwo;i*#**-BYGPiq_u z4mO8FmFOKi+BQpvgi*w4C%)D#&F^dIR@uxB4+T0s4h&z~546S$>u@0q{qa>#B63xuU;{0az1AoX_K#38Np)Q7_SG5h|$H z={|CQ&~;t-umwUlkQWe84oHZ2>sMji@MaVi5uG+YMrhAQ*FmSUqOHTpj5+DvIagKh z>zAcd6(507m}NT&oojw?>l40}OJr*z&^ey=;%lxZHzP@nQa z$5}cpk>{Fs2&^YXq;;;$9f)dmqT*83!0>e42%@-lSaDfkT_K7$&#)i4bomVG?0A{L z`ZCa2I_tfp@hb#~n=SXkvY1}G{s(=RDe zc7lTI01EmcTsA-3S_;-Qhp&|9bb@}W)i);2ZB+2CmSj`Lh$>W(F0KP$ePMYOT%~BG z8Sg7RqNeL#--gL)8zJ&}RdFPcuH}1*M^O|wmCQC*w506q8R+x3XX;365r-L68Vy6$ z!!a|Z$yqVdq?x{0DvJO<;~XghlI!dM6QR<;a6?+T7PyyPk{^?e%4rN=7!S@=d&1ux@M~) z{jWwl5AwmL5#G~4&tu%EIX~76TFZVb`tmZcS1!1~>z(-ueHgn{fAdtTTci$ys-BJf z18<<7GGE&vXsHG!V+uhVx356%*T;n+%PmUzvML&iJtn|TQR-pOat{SA;E&jnsLjqA z@qid?fqu_6{m%Wrf9ELQ9ttQyv!h_?sxX+z3~vP z?!;aV#xZ}3t*@v!+bSjp&*DurQ>>b>vw6jVHRrD__stOsVd z79SJr84|u32uy-sKt^J~Nz{cBZ?vFnFyf+sH~cmEFArkpB8!WKCpHUXi$`s&dMz%= zf=ZsA428oN^@Aieu69a;yyu)w^0_$l8RL}J*y0+A6UV)<$Pk~bTcdjj=NnoRL7grQ zZCva`W1o}2bxsN=ssz;7ad&kW(&oiSOVB_*(@dkZAp{zNS;oJym++u6>xlEUtLqA* z?Syp4hn%O7Z6$2J%;&QO}Xybc_K3UDeNW0(n2O1O&)1G+NU7YZFv&)Mq^zonOGA^Khe}W zwpvR9&MxKmj5d$x7;wc3oT?1yI&1Zh?n0?w+VwR+CALCf8o}871;sUmUh>B_48sg3 z*;>}IxavYaIq}C3)i46UTRnxkW_wZw*n)`Gk7m=(S8w5zw-$xOCjJi z@-%DClmLOPBWXLMPeUMcK?1Hf$Cu^xu3xWS@o^EGU$wz*yzfObnW?w$evOdF+pZ(V z3t=XSY#PFEOIUJzRVbd0A}ZI$J#s{lerdpu`*O zVt%l@mG`>%II8_aSv0STwd6$VEs0Gt?(dRU?*l$e7_I4BJLvubLUhl+QW^a4wj+L!n!tkjT~ zK(nDVz6`o<7_@7JnW%eK8N>Af$hH*^!DsItQKJxvNr9p*gc%^tAm}X2|vxy%E-J(>y%0cZih#-6M!}z10^<@povOC1+Fyw4|!7G>^7PAFY`U|@U7i`yL-#oF&4_eGF6$dUHJ43HshGrI# zHNwNMWG$naD~1-XWqY5p3QXm~dsTtj^1aS>ud55CI39~|zMC{(SLbXUzaAamb9!^t zCI5qePW)Q6V@)36OCeN!#vrZl%p098xs@`6bfUX&`I_1Mv+HWZI=&P%o^PIU5Z#k_uBTBe8 zV`KMks+ql=(=)qYgJRMV3U(b2(WQ>X00m8%E<{Mx75%6qh&|la6;aF*PeWFZ;`Sx@ z4F(!Xl)cYpaW9Ms`a}}2j_u$CR}#p2S0$QlI=f5MkyI$Q5^1YWc4pVyQjuFV$$Y76gyK5b_-Gf`{IAe6z) zI`@&Q)x+CK+ZWTzJSMx3(PC5ADfZGtfPFnge?rr^>|EIR{E?*3AS7P~3Y(1Bczu33+ zZ}y)8sJm>H8(Ge+4(gxCa{Xz)$hY-x@}K&myW}mb8}h$oM*l>PtB3p|-`2m$e~OIm zl0~rp)EfO0{dOg8>)-T0WkGl8k8tj)gZ@A4KQ$qD*$FqJoBu%?@_!HdPxg=7pqtf! zW4SSA+;xH6rGH})Z2q~yZ)*RXT8=bf}3W3Uwn^C>a-v-p{umo5dIk?&w>Dky=01WgT0M=IT zovaM$ZH%lO^h~Yk?Tl=!?HmABCiDgtdiM4J1G!gmXs@hLzr?*t_EOdSxMpLIU z9gJ4I(!uq7D#~yaHH*~Rq6YM92AtOOp#TBx* zm8ddo3fR#+l8_zo<(R9i~J0;>VAJ|#v+Ld=VrQ)F+EffAC75w`egY;=Wo6Si5zR*`!y~PAHQWP z$UlX|fpo8XepTI_=xu;U`>At;*FGt*in!Vu-gN>mCkY8v!Kz(`1`Gsb1qKB4&&&GD zN=6QP|60jat4>0+-cwJQi3b5dhI}sTP)*7*?a&Us&kqA5fG-fM`(uKNR>Z?*L=xVp zbL*;T&c(KgR?a(BiaK>6Gzw%8G6y2%hLDvR#B&z)oxFw>i+msz(;rjW9-98UUlOSM z?#qRzRC`#QCm4IoZH8eB;lKC?z&ELxOnvJ7A~~Jo{DrQYc)`sYi>R;~eWso?kWh{v zi9>*qOrA$z4~Y;C>abn`O2r1zHFexJeW`ojFvE~Gk2WK>Z}uu359i)##ia%0YHLpB z>~NmZk25UdTD5*0dHwk1}WH3i>0p2=+Y=< zI4h461lWoS=@8(^EfA#f*;6`C+>5DsL1v1LB!v-&g1nx+|%|hCJ z&&T&>nGZu#@I<4>|%_LkX1<56KV8BwhSU|B$W zA9qEbv$ItdGd=y-tba=Q8K}6|bmuR zOcK4TRi?S;nzCbxmNH9|30>a@>*Cn%fF7+v0DE+*o4u{2uI`SC#>ltw5J#LjV)VWv zGPy5cbItc_>7xlN2CP+WLpW~O@fe0_1V}0*q*HPoQK=<=H6vwe)(lg0rTghjzYq*? z>JGRf0=@&|@QK=%+NO~3X6fuhFV2PSh)oc8^eOuUG_z7jK8-=o;fUPDW>@3-_aBw0 z#vy((q^ibuhWBow`2;iYthlWs=$g#3l>3jMl1FNVcL6Ac@eL9ZOGYW|a_yd;`Xw}S z8&yEo*Q+DTKXW}1q*=ySbz}%#6Vh(U9_D#+}XfTLEeKR5LPZ9_yHwRa{q4?+- zBEnDpd5j*PY>+LC@X8P{!`#L;i8I-}W(2ue+)T^3S&ZvXfmqI-01lgro4MsvSu}1! z4miktO}tPhpCNnnKbZ@Kt}9G5IoBB9bfiNkf~Ghov*;XYO+BNCf#s1Xp!THqnd~A{ zkyZGl2h7R(mps%fED(7@7bE1Saw?n#6f5xj3MtE_I#XAcSl#Pgcu|Jh{`{_V2%2Bt=qzp_igM2A%;102NKLw<{3 zf;;YaqNz?xSqA)ecx~KbTjE7R7x#%8Q_~MqrAFTMUJcwUol06UJ)#H0_4COv13k4x zIm|_;m2M`H!DCU^a4>b>kwKMQ1M->k%oa3;l8MbvtWjb+vC{he$)G5q@jeUVaOF6n zhParR>_g8RE$1F<8G59_B}aiMUq1=kyNbZDSMKxAM2?d+4u?W^Z~tRJlFt{;D-3loCYA!{Doqc_9C76>$Hv z3f7Kx21fSp4XiC~tR1Zk=?v}PBA8=j2h8iyMd;Kk&}G)LQvWfjCs{S5VwrXP+0#7d za%!j@Znznm2H`T)tf;o!>0?fu;!Knq%Q>^E6n36F&}fFs(!zt9Tv% zY)6d0G_bd|`1i-RsB73SvSE19dxQ5*&gj#~JH^gJ7F~y@k(WE$pOeqeFH>L>6NN&H zF_2P9rVV(n+9S|6589Gja;2z4jH2&yV)8wat*2%w6KuipDwWV1bU399mojUz^DdZb zrH|~MsuUm6JgEjyJ-o)DYrWVy9_eDxP8`>X6 zac+T1LODdCD3__U<%(M{X*6nd6eh;JRi1g1BN*RTJwc zDX(RokU8!RN_=$6c`$zOn1?dJ`lof=l zKI4uB02xJh_M%g@!)Bhgc;$&~_u)u8YmVZwn~3cVLK`i{Z?e_GdP70$g>)wl4MY)` z6%b$=rJASI4lo{x_dJ(Nq~HZdjhw`%th(Hb_}y`OSX}uDW;c>9E1Y*f7FgK_(O$Iq zpOTwdBy3=J%=2>zX{OB?I%D0!VI|kuMe6TT>PL#=wv?U#Ru%T)13u}?Ev00`_u^m@ znalg}@paFQgYeYN0od|<>I{Ian!YbaQ}narIFLx4Xnk3+LV~iH`4%z&{28j;qQQji zX>9nMZ=NyRqr+Y-BsL=^d$vV69MlxjkTiq<2KvsdKsD)^=$d?UtQkyGU^Qd%bp2ES zn4KCefKym)Z@y*}m8y(oIKhN#resM2V5+E@M5Y9{pf$gYh7!A5Z943Op(yxy18|LP z8F-9zCA0pCscWCdAc?U9pN`H|Tl_>ZLHjq=h)3^Cb4n z7v5!F~&rWfk8wsofQ9M)nUMa%rPZ!QWD|HV*wJvExs(qrN-knRX+ViPX z{>9xvPw%tfl~%An706lz=wg49N2nvLxJqCxHtV~9kZ9FXp` zJlI-LN7175aHyj#Brx>LY1LYmlp3H>x*a!#X~|^lc5~S9y-Z#N_98-7-C;=iesi9ZA%feNN0Sn@)3=w?FSLHhZri zSC`f)rWQ7yp3+-Gm5HtHBfAPd?*fF&O_4QxN7cOH)=J~)bRx>u78_u+PU*B@5FP*# zPoX&`9o^5ap9%Y1(&8I~48tcu)Hh2tPeyPQk_GiZ!ML!Po`)-RlYL77eVs&;T}{br zBvPBxL@S~j-iVZw@!7z{^azh%SXv0Im zKN|#=^TrX|>1qjF)J zG>n5a40CE9E66l)B{&Ed{N;mV;<=r77SQ5Fu(-C(@h-^hIX0{5>IpOY^745T*i&H? zJONdzm-QtU->9@j*@4zq2eG_WMM_e7NZTI;^DOP~DSnI5sjTd$J*`T}iZs^&Y)_VM zn6@8zK;w}UulL!c!u@%)RUqg2;t=}_a_W{k=&3#KF1f7H1BPlI6IF&9130Dg#_Va& zV!`*W!lkLaq&W?^N@iTJrENOj>3K|BMA=yjr%dU`Pg<~M7F1wg;vG7X#h+3_BHVdR z-1OOpH*U_0v;bTlMp-;ObyVg?+`L$pkqd}>+P%#DJQqXlrmTnw>gLZbk6AB0HDG7$ z9w2Vq7=>r(;H$R^;HtJLmG5UZwaoIGJ#)4H2cI-DJ@UY_&b)$r&c_nE89 zOe2Y9tLyD&N%b;3pmK6^K+iwQeUzF9E#W#3N?K2@fZS{pNqFJ{`C7%OXGclq%>#6D zRy)J}C~;_79Z_4!_>JsH(!=G_-DgLR(KX0` z@boLJRY*!By_^;(qwo}%bgYaW|Gs+Aak*tf@!mQ5YlG ziaerL_e$e#!D9M#sHn%$F}x~*E4v7TO;uK#=ga-W3bz>Fp&IJ}5&51&fKzve$|n9M z*45a>^0ubv;CJt1g=yXRgZ^ik7mxB3d|ezt^U7HQeeRI?>Q>%v3!Mevt?Mu&-HI@2 z@UUSP{XyU*=Dg<7#N2>b(d*M{RV5p9u?y&>%Ty3Q+2H5r*xl~p@j|=k9s!~jCMq9!cCrCP8V_(mJZ;kpIoF^&0|V~W|x%C!tfilo0Y6s zJ|j{x!^uS8p-Vu(3)KkJk9JAlU0$wJ`YDHPVB-;KLM|#tnJi02%L|2RgC)oBvLfxm z2tc)^3Ha-1xvxm(f?R}@xazsVD`{gb8G#ed&pIT$w<(^MfV`m`B6b4LhOeR7Y^3jF z&r*lE?v$(g)L_}^J^cW|ExFWVw`RLo@L24J zixfL(rdH>WRt?F&0CE$PNuoS*HJ7d1F1W++&mWOlr14Zi)0{HOq23E#tUyvQyXG-S zpOuMFl0UrhwMhd1VUuq`LZBANMu6VQP}j|a}P zfsDZB5mx);vI`v8HG_H$d0H*R%!ixd7M$%^OREz{l^z#vyyKW`Nz2P{7iFBMVc)C+1n;_4)>FtX7MSn^`fBvdP#dL+*;_lT08!#Cmm-T zMlP_U`Mlgv<(5$&OQg}fqbEr=t1oq;QJ(x!;t3RoRn^-~X{)<8d9x)UfT9aQE)@C_ zes+92_w2!rz_EGWw@a2VGj|1LPhOLAP!sSjY`!~1b}NgQheq&jbGeC8SYyW?nwoP( zNZY2hahe6QGI=Pcu(11u8rvtHcC|quBA95I&l(pkUX;d-xe?RUlC)3P7(?qg66qjw_0m#5mwx<;~5J z*h4lI-L%chF@q*wGg-eF(BJiBb3bjM;(CKd=t({fXc4?v?u~D~r;StqiYp6-b5s^V8DGG_1?8e#|44TK+9Zq3l zt_JB`)9A6mP;zk9v5v1V+Cc18aT`-p-G!*99zH9~fvnJNq%!g(r7B zd>9k&XkR)ZlH<;9ioY(iL17L^az`jIGhilsZV+aqn#qyTEw#Vna!{SR#w!>h1bL2{)D{4HfA@kCpwKSCh;<|#z9mD_?SRV7Wijmd3Wl| zkHf16<}<0y&*G4PUf=irB$TFi30}BjJa-kaeP1k1?x5tq#37BU2ul=(+t<_XH1Y5D z9Px=DlyP$u7{!zYUEKQn_T_rP?{(mx(k9qgpeV5g4~izSW2gbAtopuN?8^YRr);;N zOy;>^xAW`E$q2M3T(clgf7wI_L2nu~(y^H*r6(b{z!i)vdX{W1K6U%vWU~Uro(8rH zsyI&@6vuwRjW-r^=$JUVQuXL!h2uARIPPj~Thoi2lhHGQm!Qvq!gk@tc7aMZUf(5^ z$UA^0r5!jhhULB?_l(!7rV9gEtEcPq$Y_?R@InMx=9uZJ`h)_uX-2x>k#{Vwloe;-EX53m@Uh~Fsr5A3I-N!vKUC3w8F-_Mu^4~Rxa^p1ga7ui$JutES7 z%b1{j*|q`sV;!68gZ`tzThsfIxCCkYK!N!=M*> zMC*XENvFhJxUFI3aBiu3+RW;FGFo+ujGbztZZv?#`GAx@@SPjnVze`(olWiC=f8M; z0pAJ-{W0)jPqVNoruTn(iq_cOO_*M(f=LkH7pF|PCiG0>f#}zY%3b9%ToTd%V zwn4RSR1NI|h^vhY0E4wx1pQ!X?_dSS#o9SZOi}c{z4*t#Jh)GtZ-%dK5r&h3*}~Qd z95@$i*Cbn(2`N-bTJ|+N4?rm+dl$`3`=-|p=Z1)g9^95-;z6a#0Ltm}QG82_rss6h z*RV}7W;~3QtpvbxYS={X(D@)OUf6pWa~ZV0^}G4Bs7tdN?5`Z#W;KH;{jiPqjyA52 zxgPz}^p0W78xK!Rj`Z+i^}(gGgVmfroluc?0|+)dc8!0=%FA)weQFH9*dvP_*y}q7 zA9OzT0)4CCeYcqKLKVG^fd)LL*W`RoM%KoaG8QI$c}Du=J}|5GS3MIFOo4mqRacS! z3dFn}80;NfEsTDxMb9TK>q!PQ&)rW-I}PHq@+u{TA?F3+f`qy#h;h+zOQgn;@8)H` zoy^)Fvx`qAMp&X85ow%Uakmom_09jhk{%E>mrE5#j>*#%5FtcKVTuvm+IR>)PjA-d z)-bDGXXvaG5Y1;OR1e7Ulc4s8^@j<_353fZ6y%p2N0;UcCbT0blwzMwCDYRkix=F> z7Wfv|rD4+;Q|C%;;a?MxCI*fuQqW6@F$+P**4jfYHIU_Jw5dVsd7S#-!T>p*s|>hC zqlKd=HOc!?lgkmV*q^Km(ZE2Rum252{uaxh?nB6SsNO*Rc4|RkNdM7vcsPu%tFL`} zYw{W#!_tl}UL`wvv5aZp6K!!PUayD>GDnKjDIOCuL-z!h8iG_whp6P9f|bb09dku| zH%gt-!bkTHOG+@u_2i48Asz{{MahWu`+{^RX@nRXb7;s%pJtm{)1((c#=f_sko0?4 zR3VC{g59Gr)D6}nI2_JjSbEsC=X5^}9E>n6so7eWeHp@<+CB30&lxz_TPHLxR2yE8 zC;!wC>r&r;;JV?3AG!Tq=?92zCDNg8iz+>USmbQu*POCilp+zVjGRy%xap(uvPjQabaK<@GIHD9;#W&kL9hy#!f$c z^}qdeQ*H1BKvUy4BILM#^8Sw4&fcUm_j+7(j1uI`rSUP7as&^>rlE;kLAL5KFh42= zY+4ihZCfqX3ZY-da%SA#RM5rYZ|g?Tv(lPNyTZ>I(wQgtR7Ogc9>Sclxio!m9={c~ zQBx94I_1;JQPJ`GIF$csrr0Tc-w8fOfPxjMjF7G6rbTw2jtSN#c!k6IS(k76g zuIt+e=**jT2LG`SU+T@FM#<1WvZHozOhb5^H`jg-gl(NBvva=qKtdx)wGgQo*<5>Q zvv(`RcJ*O3vC@#r%LPv48}q%8U1%`T&KFsKM+mD%;p#1bB%%_79NuZ_Otg4duT=-a zBYxuWZeJt?1!!h7`^x&j`4F%SE&9nk#pa65h9#GXyMaB)>Ef}z&i=)nAydj};A4k5 z=yEIakJws=4;E`pX^Zc+gO;#O=M%Y(iq*&q?s(0dm|7%9Qk(HhjU$b*K{N3evTyF6 zmRFJQ{BXTTj}&hR#BT6&Jb7fIB26Fz4!14(`}RE>r{Sw)UA!x#^Uin^#zmih;jkfP z#y5Shpw7Z;y!+>1i23UN4t9E0_7=ZdIqd0e?5u5!UK==!?4^f0paU6@0@mG2u+FR? z@o76jFqqcqdf`cNJ5D@v{l58T-9Zd9Zcw%mGl`EORO-`(nO8%w-pb;}8b_+)@L!a8 zz{E%_cX#;^CF8NKeuhajt*W_;zf8zFUofN;R@HLLU_P+c=zW(O=6ZC$= z^na7Ws|o%<`2S}76MB2Y#DA0IYvaKGkC6Y(|0ihm2GIScXUKo?|Ay=S=KT{cdV{ro z6BzWrdH-*a>u*7SUQOT7rQg*1m!RKR)88`w%-#Rm2LF+g_iD-CSK7b%{>*Z3nf*8Q z;{ESD|2OBK4)VX>IQ8z&ocK52pWF7$eSXs<(LXwqoFw?`!2}2h?)A6!3NShnzy13k D1~CW# literal 10128 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 R^GSgSkcI*Pm`Q$q`#-Oqmv#UE diff --git a/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Active Loans in last installment(Pentaho).prpt index a28291f6fb9c9b9172741c20f41194d5c4752b95..256450bf68a040839070d27a1d394059f5580b60 100644 GIT binary patch literal 22860 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 diff --git a/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt index 37b96421f864ff19f7be82f1c7a83a08c4b562d5..c5c1b89742fda0b3bffd95a5cc695b7c0ba0364a 100644 GIT binary patch literal 8555 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 literal 9192 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 literal 9353 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 E0OPFvhyVZp diff --git a/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt b/fineract-provider/src/main/pentahoReports/Balance Outstanding.prpt index b4f94dd8c42e612ba1d14888a243cf7ad8fe310c..04c68793dfab0913fe0c4ac1361d875a465c2f7a 100644 GIT binary patch delta 3762 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 delta 3769 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 C+4OV( diff --git a/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt b/fineract-provider/src/main/pentahoReports/Balance Sheet.prpt index aa0c87db0024eeedfce5813f6805fe3dfe4cf02f..eb5ed8665b91b02c7a8bce2595f54d14a742fc00 100644 GIT binary patch literal 22446 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 Z0}4G>>UMOyES2StP4{b5qUgMqt1sAMVI2Sf literal 23549 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%0Dj%BweTf;!8`+qYgrOG=Vfh?gG8hg&rY zakJZGXjNO2na^G{xxRUyQ;ijlpmVNWAy*#tK_c^|pikpx@ogmS=;-{a0N+nm;({tT zFDxlxX&O})=F`IF@6_-5>2kVhoRsOtWst6Dk*zW9lcwvbL(0t5-99S9eDK}-&eh8K zjbqpRV%-506IOk?)Y#O8st%0Q_|2~Pe4%5!vv_wMRog`E8wgsvwA}}{-U5wqD$WWw z%P>TyNvUg+Zx5{~)hpK~{Zcom68O!F%kS|)lI(P*(&|en9DTHWBN|pqCgtVhb_>2z zMFo7$>6pa-YP%2G`l>KBms$sLX=p4NKmq}S5d2Yc{CB5#kpQCT$IJ7NpTD2!1p`F* z$KQd0FoA#^r$-&Mhk<( z=DBWdh@a=h{GI0ibl1P0aPnO9EnrTz_@DDm{!cXjde+Hv&0>I~RGy!F@^{*wJn((FgaEK2z_!}wru<|NpW{3k^CW+5_di|s*FC*YI6qug3z!@KwZr$h>fb}) z>G$U*{CMc{>ptKo)t&&=%gYwEEM*rOcn140P4-32idscrE(a&|$ zgd+dZk)GtQ-uYP){X8K;`GZj$k^nm!f12>u zH08fX`?Jaax^eOe?T5pJ0HgD-Xitp$bDSRLyrm!U@+6;}_`6llz~Z~`xv_R&HlsCC;4}XKRWuaTXLQdJpqVZfEwqY4*mCY z)|2)p`P{A_D8H8HKSzlrevb0*$Lc5TPx4QcKRd_oPfAh$)o4FDM;~Cr>`z;MUOn#` zPaPgJ744V!`rVf2aYgVilph|u`v;W&5MfW|Jjveye=WU!?!0S2CH7BaeqQ}|v37j? z;txZg5ADxgOZwXB=10^$$vIinKahX7^m)|L{^Hu( z{{r#9h(CvrKY^d*^BeeUdGM3TgaDIU0FTdq8v66M34-x9@qJQv3_=hd+z|Bi?_A zSg!6rO?{HTL;qTD@Z7aktpCZ>|1Nfif&R=UpX76A|MfZd(;fV9b_?Kf^|L1Zmy3V? z?Rl4e?)X#NVel?M6hFzQ2KZk?_dRkhwnPbdb}LfsCL%w>oB*Sdoq{>94GRVZU@%-G z$tl=#HY^}uG&Wa&Qa(?Ikjn7+xe~G&e_af- z5k{lijGX(pQ4+ySca*_7#T=<`5XnTMEDcZSuf2Acky5*Q@w#pt=Y~ XBkW)WcAr6;o75PTff?n9H;4xSw?ZJo diff --git a/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt b/fineract-provider/src/main/pentahoReports/Branch Expected Cash Flow.prpt index 5fceacc119308e7dd15dde1383275a3610e3284f..113980aa769a3790d01cbdfa454202b0123920ef 100644 GIT binary patch literal 35048 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 F@L!)TD6jwk literal 8177 zcmbVR1yodh(_c~=M5Mc$rMnvhR=QRimRgjMP^1xAKypF4Q@W(28>AGFMnpiA?)+At z*Y`o6?>%4aIrq-pd+zzof95}TW`1))>L{p000003P~@JZARJ*~N{tQxO!5K%Sctn$ z7Tzu%?%ZC^PTx&tp|c_cz9R-01B2Y4`NAjW1?vlqNHgC$q0;_vND3}}pC4QL#nq8R z*G?!;2x{btJLgD<;T*(Rj#%RMs5Us-a7om_n{UFBGR8dsCDws4eJlxr)M>AV;#?IW zuT+DqKIpOPFI+SY>A>sH;VP_ zGvMlcNVVujxyYxnW>7>x8d^T%(LVM8XU-$qRUqWRaR_( zMiKvpR#}P<2m9j#rV7B+B-dwpuRV=={V)RUn3dCft7&ezDDbQeS(HOyWuM^FdNv?7 zSNf`9zOzY`nWHey2M^9EG!F2HOfBJTf9M-&Gg$CzRwE9&?ue0i%;#RAnEV<#9~Q}o zFWT-Iv{uE3tm0ZQBGa&2R?}LEcCbauv-z*ia;TE8e$0fz6Zd>dwLr##EFz4m`f(o~ zabtzDA&C%)eIskl-XP>(SF&?Msu{JYyEk%t52Xk10k1eNlr0Y1`BJGqSLQmbHw2il z6FvblS|Yp8jM;A1>nil2N?+dL7EpOVxd;md{@AE-LZR%8y1EXYc*lT@lG&>?*R7d0 zuSlERypAg@*pF$TF;z2n#shpBt0J0{_1XiXR$b$7l(%8QiDDvj>Y`v}qan{rGuYOV zZQ5|pC6Fqe$JtIuEg5ny!S<%Ew`h!Wc~DW9fz)t>uAR+0C06LPnlCTdhVBu5Q8AIV zkt63dd`Top-6-qeUaJ8fj$1+lNtA_=lLzJZeAIfmf0LF`JpvS=4q?^xZnrN;zJ)-Ez5$omR4rRaPyGLHIq z+d7>M^kUy8DlmW4%FQ9b#!}nr z@cXY9E_eB43l0w)xXRkl@n+KwQ?bS;R%#Su8z?l+?8kzG%E?4mKx`TfpjCLu?Kkmt%G9PP2hS~VoORz^VHodV%N;o4Nr{1ARNRLyaL6$W* z#hmOO>mSqWt!|9M!qq#D5Eg4ePP=-_`u3>Mb2)Ff=;X@6bGKhF#=doTqYEYOh)ou3 zrf;yy;+rq~c%&ayL@asf#9PJl!1UAlXPF=`G7Xh+zwEjA`jL41=`;PEtk^xqj#v4N z*EqhHTW4p+&|(RjHl9a@A_oy2TWE7H@~U6bYwpHPx+|#jEx}}F{iNT-X^KNdCe+jH zBV+8-S`G@Bn*z2L&c2hSf>ZHSRyX|JM?MU?UKTw^xfWi__ z`p7q8kR3#-I2dGxatY5D+}|!y4}hyy?dnlw&>d&+1_4M+so<Mn zQEanu4+f5Lm5gUoXG_Fh5gm&Tgnxo7R}Z`0$t_y`z_L1hnDkvCUa&sWq{(D?0{Z<3 ztZU!iIxab%Go@bA{&L{@^_!M6bkJ{A1QW0X^FRUs3{Zd66#&55#@*sa4XKSEgmwT4 z6px>VB=|~*&{FGT6c-bF=;(1>0;b5?^ej#4g3eBdQ3$vaR7f}_(>I@#@oP3-uwz## zuO*DZ!p1BVKJVGxqQRY099njjRr0hP1jwzqk_Y&sTC_#c$ZQa+i`;d}l!)C|7cTlIfJUv@p| z?)M}rn*iBw_h27-s^qe7y*J6bZB5r~KuDfHqat&M6T7T~hsDf5iyhGQ%U1+ ztre((pxSb=2aQ6WOQ?tz;tF4ZBXI6e@q&e3eYyA$sWQ!d0~GATB1Q2&mrA!Mj*Uj6 zQT8(D_**oWgFF5EWiv7BJs%udYGY&9#j)7iX*$H^TdXNSce4wwx1;*u{HLH&GCL{gVr8^382M5ZHshb=4F#TxNm>8Mf&g#^`Ie- zkgU}Sa{|31C*BLU`u20jZ{+6g?PT-Q&~AN1 zZv@2g-8LYdar-t6o)ik>f8CVT7K%HI^)0I{bGoKf500Y>P4T^CHHuncR&;5D-(sNa zX4u<_e)s86V>pNdl&l&PE0P)uP+)dr9*9r9J^_j{mnYuBcAlg}mf&z#W4B87CSrr+ z@_7NBWJrzsLB)K8HR$uBIPR#~*2virI;BR$rN%LCVU)U`p{`zTnp0JRBO%{Gb&vRq zmc|O-lXmNu%EBVIE7^7S*UUejP^+7XyJp~h0r=D~^P~rbEL(dMpu$4o!2T@rKr&`U zkZSjpio)_8oVpoWeU?z0S-2xSg`KH7jtrCC+$O|V;@Jzlh&nb>7LJsJ?4jt)d@TMX z(vRj|Rj0#QK!#2=a)!+qRgZPZ3)2p8XNwPWWUOH(T+L){DKteXYhIr*`g#1*xTykN zLtj6LqV0a?`!u*V{fD->HXCK*^+RG~qu`L2xSq=@iEYuy`ICm9WRBCR7H3#)Q93kd za4vFYo3Ly}-gRz4KFsr4w18Aa(BQjv3z$3-$@^$i#HdMZ^tNwqZP!p!HQrD8Zd>T5 z#e?wBRQl2aZP!c{1KEa9@nw=RDgo~7G-4k7x}hf_V+B5uqHIKyc^TPdvxR=cYDiy~ z?|5(k)xKRd*rXb8KIh-<2Vd@9a55>?!U=W9=jxwYPU5=O^$(Un#+v3QzhN)(LcD%zOo!m$79Y;1<{ptNRo~#c?Qg#muBKI3ww33Vx>E^Wu7*-%W%HbTqlH z-C0$}>Vo7wS*1sI^7Tzki6IjAPW?X2Es|#!R{VlzA>eHn+LPVW*U@Kd<@$Zu=4AQD zutDw6NLG?De;>yri91%|!X$2u$Zub6>|zq)oFuVyM-r0T?wrDBr{qpv*q2m27sxNm zTldbRM6(^SaNK>7ynE14jSdx}GF44K#_i%l4`0FB#to?vu9SwTv!fr znOVv^I#;ac#y-D|f`(D^3z2^+&6*}#kyG3E>pAJ8nwdB+ZB7^KEb~A^N#AZV-#I&< zKaPLe4QnMjDmqWxJ|K&A^#g9jbaF;@<{0p^yzmkl@BGGk56@03p%b)HMkEH^HS_w+ zaE<)?`w7eIbp#_)&=bT#f;ik=Eud~r7Vh>gP&e*}t}YL4T;1($+%$&TF++d^!OKsI zNq3;Ps5v{3iTRefdT<#j+P8eO1M34aPSJ;WKe4vZ^Qn&Dm0NPb94pZUPqZjvZKDjy zW%rApV#TPC!dETjHd(GT7P0E`-`sr%b6NjPHXc#!Se>*43fs>@yr!JX zV^4Ts$%bKN^Ma#Sz8rZ6?+4p(hMJ8C@eX1f3aXjJ(?9M~q1V)-)xc z&YqI>0U?yTc({)6C|>M~ugHrUZyI5kYMb~D;qySePX*km^&k2!D^%wwAhd;OS75BK zXn!ww1YuhF{%+501X0u^004;pSg_k8r+=-r)X>>wR*2wA;xasFY*>gueY5d#Pzq|_ z_<@aMHU0OBm)u-wTy^nX`!}>aEs@5?=2%Hl7ooa!ui~`5J-afkk2kxP0u=d zWE`Y(BXVExp+FRRsUp9Kkg+F_>atopvf@ZP#qwc<2Xr#B)6$1#`^xpYeMEZx`cOSO ze*)c+MNJY@H3yjeGEolvXP-VNNas$f#c~Es z<<-bYBU9=}65_SnvsR4Pdi1oyF}#?#C~#qQN5!0jWggfKg#qDrtu+W9lp+gR5ZcKC z=|b-033bqZ4Md{9RwHHmf>o-V8{bc!mHP-OF}CXqh9y(3C2?kDJ8@+V?aVpxuo!zK zTN>XoZ#FWuNc-K8&mo0VEmxUJQ}Vs}p4w@`MAqcebtoYTME63yc8Kn-(sn0+a%dLn zXC$2>UZ)jX2rwp(@6-zwlSa{?e?f{Aq2+Q{2k)0y+tE zAkixJeH~%aB%e$eMM3IwQCAxxQ)wxtg{d$?@EOWf)^dR)GEL=n+QjyH%a|@DJRoU2 zsYm0BGnh33GRN^!ajV8?-?4_xB{C~uxd^6`@IE^G9WPdB$TazKj<*gl;??Fo;q09h z;hYJ{khr--NfQSJ=Y(~WyB9+%)CF55$ok_f+LPmv)1%nFqMB0UIP{VNs;&oA1J-Qu z7X&zZK5TA_bN13tMEI1r)o)#q%P=bt?8%Wvv1l+i(;HouIk$yy?$eH@lGW-U*%JaN zISNM;8qFm?2WRIxV9}exNwGYh7~UR{Bj4_56OSzNRbDkaqYi5bUdjQXjylpcP;SyU7$KIBzcl_7BR^@}Pl7x(^%hq|?X7%S zCP*ViQB9E{%+e&tf{WF8rQ(qMs--!6atG3AWbU*T{GEvb4A{sA#}i{exAm-*Wz$!2 zBJDt;W>^Mxn<&>c9Sct(;S28S==)sPx#XskZnKp`jJ`mR)-37V8e_X=TXH6cS<+uZ zaVPg>@^p+ScSvB&*f|`9wlnJE_Hs-zQA767yA^A0n~2v*k9;H>tzydkt?InxBRf|) zvUedAV}`P0hkD766R_JxbH?_o_gTs_qS!T12sO^~;~~NQgNG@+_h_|w-aU|#7L}as z^#F9btF(q%eQ6b^euPUI1vaqQEnO8#S|q)%xw2?g{c8(qT= zE$yOuvDg=k(MzT-b80HN(ePwjNvpQVQE%yxq~Rs@?#5EvgSDhQJ(10=Oo{*lqUpLO z5yk}~7K3M1BUo=ak5XAAvvg=lJWAe&1w(}QP<8oTSwSq1ik&}?(Bn(M;%w?W7RDXs zrFLYqk2Y666fg?-3_Z&eMjaSG?tIiCzO^ssDYcjR%|0XBT!0S0z1+22QY%Q6zd!D2 zT(iP*M*s;gKh1gqh^th}w9=I3Sw;>6sWFYyi0Fain>CC!@5b&J(>-e}u($h~RpAN9 zG()K6&C2KYNT0KOXP=~bAz%8{vuoU_I6uJO_0jN;`iO}rA{vUivRtZ~N`Dl`GQkJ0 zi4pt)ilCEsZ$9R10kyZaar-%+tc_QPqR`=l9*cH|T@KYWVcEojwMMDikPBqdQY`P- zK+W>CDfE0*V)(>&R<56++BQiSOs7?-m?sZiKC}~K?3EfFv`){UKEGAH=v;@%N(p-Z zjJt7Cd9OC@9+x#4V;GYPtA5&Q#OIG6f^(0aw18EbG^W7u_;i+w?1OV)OTiwgAZix= zWOb1&{L#(SM|{z4ICuiUNR~Z$D|Sk6)}#iAc+V1j7^+=QiC2`W$z#adYg&$U57Y4} z%qO57FAO5$kRK;j-&MPIaWur$y$ehIZD`< z6*e7eCe!pgnV*GA;IZ$}>prYVTe6{I+tA&f;B`lIo(wz0K`+W+VVe{j=P1F+*9kl^V^Ie|}o0t0Bk zLYzPik|hwpIAWvqAmhV8EJMF))adm>!gq0DnyFD4H|IT9soeRGV~}RA>dq9UY7X}Y zMsfQ_jU!~__Ublp(N+;@&4v9=OCAn78EwnF2&@5eC8M6TX1uI4?B$ADZjjncHYRBH zePbSQG}A>kn*;(M$c!d$Hqho2({UiWt=kpbO>Jd_9Yu)TX!f-$@=c!XE9*OL^setv z$brip_V37nsJ8Rr`rzlOA$sb!7niWKal1A-MY4OzWaSIwUC|n0NUL)1QW9FYd z7N*wGffAs+y6?tJZjrNR7b+i)rX=+3d^d8&dI(YTQIPe%FE$H5nz`_OFq_+sx^gMg)|H%#oL5OX zTrnKZ(~a9`&XIR$Jp<+^r|4PoeEhks?=0gxiKn={baj}s{2&nMJuCXc$vi27=NQ>C zakTh8-CBRd#N&j0Qt4o2Z4F0z1vRyd@yu?;mtn%C@-%BTG23jMySd@5S8w<)ea8?3U;5k`|sTg90PD{X;gGCX#E}6KVD#6^y2eg zL_FspVjB_Ke-R2Rh>i2l@mk(^J7T;oS%zg&O z7Banw1>+tfBR9X4Xri8JC2CGt8Pz2a=lBw4X^Kpjc#{fGU)iR<^EUlTYrp>~E6Bz# zO)!xp*MBgXLq*a!6M2P!cOW)Vch*IJxs~DhT;&(DqU-x;1){W147jevLhkx%9?F)7 zi@G0upW55JMAQf*WE#MK`X96WH_<5(CHn7~*Z&9mcZPlwyBR@`{{vtD-z)l0#QT>b1XTrS;{Hy< zZ=x%Z22=GQg5{U|<*Glo_II-W3*8@q?)3-yAJqM(vj0tl{*!3`QbvnV#)ilMHzx{z z)9#yk1~NT=8l_|Nm;BwRzg+guUhJ2iA1;F;Ud4ZRW;daKh5n!NPk;U1zx{&tM?fds zgudC$-Bk0-Q~#5i-@BWeY8DV(8 z-oIp4_0Z4M@u#1D&+fl;{P0r-*`K-oCjKu6T_OFI?0!j*IvOI0{iqap097;qAeQ{c GzyAU>oz2Vu diff --git a/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt b/fineract-provider/src/main/pentahoReports/Client Loan Account Schedule.prpt index 46c68f35745bf858382debd8a0fd81f4fdafa6bf..c57cb3d17726c8a98a9477f780c7001d8b3d06a0 100644 GIT binary patch literal 13698 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

o=op?OIMMq>6zva;$2qt=xSh-q>H{&_lbx7I3<_ zZyRH3K3~|UtPd-&?JCrBeFI9LK2)mIsz0$7znLE>8VFYHl}wJJH%2*Q&?jKio*N)y zNlfWYb5}Y|RBBCMN$5?ju;?godXvP+P8HeYeoyUH%~VZkY&Jxh>DOE90+a1B;tCf?-BV*{cV zHYUH(x|E8kII>h>WL2Ih0s$EWfN@z@2HUyHGQek;wb!>?+_2emz>GEXFsnJ4X6QZq z2mT@ks=o0r<3>JHMj*gLrZGi(m_qewP*kv)!F1h8n>x3i6Ay)3HtbHdhn_Xjxztrm z-p5zjT=Q!OXG5rWS03EHI|w)`a-{X@R0xYktrQxyWWJDPe40g-mf4*9q?1 z6O5GhVSL}Htz&|J#!jAEQ-Q)!6SJyqXgPfHaDCqOd%R36i`>qyJ(N(K>SqWOs9TK1=LB0^KShj)k~xi9+yE$w2*6uJ703 zZv>@H1r3Ex#eG|ws>;I$aC6mT3g65fd&q|eQ0y|2}1 zy{;R1J+EKviCv~0;l@7`B*u?kYd5|Oo>>E7_cUV%xXVFM7&yJYDZ= z%Uhis2!b7#v^@vL@7%5ga+EMLf7i>Ss(L82s>G2GymQtc2gP4rykQvv?!z+415Bl5 zZpH-NlEUGpP%6w^q?l=DPK`NJ3jqcu#ZS z4H(A`VV06B+Zgj`jV~Oumz?AFa*NG2k(n{Oo{`_Qx1$Q`5i7$t;l1io+>9gxT4^AB zWxfce29`KMVv7Zh&y4RkeWK@ZBgQ%BUbbtf`5{|0OJ)m8OSz?*VSJb|HOv%I--NUu z_V6C8y-R%nwFi18>ZMzW>}d{%4FzJkcNazbatw2cyUiC99V<;?)Ac313#L43{kaoh+@PuQJmboQ5(jYkLn3$~7~JF0vAhZ}8e=_-fx zhghpjiH9Pw9NEWc#fNFj41k$@HYbG4MpzO4DUUQS?`XdhKks}+i<0ChKGfouN}

udsCv_|eHNi-PLb+jU|yC;nPHyRD{_&I7{POf zZLw8LJ2^V3q&k?>wLErz0eOoGzF{CGA-?8{djDf=^qScPSn0dkI{nHe9cin7US>t~ zny5sq<(~qM`R?9UoI!NNdIT)4ap_h>vP7DQ1Q)iXy*Hnf4?ojPt^U!Y?7WJh@*T(e z03iq7@JyBtP8pBD55leSOP!)p%gMTs$d&I>FE?4A`-NW)p3*45vA38aRh`>X+6}Cp z#+fO!kcVBy#<7}V%RU58790RWxLN86OavSwHBHvipK=?eIIPz(FoUQUdL*LUjvHdb z9)=|dDix#UdG@t%tij^-yrs2Y*kRNqg#ohyQiC=L zg9`7>H@_}9aaeZ?gWUQiWqgMs=j=*e6Yj0hOS?G~Ucy_e1xUSW=G_2UX5P#$y~%_2 zBe*;K#pR94iqN}rc!Pbr?^sqfyKxghcw%Fapob^xW=l#kGmWWILmo_(1V6t)17j=1 zyg!H32f7UEyBfnbv#bixFGzV_9g}QW2II5X>{xYl%YP9VhoOS0KU0w|Nfq0+ig#=C zjomLThxjC6Fsq8B@N_2BoTA1}I02E2fJmbnf&F7yJZkvUYyrgmu3KPDVu!lYYh$CEy~ z8m8n@`n&AWTSjiTm0?s07@&(J~gRC}kD!KF6sG&I4H-nMo zM(I&+^*ho4Ub9W*^&E19R*(;TXfQ@BP;99FT+mCw8>Rd%s-~J``pR90aEyIpP~VBe z^2>c`JjlV}meO&4%6jBN_{^Z45pR9+2Y)wUM|hKAD(3qcvM2Zf?P)fs_|py6#!IdC zkB-~%);bVODU3^95M-~e5Y}*_1XDR;^%$?!ch8wINwT27LsriN?>kDPHH)1>b{@0GBgUm>`kIUYq zUq%S&5PO}`ww9+6t?yh5-CI-pvY(j1D(bexc;@!Ob*+qOF)s(%KK)4Wgwd65J(GXr zm;>}?#x>H~!mmO1am~w{J8~vX6a+g+i z)A1-Kad&s->Hd~P!8w)Py~S#JXf!i%wSMi@>Qi>=N64Ic#ws7*C!3MZJjPS}?uO4a zU@+wD81*RJlwf`H!5!^o#>}cc%w=x)7wN7TEt#Lkdgi;DJ23Uy=g(=fY~z@A(`sW_ z%p0i=A2II99Dz*Iob73s@Ym|Y9o|6|?N& H6QUHLr7JoluRRA&}{AF%O?Td<5s{ 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 Q#Oo*I^$py4eG~xrUj=IYkpKVy literal 14409 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 Ck=)w= diff --git a/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Client Loans Listing(Pentaho).prpt index 950a5c0adbd91510d5c60e2428154687c6473f8a..8f1d7bbc9c4c97e8329065b8021b4138fb866026 100644 GIT binary patch literal 10456 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 P1v)?m4gdgA|GfJ@y&P@= diff --git a/fineract-provider/src/main/pentahoReports/Client Saving Transactions.prpt b/fineract-provider/src/main/pentahoReports/Client Saving Transactions.prpt index f81dfba0b65e4387179ac960104d707ab9b24f3f..e88cd96694276263eeb2400ccf6ab3f3a33fb25d 100644 GIT binary patch literal 8451 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 YF_}~po*+Kni2m?feqbFiC?2o=AH6!7%m4rY literal 8950 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 dTWmQ0V>HT1fUxv># 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 GXa5I?6H%i8 diff --git a/fineract-provider/src/main/pentahoReports/Collection Report.prpt b/fineract-provider/src/main/pentahoReports/Collection Report.prpt index 65c9d97a896b2f8acb2e26d087500249ebd23b56..5e1878572fdac4a6b188b38aeb3e1dbd9c101613 100644 GIT binary patch literal 9769 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 JqWp38{{VfW{fz(s diff --git a/fineract-provider/src/main/pentahoReports/Disbursal Report.prpt b/fineract-provider/src/main/pentahoReports/Disbursal Report.prpt index a89a1f5b7d8d221659f6d88642d4e1c2da115b33..d8718266e643c3d55762f3f4cdb244883ae5d10a 100644 GIT binary patch literal 9334 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 literal 9770 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 diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Basic(Pentaho).prpt index c6cd898c4e5c8759d43e8a76f15cbed1a07dae57..6366070b298816c78e59a78947269584f94ea5c5 100644 GIT binary patch literal 8515 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 literal 9011 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 Q-(v!l5CDJ~ieFd%0}HTO$N&HU diff --git a/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt b/fineract-provider/src/main/pentahoReports/Expected Payments By Date - Formatted.prpt index 96486c25c030d76c653a80a22b0241754440ee76..db0e39fc9423130b577f147568bb50d84241583b 100644 GIT binary patch literal 35580 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 F7yx-bJdtt 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 N|5om!5<>Ox_8%Wg$s7Ox literal 9036 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 Qvd{ri_nQ|&`s?oh0OS;Gwg3PC diff --git a/fineract-provider/src/main/pentahoReports/Income Statement.prpt b/fineract-provider/src/main/pentahoReports/Income Statement.prpt index 3882aa3cd28d17e39e9a4d04bc1e4aa73d89e765..22f2e9b63a3e8dedf252955cf41b2ab8d81727a2 100644 GIT binary patch literal 17202 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 BItTy& literal 18156 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 Mnm=Z;|M>R50OBLrO#lD@ diff --git a/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt b/fineract-provider/src/main/pentahoReports/Loan Account statement.prpt index e2f4f178bcb8fb3722bd59426fc8bb573ed154ca..ed06b710c7bdf342d8436245272cd82ff265129e 100644 GIT binary patch literal 7694 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 BBi;Z2 literal 8273 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 diff --git a/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt b/fineract-provider/src/main/pentahoReports/Loan Transaction Receipt.prpt index f042d46021b1ce4f49811147805f9b9f7aecc440..f4b6ad56248e50e01e885209427c07ab04257c49 100644 GIT binary patch literal 6795 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 Rd;kDAh~F1PSEl~d{2$CWR_Oo$ literal 7314 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 diff --git a/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Loans Awaiting Disbursal Summary by Month(Pentaho).prpt index d280c265424c060157e9756973e464ffc1332858..dd7fbaecf2ff71bcf692bec19c8fd9d48a49fc82 100644 GIT binary patch literal 8131 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 HD5(DectH;$ literal 8691 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

HR9Wx>Tkm#8uI&0ML!|E5+l(awX{wBcUkwN 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 B{9*tA literal 9591 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 NGB5xD70Hjg{{xfe8A|{F diff --git a/fineract-provider/src/main/pentahoReports/Obligation Met Loans Details(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Obligation Met Loans Details(Pentaho).prpt index 191b17722dfd9102b4d1e5fee21056513775b204..aec6f96eabb9a836e4120935607438b78f1fa707 100644 GIT binary patch literal 9061 zcmaKS1yCN%lQ#r+cY?bGcXxLu3GVPbxCagH?iwVxOM<%xcXxLWc96UOmt4Mk-`<+4 z*{bc{?e6XFnf{HU3>Y{p$SXm6eisE(7`32&nZFL`mtk#gZS3G`W2|puV`Xlr?_drD zymJB=G1wRb9Q4hA40gsgKsyI>fGLBamA<{bxuN2VIP@3Rm+M8`i-iA27%ww9F;yXY zDS7dC*7^W*6JvV^1{Z6q+Bg|NClPYM4VQoSa>J4umAn(5kh?dEtc5BzG>hojQ7CP# z`cxo#;c`3g(}@J*VdM<=!n=z#*QbRLt)lrCzWjgT+{CX=igNvn=xWbu2`AP^D2oeqi zZpkbWuy%;czO2uk{%HVNAL>0{E)4VDQFf5(dW(i&Q#7f;{q1|Ks#UcB@=vK1V4#7N z3Z7?8;rt6Qq*l4<7L|Q|a!du%WzJ3XK_mKT;@(_S2nkPLEmgXW(k=B_5axqqZL$QgIM4-^{=8kbd`20Bw&p9XB7a$%{iI~P z;nFm3QK>-+&tB3x2In@!1mvVp$Iqn_wtX7?$-Mp1g&9l(0_$duFl3blRLe$UeqS~O?cQ~r4+po% z!DD-plW)tdH5O+a7jEXPyF?rsTm};wKp2h{ ztmk1z{3$C-Qzhe*FFWvD+SgFsy{c2Upzt2@RdFJn)q=JcwNPJ_|L30+_2mg8eFuFb zV-s_L`D+$=)&D4EMPY#vxp(D`madgDJB3y5D*~$FL{yI;F0Vq_Cv!f0o>@di;-{PR z^h>BP41}7hfJ>i*OAlv$ugBmemj*8t8as$-sV@=^QOC+}Qt*hcj6_F9_$di@JzH4N zhpI&diEA&-q$=W_NV%_C<_DSK;wuSKb1}?D@+sJyV$9Wji?N{+eKI5wa5RRv`m1eA z{e9^;hlTq*0;BZ1>DW*8G}b@A>(B_1N~eRDJmt+HV4Zkcq>+}+A4{%eX|k})>KdV` zx$Q60EW+NtTGEk?M0FUp*ovji-`6AR@hDIGCgb0%7{J2D_T!}4z5bq`*4QW0Ff7+v zJk^7dbbD;A;aU*0`QgBVj;HB#n;Aftzv3{83&C3cc2>WRan1@hBwT3hfiA%ZpP)&b zM1>mMECoxJ>y|!L|5}j5(jScmm!D6UV>+pxHo$(!$D@-r9a+R*@;kdauP%HvAy6Hm z!1|G!I6!f<5PXm>^G8N`(B*Iuan;&jldn!b40-yq9I8pl=4O;DXJ=)>XKLfJSX3w- z3Pf}pLM(YEWOBrfQ*}rHLkgwZ_8F&&D<*}=E>88+Tu2Omg zIx`<&b`~qvv}(uu1C7B!;WzpoHm9gxVtu6`axgkGYZ?j{HIL+obW!u3v0W2y&d|tdPCfgLGj+sv$tnxJlY&s_afOGg<~^^k9>Xjm?R|KZHEB z5m$QxxN|@(Rst`pW8P|h-exU<$E7^!FKPnr3v;2} zU&&fs9(S%+I-z@@Y@Q1VIO4^4cQvtfm?JkxV>UL70?M&6XxoKO3VJaWA{DeRV>kR` z4I9>pbq8$3ShE0%A0%8XsWBJZ*(Rjt@q<8(Xu=%puiC49$yp=b{+RP zbqIB-Mug!vXufTgvrD3fOE`hAhU#s*NY{N0d&FCu-g+<)5J8523wy->3441(Gh^#t z6)JDM9nirD54n1u+bk0Aj@Lju*WAoViT$Cvxg^;B?&^YUmV%RVH`9o~k;rR!*xCjZFjd#jxh!8S=5+>>NGy+ms4*Sb zseOLr&{Qz^A!4|^*^X#IE~ch?FmuLBIY%FiJW}D4BHyT8KZ@DAioB_%ps*RmlklLi@1@$lhZ@zaL;uX}kI}4f;P(;T-t1_wd~3%2CD}ni zt3npt54`C3<;}lY0q;Ln06N+k8r#1!1X|kw9RWu4M)t2+&@rMN_GS4adgAHtGGkqC z@Q~P@q#0DU#5Vf$$uj$La40 zZoleQz`+@t>&y3*y^McO-m6Ju^6;6*_b0pX@$4#HGz39+n?1P)HAomOTKZ5`|Pc!%V-ok)CwK%B@1}5 zACWlr(U3-xMtM3B<&BYZ$lKt_*Z<%Uq~H_a(ajgBVfX;D{{07Ee|4IKsg~(ZyBmfl5{qRJ;*F&C&1LPP5md)rHChd8}+IJHBzF zvS2N3^swIwe0Hr&G=F9cU?R9yp@P?=_)X(@G@C` z&4QY4l@P2~BhM(pZzAd;{HNSz6+Wji$d*(wJE6D+kZ3)jOz zpmbwF9?F0eL?>uRZh)61=|%glxpxGyN9+Yy;3=;g?pBTv)x67`ay2jS9v*}!^CQnZ zfiI*#5n=WTBLQ!*u$6kI;we51kp&ldor(by`Aq)FA=p)_WqsGFG_3Ry+BmV9iUgHK zoC=9zPuHk{8@K0y-a6QHIB3d;UcLZc%8q6sq@m4x#HpzmRM1bKM7X}iit+2{xA=Y8GS5#f8G~vv6W^lpDMR0&TSmeG|R|a6Qt+^(XZO0!)DW=s+qGnY~3-d z=Ps%9@ph_MX^`JHcBp{Q+#;zehAj`aWk)I8@T&Apc`i(@Vh4iMn9L^@X?_DNVXj%J zirYeA7`i0%XSfjQX5{2|$2EI=n>eJHGEkmnIk3?%+U@XnXgp}GV%m=_H0}OWDx{<6 zINxGH%~7#AQ7hH~h4wLi;*#)1;*=f3F@d5-?6h6fpDSDFH>uABBakWjTf;u@AP>u8 zEp}H~WXVlMMFu0fCN-0RXH`~+C^1_CYx-}Lr`ibADBYp2YH%QdVIM=&QrD9vs-3MGkZyFAlguJuqHt=BthP0kF)Ld%}X&X?f@a~HZMrh4j%mW$kPim^xF@ya*`tz!$wm2 zm$2$AAJE_6?S&I^AY?`%wBxI8j7b!QL%IdNd1A&UPnyRj#Al#i!tyf6aw`ir9UHkP zwa>O?e>{%oKnjkWr1pnywbQROVP{zvX=(731NgLv2#TB|?x^j6n1XA|Y|KAP-*8)g zUAWlI>w}D^g^fdMxhU{CkW~x}g%=~}6#PDqBd>$uuX4dFYxWR@aeKOJ*f-Ret2~KW zAs(Y&<6w7-P2M^k^5qmn9v4|yo`C_?R!ly6VCBX*2~^N(U;?jECYx z`#s)6T|nC{zuz-be#TD>vIX9u#RJ)$2e$>Irh8`c5?vem1rN^7EgfQEjN+B2zUFauILk>&oX3mz59Gf8{Pz3swZlJ&}B+hJl zmxo-;d>0?d(@b0IJ{?%m79dO8eq`oTh2f*=%=Kyayaj zSfx8j8Wi2h4(!)0bm+^Kawy+2q}0-L!1a1k@J1dV&7vb}@06)L+XpbV3Wk9I^eL%{ zRksp*R*U^kdA1B2beh%?%|x|1HxN%Eu8Em~N#V z^h6ar)#fN0aY{&F5bKiO{8;9xG~ZbrH?~G^VRgYKel$Ts5&;$K&o0uUC6G1QPgV0dE>O%r#e(k zI5r0+Pqptw;3)|ZhA+)dnRD97bJ!Lu5N{P@WD4ES@pow6I-;JGKw3}S4vrA`0uBf$ z`FgQ|(uU@}b0}YcbmMhBOCs|rQ(wZ?V$9p`=yaH?SDiw8Z*3*^>?53;-8JJ}K;r=y z$m~GgqJ~5buMI%V*H{YM@JP991)Z+Prw8g7_cE?4GMKI8=*`27N4}h&^b$Yi1Q3kU zeb8)w;zdjJ#9W%i@q-5K#$X{{uMm^i-Q-lrDLM1I;ca8|K4EK=me$RZe&NG|C84sQ zb`V{Re#1{LR#`6F!e+L7&qYz=vH2{RnCl)fz2N z)GsHdLARC6v7Ss9l@inFIvYdEmUA-=XW%?3-NWUw(h12tNRn~t?Zh-2c0-p)yFtM4Tjywqv6dYj^(nWJC445WIxMxcBMjerD!s5AtuB}F-OK@PWH zYaxc?34bZj!kTyvuL!zjzW7V;Cy;$U2~9fU_`o-i<{%lhfI|2WGUW|gj~IGp0gMKg zV4d!L61%B}6H-tSy-d8=IbtAtPa8mo8n-w3;R6R=Fk)WNCy@dYeSW&%dKSr-nQ_~1 zHY&|qC)O=Z&362k^^&j{?&UvXUqiXB70oj5-x%p5+VqK0=4sX~onT4J7f#YjZ_0Jo z2}unY7qZeJ9>e!)_>cE7$eJ+Pz=j|kc7SXUyn{anfMrWNB50s5liupNK)po@QGMoD(6MRrh{A0S#x z4o;ApBR+}JVel0`5ii;KE0tGd2ejTY0)0YQudMrGmZ4M&0n%uRX<@v`aV!x4p3O!f z%Cw~I4K538`$-`~f<`@aw46#@_#nI{n7!r!>r#VQ`R+uPwUF*N^}-GU2qf_aaN#;t zHMkGn7jM37aq8=^@}5;hBbM(`P&Mw{d_-Yl-67LBhhm>d~}A55TXa{d^QG4 z!f&vFq&DUQdi|&7lJF_XzKSBVE*CY%6gsM4^(#@mGJ!Syp{N_O**;6d2qMgnrz;*2 z@68_NgjN~QR9I8>2j5dvc3Bxzxu~EDRIU$*s#c2dhQ>G_?hwilV6=kkZZSOH%_J5w zY>2W!TiuSSmA8k7xbgZAiSU|3;WZ_>I?6S=Lxiwn%vm&B$LS z?K7bB)>+6s7-Ku>2rzAu#1X+=c83`n6dcGP7vHs^w|sDRg=UitCwIq=SRii zm+Sn<`TIL68!xy`un|et*4>-H&b#+sd^dayWQ3&B`m1Fl2}r@h@ln#q0+>W$B}Gv~ z(1u;*(<)3Zwc34Dwzb3sb@T~SPWVjg%|kjfTb6x8Ja#Sb5iP&rf1qJd=-HaVs zXi+zIra0#E2DcRz`71Wp6ckti;^5hKftA>nrQ%&W>N~p;4#|(#?&bGdB5Mr@y$T*% zKN7mL4Jzg6dhqJrT_047ol6tXQIL6|LRQ>?m4R@tFmfr&)&=)35Cw6@Ie#wad%g*6 zgAN#a0M)c?5p;7D?+qDaXZnc*Yl?!fb_Xfft1em>+!vXY#ugFLQ7OmiSwLkoCe8Pr zn-9VywQY!yawKiAWxY!7y{9iDuR8@)NIyH%-P?1dRd{N~w^ya|#cgrG@r@yIw-!Zq zkLC#(uhZ! zsR<-u;a$L!5}jrz0v(f|s2{&~N3Wyv+>iDxZ;C?|fSed+&u3cj&e>_T0HI0}^N$mb z>Ur#)8}GF7_T@oBhukJ(WLb_PlG58uGy{i^yR`j>g=QT<<5^D}4FhM>uZuM2VlmEm zS873G^Yao4=hEYgvgXiISSM=0N^;AwA|Bw2^!oLpU9;X28Gn_WON}EsH}wb-R}VRI zyjMyq)PfpLQzV2|`^sCkyZ+eiZ#{pl3+$ePXmz`JgWsRWjVi7I`-Mhaj35F$W~h8J zrhX@#%sf}p4I^f~M3TNgWOBT`k}Vly&L`Zugp=EwG*YKIIj5<1NHL?f0g15|bl@Tk zxDv+pJmHj81uiD0x)y*RPI?-*iJt)`8{umXOv-5KH`ek?_cR(%euE+FkN0sknc7Qo zpIPpc*hKLt8S~|LxpBehOBym`SI4Cuspctu@B&j0`vj8?$5l3Om1ke~$h0~J5fyiN z%MH*B|E{_c5~6dDADzteG`&_m1-aAR+%fpia~U;tM+eoF1am%L?3Yb5!6fiBa_Dxu zB!ahLA}YCUn;%v&38zw2$pWpgj=9*0x>4j?s2b&4hOtNrqZ9i#WoTW8YDQxo(B1~O zUXa~5T*q#<(tLBh5P0pr6v{F>qeFp!P#XVREroxnrS`@SuNc*@c8gj>yEHfxyx_?N zMxHZXbFjmAqEJdPIaE3k#M@L2W1Kw?1G!PUz6mkGKxtbq&c$WP0<`W2a12BshRI-M#@4v@3Ne5^sQi3NqED1+g|V979g z@2+^1CsU8eBv2WK_&<|j9#KV3JlMYv+Gl$o<@(5H*32B8K>~Yp~JL!A$WP}>cp3-{4 zrGuwz=K$)IfnOJo#E3Yccut{xL2! zeaF`OPah+;az*b5zrNX}eo9>)i&DwGQkF(U-y5KwIi-3y6IL*6WvrRqBXN_){!rvT zB$ZtOcx19@42Ke|7WV#mP3nk_O@9c&&0Hpv&>nxgS@((&$%I+Zk$=st1-j}Xve`}V zY^l}kB`nPz!U`~5i`|@U7%a^(_?Top#o8%}BFF~=2uchN9P($CKE9)MrlRjg@t4^d zeH^#JA8F%kbhbKj%eUtPoz5kyrG$Ti_>tD zj@n;ccEourXq)ykoj4IQoG(isMPTC584GUa`ObpG8_tpdZq)!bPSQUWajt>G$`~us z?!4#Pj<;6FRCj+t4ZpWIHcCQ$DMKfR+;om5=dhO9`ll*$#B>_y$V1ayHB?d6jE9mr z${`2hy_XzU;(eCzkRKg)WLbV56m% zx;nk%duwElAAs)?^Luojf=)icuYtejsL;G#%MUN_cYhg*GN5l@LH_x`!OJ6m(0`5} zymFy~{61IkCp7+guHZK*yiEVkQwD#F_!F^x#n69K{!1!-IrZ=hulSqmPq_0H&HYWv zFE024+x?sIPr&3A4gF0rFOc#7kB$D#|0mS&3ak7k;g_#}<^K(`{LTAklm8Wr_)U^8 zThU*<|2H)8x1c|FudkTEZ-RaC=%0dqBLsiT__J#N_iykYDQ;+g?t1^``?Ju!*7V=h zgZsZL{NJ2^2FU+@%b{ObAz06=8{0Kh%}YH#8Rba!I} zIoKa&>&0erqx-MyXc2E0CJ!^1OS5LmbF`Lw(AC$Lmpy{r!4lxAHgZ-T zG4#s<$#tTg0QXNXG3BJUNMc3y0%{LZhT{s)BU-;0fQJ;pkTqyBdxv;Ksu7e*@;dRy ztP2y32}mOo`Q_)&z?;mMv^|9?pGTfNUYq&jU#HuRimfB&gL!k|mfq^oba2uOFrD9O z8aA;-w;88Dv@ugRAdDHRr-2=~PFPkF>v4^V4pAq+mIx2gvE5HCSWK4Hbav{+MT9GS zX9!C3U7@C)nT3aldfhhux%EO!qrsu6-~^{Td7apQNIxBwuxBwW{)4{E|DEnQA>R>a4> zbI5k*clccLBIKM?piBDd}H1ntxJyW(*CF|^YTZrpR*o|2LQ8goK4 z8NNdt4z}yWj~~h=Ie-d;6fHS}Youg5s+V>~#X{Q+@Luxfcp-Fo_#JI5efe@Ube5gP{2>g?V64~e`bsSUdGH3QurT6Zx z$%$mMT)jgUz(NLhSC6?Gf!1h(E`T4F^UOu9vd4(X$jy;^e*gmU0TplCHM=h1(Jk6H z3ej;&ZYP0y+mCIp?;YAuoi$*esB3hIJ^yL{GJZY0eMat!|jlWkoAe!QaGhagwX`U^_SN+i+idxKro%eF@1LZqU}8 za_$SeQYCW8T!<@GDrnW$P1Z*`hD_DksHtVXynU5CvO9>%ZWz%284~mq$#WW9eQ*^` zOD`4j_7qP2Q7Rm5ZYi7mcyxK+cLs&~sOLLGqrR0+9c1K~Ue%IQ`w@KtM1Xl>+`S}r z*Pd1rWJ&APrZV$aa!Mirrd4IZmyTYK$HgdQyKEP9##OaZF_8HRrsu#-C5Sz-;$FV( zz(LDHg#^V7YZ&~@dc-&Ucnlv$3MbHvIblcd-D@`VGXh5>9n?j4kIiZ>u5 zB!e8y)T346L*WC^x3px3jy&mPaN!aRgA2InRAp;O3(xKBX@(>0yL&iM@d>))d)p0_ zRF-uusXy!TL#7SG4m&3?86|N%P2Ky5h)i>;@Ze&t(hTt&fXj#Ye=|-~G}^4G=+^9H zwV(+AFG}^X8a7IpmrtazevOgQgV64gIE_W#4kx2yXwd46+B!e5>ekO?WkabC-vAc1 zhj;|xGT+kBE$~60t2S;fMFT|6o6E+K3(|E?($nObjo-Zfyj@U#*r1emG82%`whTSV zMz4bDwv{hFpsSM|nt2eU=dEt1`jTi>w{2(AA6=@cMddQvI}?wz)RP)NJeSLmo1u>U z=`EX^Qr%~y{iv(#%^bl8?wd+kLPuW+a!p-Ez-LXDt z#Ic7NMdHdkIN67vn;%XSrmPIpT}^}G0WgcxrD3Yq5OjMp27!_!I}RlmyK|efAC>s2 zb0pAy!qeiM-n5SB<@DsHY^Bx2z$s0R_*q42#ur(c&E|NGaNa(O7b3Q$mu(9f63J7G zFqQnXdE%dgHv99I<*uE%fYB|ouG95Fwi$m)jsN2k*TpXL{@_0H~Ky?Se0*GNCyQ1wWS!hJgRcs!Q zu$|BdN3@wZMa-@#lS%F9k-}XYhoJw&D=ZbYAAQE+eJ(h{vvsv_bF*=@a{Ws~le=Ac?#%yn2%0FEFQ1aw?e7CftJ_a3uSv0ZS zWM>zLN(8?((a|obzcg=v-DY|`A~&W=MQ~VptbF!niQk2s!|R}0{i4byF!TvxMut_5361fq2jU~p6T1WK&!~${Wx$3Z z001P!zbK%qo2R|S&zL`IIRF#AN++6Uf0#l4K3UE06;@)p8^|tO15++`>hDLZ@y=6}%rK}|;B@9!ylt*W2zS$4z zBtPcFvUBjj=Re2br7UE*phdu#R>g5cutf<;VT~(;fqE}I%ML{lNS)@-yrpiJ5+Xy! ziu5iBZb=ad`0<+}=XQM+!?2(uEk+x5GH$;1BzE20HDNhBh96=|^l|n1O#I!3G16P9 z^4fb2ZEQtOtenOVHekLlc+f_fY1&k2FR5P!-(lO=i&Q8g$Xzk$rKF?!J)n{tQdH&j zNirV5hb-VnO(iSHsaS?-sRYwpOU__pARgnpu(6O&V(Tc#mq|#;?Xo)ZEe{P;CilVB ztIspWjGQRb)h#5@zht=~ZPZfN4)C)Uw>|6S%}O&R{UW_2Z8@Sl4$D~80&~j9dF=uz zH4oX3&Rjpw3f*GFqr2cf1QrT+MU`nZyB08zSe;jjs+@baqKBZsS(_TP$To(Gq{ZG& zm(-Up!3k8o^5jWLMBVbsgEM}64ScNxp%_0yN5i9BKv%5at8?uR3h8$TO|OrA%(*FG zzEy8bOB6L(avvx;eDPGzr32>f-j=nVYXKcJ2{b$>Z~%FK!8$z8+SrbtGAgl(Mb(bax$^X57qo zRpI35&gSwsmFIJ8bK}X9msK%Q7-F%cwhTz9u*g^4E!&txGKJ#q@Y7pbwr=YIj=c7` zBRnTioLx|wZJsvjSMB&NK_+9O$Q}Tv#=C`=F+AhuW5>k3H$KAvnWMu zkTZ|2p1JnutbKU1ik7yTUmyy7+^yVy;X1Fbp?XfQ_6BtZ882E%T^ZC-Sh|TSk>iAK zhb9Dp9Hd6-Inzi0O++1|*2%RwnO7~vKAKO}@^tBPbStE%2lMA=%0+%EmoO#K; zgx63L8!HX8XBr6iaXOOqsg26B_C$BF{Bnqc#=tX@gR=ED*=DLZ!MSc50W>p~$>3E$ z>orD1%K-j;{upCR-|+#iK2b&NVS4*k9LTafP>oLQPrgrxmc1R8Lj#^mC?xs=w#vIW@F*1Fxm|p%#8A8&8rOi#1Wd1 zz6TtWb&a7PksPo4$R{tbF(CKm#VE@K7c>N_YvDG1|ByXJy`S z@v=*Oz5dAqb#h1dK&I59e!a)AV;_Vy$R9oE#{(w-z-S^X{qxJeK7Mpwa}zfcSD?F# znT0FUpWP~C|2qfh`HT5(pk(Ka1ar1N;&;#vy6?C~L%eJO#AYn+Ors0jhUjv~LK!z+Qt zfMERZNQibRF)Z-+d*CYyO)ZhIvir!k5lhTS>&1*&jb8>Is$>@NtcgpY9u463p#Hw# zAE61g<$YI$1po*M0RYT@T(GON{lBiY9mfuc$93v@rG*f+C_`JIk;T~@w2tlcU_B+b z*mbccI6Td0!BRMgIF$Sz^6{8U%*80-fLlhdJFG72%BzWIFx?F8P9$bG^h@Co_ab9q z4H_?~zR~GJTGYVtPKawSyn{Y&)%LvpnYuHVru~pZH>=|SA{w7$kyj|JFiN})2i7d{ z*Qk++1dL$i*~-f-nw#aOphD308%;OO>}|=4CLZwsn#cQVmD6({!I8YYOXSMURocIdmUb8roUW|(h;t4Ng|1{rNdPY zUWkOF#}wFy1(arCi{E3g1&)z7=8(NmphkkX$95u%v+oahpBDE9e2!b1EYA|=PT8e4 zM$|r{7?OKKAG|)xIAYTpN^M`)7bRcgbNn8Lh6Q2^4qn{*v>sVza54VtV7VyKVJ-Q~ zr<-@vM;0b;TvSCmLzzq0{N@MSxIj2>#b8!8@4HC&kqsrA=i{t5Eab*cPYQtOC_~p; zbpnux+oCSVd{NM!hfy-OAmDOHz{D8_`aI<6`#0y$+kFar*$y$W4P``NVMIdTDqy@T zQBe#R#z7N{{Pykoeb7tiy*}Yg-XoSxo+htA!n7fGjIt3Z3h>+85EmD^NbiOod&KHT zs%`;eko0h)yomsI8b}fguNXZPr+9Rb#?M>2?R~r)`!^wP0$E>G*SBOf?X0)R-i+*& zp%jvkH1cbbwW?bQQjY3$R`jm(72jC)l9Kz4M^45)-@wsJ7qJq;_Da(ux{8)F^o(1# zNaGn^50$G7<#efRPvx+4$ml=N5MrUYoILaS1*-4^Tyci@ocR>8l+KOo1s z!jLuYF1W@t2;#V-k}3B|$|GJ}+? zk(F2h96|~_Ws$*6(PbPaT;$8Hc$3aaT*;wjFt@8o1rXjd1K|9IS?Ix>j}qOlVkH9?%pj|C+0Dgs=+dnt1AHn5sIv9q zm6g7V^4TiR^^vqZh`V~ac=l#Hi!_5I#(|Kzm3TvpibUAd>YeS{Tl6Ejy*|P`|(`{56TS+>bY*e{z?kl{@`{R);BUCjpYL}I&~_U+Xt@V9U-H~$xdAu$Fw2L z{c^A<;vB=Q4lh?X@A(jo;VMj`HK1=i` z;t4t03XRAnX-xnWs_I!w6P8TU4^XkHfe=*;E@GZ7oor#;lS|@U3&JdqStk zwfpE51fyt+A{w*Y_KoA6mnIZx0Mk7`dUGggXgj@MwopTn=%i*h$$ZMt0;blBCqofq zP;R$hQ0ag#)X+>U+ZF8;Pv<;44%5Co?7mir4JMA`Kz(RqL`rhNY_17JAqi4R+vsAi zrMLl{k(I=JeI5+Hx2o97vo@oGWD&K=St^f>T0UIy_6c9$1}Ki4?<@oVM8o+}cXl@& zeU=Ku(sq6|^I7WJi}=-aa*NVoXd4FZ6N|!36F&+$2&G~2K}W)g^q_)0UhY7RAQ5lDyb#v>kjMP#crS*ccIo;194n~kP? z-Vq`cqkdU>t<`#_Zjm1UF8zeIrO`r-+d8XN_Te*4&pkK`pegu$!5ih|lUGn{T*CuS zji3>N@vu6l9)e|pLo-uUDQrUyZr6(=RR;7@0cVhFT39n};enY@DRi3wla=oJ=&=V5(_34rUTfD?-w+)1t-gc^B_+Xk zD^dBnoeO~AO1bt(q`0{9#YDuk!b3f4bxt{*ly|3&Wo~9i)#!DpL{KPM`|}rHXC^0$ z!nDH|*JXE-pjttgth{X^(GDFwCEmQTVZF;GJK3*790$CG1I|0B(4Z348qUEv`)+$P za^y4KR zI`e-~NrtOWtUHFd?|)^H5qdP_npN&LE!&m|S0}T4^7-;((8M8yhj-ln9Z_Hcyl@`?c(wIkx=C!h3ugy_eIT2S2*`l^dOm;%xm^^ zO=0m=?<3qt`FnxFo1QPK7@H+Qge+^$lR@j4$4qDfThAz2B#oYnFX+u)laC4Mf>0{ z__CDWAev^pZ{e+Lh$Nu56E;t08A&|8&upQ}<@MSjSVH`^6>+N9Eg2h#^NMRxjRS48 zbI_i0>cKm={>JfgWT1L`(q-=IYWDbqJq>Lt$RmF81yLvHmc5y?h2FY7kJmco{aD6Q z#x6T?=7iMh_BW>H8N#SzuV{3Vr6*`X`A6ix2`0)v2<9^x11LzSi!jJ2O8$dge&8^y zz@kZW7xxJT`QbLf`QUFVHbF@2vnvi znuViLkt&{sk90gM-^s?4FQjFwQ1M)Lm9%lj=!26LFZqDr_=tHkds3%0Tl4j=l7>NA^_PQUWb{0&JD!N?a@_SN zXJNgRPe3r}n4kA|Bl%1Nlk1u>Ls@wh)9G%OM_PzIBg>gdNA-a|-3nUDsjnIX%_ex( z-@8c!d1dPZp^Y4eY35Y zfsLhh?TGt#e9k0P(g-QTu!#Y5aq8P|!>*!F^k;XC)eyTY6;MqTFiHc5`5n|G>Wkpj zfF<`~eAN~(M+x8u3TZ-Z1O&7m4W}1lfSJcDR6jFyZPgr6aEGtx=unq>OF@T5nf*sU z7uH_`G}7mVmDii%vsf6S((8o!!<5Ck4*&acSgPxm7&E_VZ{UooVkEJ5eRFp zUKLVut+v%zipEZg$#%ieC8sOwe%Tt>RJs)u8YD;Nk5{J753C6>rrV%$BNTNXO$!=s z@mH9HlV5es)a5b@NnNF5>|$ePv+#!3aV$oTx9B zU5ipjlel^Z7SXr~R!dP$)g>rfr?E>_3xdK##U$GA22qJa%D^a4%rnV&wrz%_d95V| zV^bYJ72fZCY_C2Jendmye)GlJ^-^oEkaj8D{(`W~Y)V6(GA8oeejSodHQ3{z25sxa9q&mJ&Wa1Koh;MiAl}PREjx+htWf0v9LOK(!FJEjQom&@{!ZJN2{q;am%SQiO`89OS46%QZa&Z`YLRyb3`@~N2+ zo8@Twm=9Vpj)y7VM-8HWqds*}LoT~0RQaBkn;G@#3(=RvpZ?n0mB6nY-Iy_l6JLjTgR(uLMOr-p_ZN3M}%{zDceMm5P0d*&8AOyaMyjD~aY$)|*p059nW^kmN?dMIxHm zg#ZNgBTfX@)?k{@d4o`ZeSKl!Yed|jQpv z-GyUJ_8edPBZyZdg6&`1?jPzEGj$gTcJU0`)1qXizUD3-DfB1DSjWk$1+gP$p{WBak};7RSXfg1Ij!3ZhAfv29^le+oZl`(?HVCI z5yxGB{5Av&xo8QJt)taQ8{Z5wtw)H;n*5Q?o7CsEmhEtcw38Ok$@hL&t^#<$ zpfl2r*ZkkPGT(^FW-JV&*)Gvql#@4nm2JfvvyoTUb#s`ay3H5Bb*g+Z2X)qm+5F^d*w)w9Hw4ZliTaMSd5Rt<^!tVAOlm6e9D3ZiAEi zRiQt-nfi;eyMgD;oe%yjlm2UyyP8>BIQ*Oi6i#+O&jJu$tlky0izV|RwvtTuL{s@g zGj~7lGez@Om}OrZ9rh1uA5tE^-fkUT!>GARVG@;c86D2BOEWI>BepkZDP?B!5DE&l z;8EN6MPt7mA|r3d(U@A+?MK&f^~;Py@1K(-q!$sESyiT=T!np~Dcr}`D$O+bVPDhX zm~^9a$p3~~*}^ZIBNeN_eByhuBMt z;fXgG!$nE{ySu6uk@eDzwAGe|C|Z@j@N8S$A>{5~uA@6i9ZjQpv>|BepvER+4M$^T!l|J3__$G&*h{Qn2_@BiJ= z|0Lu6a)k1{JVKwh&F`Y#@8}Cvt;0VS%P+fR{MX|7XKDYG{(hnRKciRw1N|RD;P1|U zt-<_hg*NFtM5&J*iLbTA9o5QfD9A>fJ6M_zyAVw@wE;B diff --git a/fineract-provider/src/main/pentahoReports/Obligation Met Loans Summary(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Obligation Met Loans Summary(Pentaho).prpt index b320ac364d8239a6c4d27dba3dbce3f54f6392cf..3d227097162c4198bb3f2728e35ffccadb381f38 100644 GIT binary patch literal 8752 zcmaKR1yo$ivi9H}+=B&ox8NQmxLdHnU4pxN2ol^SxLa@r3mzN>cXtaA_~E>JU-Hg> z@2OcmYtNcpwY$2ys(OE)qAV0NBH%?3eZGl9DU4gvK3~5K_~&6`VFPq_w+9;9+gn>0 z8#-Iq*)o5$HDR&`+BzGW+c7x;?d=?$Eo{x0jI9lwoGgqLpUq)CtHS?f?%Bfs3ik8W zdkIw$MrnCTW*b9W3sazzGn1Q*b$x=YEr=8?u^bz$`jR4llY5EwvwHq{znla)D~~(b7~V- zlE{iHbYEL3HKY{i!+A7u6Y`n-sLjvi=+eWp9<`rdwN&UNDhL{^&QqQiN6f5N97k2(lu(D90xK$F6y+tc&|uc>x<~l&{&PIXO+BVeHe}W8)%tb-IAj>9y&rjljbQX+a9%XkeU?|Y60gC z2$^}>C9ka-ag>1AlZ(>*Sj=6l%*kBYuP|m#Orw=_5b~JRLYLdQa3jrk+6;q|2XQpP zjNf7WAp-``BWS~GAVfm}hQgY&iMmzko&ys>G3zF;i{f3_O!8=DF)wewWyXt%fk){p zHL^2bgJr2#kap2xuE@h-^2#ew(Pkm|SN32_!+}izDPfxe$Tx_`=~xsj(~{{y1}Tl$ z!{1ZD_`%hE{iA-JOS2%#r}1kURgmBW^UN1g85ho;d7-ebJ4kU*+ngRk++*~drfb;9 zdt98RO4s#eiT4}M-{kwO-9UXC*SU}5V8R+0n56r+4^EL$`me~wy~QGrwY52V*yT2+ z84EFGCT&j}1zX7-&p*Ws#gm9}-9o+uOCCJ3=K35gjeiUl(sK?N+u1rlXU|K#Bw|G5 zds&dhZv=YBy)ov?kqF!ho(@-YBA^uM%b>?EZrR{l)tMHTFPSnO0uaaHSUPVB6;`vj37n# zojwID_lldejR0uz%x2$jtqX7U8@dm+XM#s;xT3{P9L(9y^4q(FLzSiyrjaOlE*s)bK9V)3);4C z51(3d>@EVs4KgVq5sM3?WCLpJ(k6m$rlpg#zD8Z~P?igOHn0>|U&z&B==Sn7Az$iR z4m25!N@tE(GGdu@S>T9n!v)FFnK}f(wct>WN5BrHdiVu^r0 zlPP2%R--iJqQWN-O^jw&Gys^yoLWTx#=G7!%=>!+wk-C;vi7dOZV}%1mP@lLF4~ z(Mt-4f?4d3p_R<;F$63hbsS8efAtbfBh5S@2#_Y(rRPB4E@Ar7BF-R@HH1F)A*(?h z7N@S$Hz$SzcSf~)aUXYRNEFi0H953rH{U?nf0yHw{^*E~TisLTU4go`_g>Un(K@y# z6WeA^h@k=Jw}U>b4Z#W3UFx8qXGyd%6sL_f4~v6M4+Pu!uG&n-2plc zOl3w_Hby_dG71WjaIHrtWV0C=xal6I6KpHFSCx054cb%m}IUq*0 z_w}pBOWgeM;gR~jDNrfF_bah$qD1S4CY}yk>^=GC$;te#j+IvB^H`jXv$>58|9fuY zm=*rl@tjXL%r_0Vkr~B|a1&H%&Lf5oRVHT*XS8k@?SXubN?#~zQ7C1SCKN0j#T~SN zY|nl}aQ~9n6~m9t)JBgzVnoqY%Ftv#)~qwZn+DQCCnmZ+saD`Aq*zw!o0+PRX`nOG zDX(kkPY;1Ckl^O_?j$+-;dexkjbuNhcMy{L$mg!HU>CX~E!j@w-Jj}$(~+udn6Hqk zL&K_&N+KW#f|&}1CaKbIKmMF*jL`^^*5CZ-Ysipa1|qrhm%&SO3a; zCu4J<&0jsLV4};mn*|wm^*+B%EYXv&iEOIdMuCO66Gfk}*x?PB)Xj6E#@w8Hsubwk z;L|Ly+^wn?*DJL@+%TVv_`SEbD2Ki1q|(DICUh+J8X2*^2^~t+Jt&_&&vHR$DEW=m zu^qaW_t+pz@^+HJrl1qq!|rWaUB36dbPo!fpZJm

T}yY?_XwdpWEy$!~0Q#c6J$8s`18mioy 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 k{;iz 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 literal 9220 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 f{ZFm`75{%H2ZzwZ2o=U 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 X^3sqGrRL{91tLK5p`5MY{rvTR5lMd+ diff --git a/fineract-provider/src/main/pentahoReports/Rescheduled Loans(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Rescheduled Loans(Pentaho).prpt index 7d335d929c19a86d0defed1ff437a21e72d9b406..424cdc8cd950226893441116df1119c7195c7ed3 100644 GIT binary patch literal 8415 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 diff --git a/fineract-provider/src/main/pentahoReports/Saving Account Statement.prpt b/fineract-provider/src/main/pentahoReports/Saving Account Statement.prpt index 7526b60093e44fa9ca598a63e305a402df59a704..4b42b844dbe738b72bb5c716c9daebe70f8c6afe 100644 GIT binary patch literal 7565 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 S0RUjaeycEaHkst%>AwK*PYN^u literal 8133 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 Q002b(QjqCNMsa)fA3{6JC;$Ke literal 7329 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 BK)V0{ diff --git a/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt b/fineract-provider/src/main/pentahoReports/Savings Transactions.prpt index 9c73fcd9ab66937eb68f83431dc33db53c0d0a1f..fd3eef1f125f9d3c0ea5fbdc936d15299400b75b 100644 GIT binary patch literal 14997 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 H&$s^%+!}DD literal 15703 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 P;`;~s{TCbCumAoZW|Vqx diff --git a/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt b/fineract-provider/src/main/pentahoReports/Staff Assignment History.prpt index bdc6413fc51f5723a5b129bf084993d09852543d..d50d9716902d051e82f0507d6dccdc0c0ceda344 100644 GIT binary patch literal 6565 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 RQ7P~NN{Dn8aJe}E{12>u!^r>u diff --git a/fineract-provider/src/main/pentahoReports/Trial Balance.prpt b/fineract-provider/src/main/pentahoReports/Trial Balance.prpt index 2e79a83c52b88482dc9f6ff1e10feb744cd001b5..a04448c07360f4d62c7379fb3da9bc61adcaa7e1 100644 GIT binary patch literal 7978 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 O*l!&M3GI_|@3J-oV(z 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 literal 9238 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 DP#fG( diff --git a/fineract-provider/src/main/resources/META-INF/spring/jdbc.properties b/fineract-provider/src/main/resources/META-INF/spring/jdbc.properties index 8d64dc515ea..6bc97bd13b9 100644 --- a/fineract-provider/src/main/resources/META-INF/spring/jdbc.properties +++ b/fineract-provider/src/main/resources/META-INF/spring/jdbc.properties @@ -17,7 +17,7 @@ # under the License. # -DRIVERCLASS_NAME:org.drizzle.jdbc.DrizzleDriver +DRIVERCLASS_NAME:com.mysql.jdbc.Driver PROTOCOL:jdbc -SUB_PROTOCOL:mysql:thin +SUB_PROTOCOL:mysql PORT:3306 \ No newline at end of file diff --git a/fineract-provider/src/test/resources/META-INF/context.xml b/fineract-provider/src/test/resources/META-INF/context.xml index f5f1ba2ed08..374c715d27b 100644 --- a/fineract-provider/src/test/resources/META-INF/context.xml +++ b/fineract-provider/src/test/resources/META-INF/context.xml @@ -23,7 +23,7 @@ \ No newline at end of file From e6c5e5e269ec6f80bf49c6aae6c4bbde29a14fac Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Mon, 13 Jun 2016 19:25:12 +0530 Subject: [PATCH 14/25] Updating Release notes for 16.06.01.RELEASE --- MIFOS-CHANGELOG.md | 38 ++++++++++ api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 72 +++++++++++------- .../sample_data/load_sample_data.sql | 76 +++++++++++-------- 5 files changed, 128 insertions(+), 62 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index f385f0b6436..b8656936e92 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,6 +4,7 @@ Changelog Releases =============== +1. 13 Jun 2016 - 16.06.01.RELEASE 1. 13 May 2016 - 16.05.01.RELEASE 1. 13 Apr 2016 - 16.04.01.RELEASE 1. 23 Mar 2016 - 16.03.03.RELEASE @@ -88,6 +89,43 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.06.01.RELEASE +============= + +This release contains following improvements and bug fixes + +Platform & API +New Features & Improvements + + - [FINERACT-162] - show Interest Earnings/Overdraft Interest not yet posted + - [FINERACT-167] - Loan foreclosure implementation and integration test cases for the same + - Show Interest Earnings/Overdraft Interest not yet posted + - Fineract collection sheet (total collected, total over due, total due, instalment due) + - Changing dependency of m_entity_to_entity_access to m_entity_mapping and adding validation for new loan application + - Reasons for loan write off added + +Bugs + - [FINERACT-145] - Switching back to MySQL(Connector/J) JDBC driver + - Shares Integration Tests and other fixes + - [FINERACT-145] - Some of the scheduler jobs in demo version is not getting executed as scheduled + - [FINERACT-160] - Not able to add any charges after the savings application is submitted + - [MIFOSX-2656] - Accrual transaction should be added only on the first tranche disbursal + - Adding charges to loan was creating duplicate gl entries + - Checking null values before computing the interest not posted + +Community-app +New Features & Improvements + + - [FINERACT-167] - UX changes for loan foreclosure + - Localisation updates from https://translatewiki.net. + - [FINERACT-162] - Show Interest Earnings/Overdraft Interest not yet posted + - [MIFOSX-2511] - Support loading of per-tenant logos for Community App + + Bugs + + - [MIFOSX-2494] - Mentioned features should get translated with respect to selected language + - [MIFOSX-2744] - Support localization of report names in Community App + 16.05.01.RELEASE ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 1555c32dba4..94cd734ac5b 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@

- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index 4a4e1418de5..ede840a9ec9 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -1,3 +1,3 @@ -releaseVersion=16.05.01.RELEASE +releaseVersion=16.06.01.RELEASE diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 5c9dc18acbe..c1917afa331 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -350,28 +350,28 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-barebone.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-05-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-05-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-05-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-05-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-05-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-05-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-05-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-05-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-05-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-05-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-05-14 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-06-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-06-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-06-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-06-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-06-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-06-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-06-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-06-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-06-14 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -1086,9 +1086,9 @@ CREATE TABLE IF NOT EXISTS `m_code` ( `is_system_defined` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_name` (`code_name`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code: ~24 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code: ~25 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1114,7 +1114,8 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (22, 'CenterClosureReason', 1), (23, 'LoanRescheduleReason', 1), (24, 'Constitution', 1), - (25, 'Main Business Line', 1); + (25, 'Main Business Line', 1), + (26, 'WriteOffReasons', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; @@ -2109,6 +2110,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `guarantee_amount_derived` decimal(19,6) DEFAULT NULL, `create_standing_instruction_at_disbursement` tinyint(1) DEFAULT NULL, `version` int(15) NOT NULL DEFAULT '1', + `writeoff_reason_cv_id` int(11) DEFAULT NULL, + `loan_sub_status_id` smallint(5) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `loan_account_no_UNIQUE` (`account_no`), UNIQUE KEY `loan_externalid_UNIQUE` (`external_id`), @@ -2126,6 +2129,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( KEY `FK_disbursedon_userid` (`disbursedon_userid`), KEY `FK_closedon_userid` (`closedon_userid`), KEY `fk_m_group_client_001_idx` (`group_id`,`client_id`), + KEY `FK_writeoffreason_m_loan_m_code_value` (`writeoff_reason_cv_id`), CONSTRAINT `FK7C885877240145` FOREIGN KEY (`fund_id`) REFERENCES `m_fund` (`id`), CONSTRAINT `FKB6F935D87179A0CB` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKB6F935D8C8D4B434` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`), @@ -2138,6 +2142,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_writeoffreason_m_loan_m_code_value` FOREIGN KEY (`writeoff_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -2736,6 +2741,7 @@ CREATE TABLE IF NOT EXISTS `m_note` ( `loan_transaction_id` bigint(20) DEFAULT NULL, `savings_account_id` bigint(20) DEFAULT NULL, `savings_account_transaction_id` bigint(20) DEFAULT NULL, + `share_account_id` bigint(20) DEFAULT NULL, `note_type_enum` smallint(5) NOT NULL, `note` varchar(1000) DEFAULT NULL, `created_date` datetime DEFAULT NULL, @@ -2896,9 +2902,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_permission: ~613 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_permission: ~779 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3614,7 +3620,9 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (733, 'SSBENEFICIARYTPT', 'READ_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'READ', 0), (734, 'SSBENEFICIARYTPT', 'CREATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'CREATE', 0), (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), - (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0); + (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0), + (737, 'portfolio', 'FORECLOSURE_LOAN', 'LOAN', 'FORECLOSURE', 0), + (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -4114,6 +4122,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `version` int(15) NOT NULL DEFAULT '1', `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', `tax_group_id` bigint(20) DEFAULT NULL, + `last_interest_calculation_date` date DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sa_account_no_UNIQUE` (`account_no`), UNIQUE KEY `sa_externalid_UNIQUE` (`external_id`), @@ -5338,7 +5347,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.schema_version: ~262 rows (approximately) +-- Dumping data for table mifostenant-barebone.schema_version: ~248 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5585,7 +5594,12 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:44', 160, 1), (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:45', 1447, 1), (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 44, 1), + (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1464801706, 'root', '2016-06-13 19:21:28', 229, 1), + (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1740162209, 'root', '2016-06-13 19:21:28', 238, 1), + (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', -630554147, 'root', '2016-06-13 19:21:29', 285, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), + (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:29', 3, 1), + (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:29', 239, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1286928230, 'root', '2015-06-03 15:26:53', 22, 1), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 300cb96b9df..116469cfe08 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -427,28 +427,28 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-sampledata.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-05-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-05-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-05-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-05-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-05-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-05-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-05-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-05-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-05-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-05-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-05-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-05-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-05-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-05-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-05-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-05-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-05-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-05-14 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-05-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-06-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-06-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-06-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-06-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-06-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-06-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-06-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-06-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-06-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-06-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-06-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-06-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-06-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-06-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-06-14 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -1198,9 +1198,9 @@ CREATE TABLE IF NOT EXISTS `m_code` ( `is_system_defined` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_name` (`code_name`) -) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code: ~24 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code: ~25 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1226,7 +1226,8 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (22, 'CenterClosureReason', 1), (23, 'LoanRescheduleReason', 1), (24, 'Constitution', 1), - (25, 'Main Business Line', 1); + (25, 'Main Business Line', 1), + (26, 'WriteOffReasons', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; @@ -2249,6 +2250,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `guarantee_amount_derived` decimal(19,6) DEFAULT NULL, `create_standing_instruction_at_disbursement` tinyint(1) DEFAULT NULL, `version` int(15) NOT NULL DEFAULT '1', + `writeoff_reason_cv_id` int(11) DEFAULT NULL, + `loan_sub_status_id` smallint(5) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `loan_account_no_UNIQUE` (`account_no`), UNIQUE KEY `loan_externalid_UNIQUE` (`external_id`), @@ -2266,6 +2269,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( KEY `FK_disbursedon_userid` (`disbursedon_userid`), KEY `FK_closedon_userid` (`closedon_userid`), KEY `fk_m_group_client_001_idx` (`group_id`,`client_id`), + KEY `FK_writeoffreason_m_loan_m_code_value` (`writeoff_reason_cv_id`), CONSTRAINT `FK7C885877240145` FOREIGN KEY (`fund_id`) REFERENCES `m_fund` (`id`), CONSTRAINT `FKB6F935D87179A0CB` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKB6F935D8C8D4B434` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`), @@ -2278,13 +2282,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_writeoffreason_m_loan_m_code_value` FOREIGN KEY (`writeoff_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; -INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`) VALUES - (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1); +INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`) VALUES + (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; @@ -2906,6 +2911,7 @@ CREATE TABLE IF NOT EXISTS `m_note` ( `loan_transaction_id` bigint(20) DEFAULT NULL, `savings_account_id` bigint(20) DEFAULT NULL, `savings_account_transaction_id` bigint(20) DEFAULT NULL, + `share_account_id` bigint(20) DEFAULT NULL, `note_type_enum` smallint(5) NOT NULL, `note` varchar(1000) DEFAULT NULL, `created_date` datetime DEFAULT NULL, @@ -3068,9 +3074,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=737 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_permission: ~676 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_permission: ~576 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3786,7 +3792,9 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (733, 'SSBENEFICIARYTPT', 'READ_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'READ', 0), (734, 'SSBENEFICIARYTPT', 'CREATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'CREATE', 0), (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), - (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0); + (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0), + (737, 'portfolio', 'FORECLOSURE_LOAN', 'LOAN', 'FORECLOSURE', 0), + (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -4365,6 +4373,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( `version` int(15) NOT NULL DEFAULT '1', `withhold_tax` tinyint(4) NOT NULL DEFAULT '0', `tax_group_id` bigint(20) DEFAULT NULL, + `last_interest_calculation_date` date DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `sa_account_no_UNIQUE` (`account_no`), UNIQUE KEY `sa_externalid_UNIQUE` (`external_id`), @@ -5595,7 +5604,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.schema_version: ~323 rows (approximately) +-- Dumping data for table mifostenant-sampledata.schema_version: ~270 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5842,7 +5851,12 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:48', 136, 1), (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:50', 1220, 1), (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 22, 1), + (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1464801706, 'root', '2016-06-13 19:21:30', 200, 1), + (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1740162209, 'root', '2016-06-13 19:21:30', 317, 1), + (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', -630554147, 'root', '2016-06-13 19:21:31', 360, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), + (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:31', 0, 1), + (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:31', 300, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1989718961, 'root', '2014-03-08 02:28:56', 254, 1), From b1914859cc6a232de03b8a0322f631b06aae8085 Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Mon, 27 Jun 2016 14:55:11 +0530 Subject: [PATCH 15/25] Updating release date and resolved issues found --- MIFOS-CHANGELOG.md | 16 +- .../migrations/sample_data/barebones_db.sql | 768 +++++++++--------- .../sample_data/load_sample_data.sql | 768 +++++++++--------- 3 files changed, 783 insertions(+), 769 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index b8656936e92..0ea1e1a38ad 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,7 +4,7 @@ Changelog Releases =============== -1. 13 Jun 2016 - 16.06.01.RELEASE +1. 27 Jun 2016 - 16.06.01.RELEASE 1. 13 May 2016 - 16.05.01.RELEASE 1. 13 Apr 2016 - 16.04.01.RELEASE 1. 23 Mar 2016 - 16.03.03.RELEASE @@ -112,6 +112,20 @@ Bugs - [MIFOSX-2656] - Accrual transaction should be added only on the first tranche disbursal - Adding charges to loan was creating duplicate gl entries - Checking null values before computing the interest not posted + - [FINERACT-195] - In loan summary page Overdue column should be with zero values after the loan is foreclosured + - [Fineract-192] - Periodic accrual should not get displayed after the date of loan foreclosure + - [FINERACT-191] - After first tranche disbursement if the loan is foreclosed the repayment schedule generated is not proper + - [FINERACT-189] - Interest calculated after foreclosure of multi tranche loan is not proper + - [FINERACT-185] - Repayment schedule generated after excess repayment and then forescloure is not proper + - [FINERACT-184] - Repayment schedule generated after excess repayment and then forescloure is not proper + - [FINERACT-183] - Not able to save Edit Fixed deposit product page displays Internal server error + - [FINERACT-182] - Loan is not going to closed state after foreclosing if the specified due date charge is applied and waived + - [FINERACT-181] - Not able to apply additional shares displays internal server error + - [FINERACT-179] - Not able to delete transaction of the prepaid loan + - [FINERACT-175] - In a installment if more amount is repaid and then the loan is foreclosed then it is moving to overpaid state with loan balance in last repayment as negative + - [FINERACT-173] - Specified due date charge applied and if the foreclosure is done before that date then the charge should not get collected + - [FINERACT-171] - Interest calculated is not proper if the foreclosure is done in between any period + - [FINERACT-170] - Not able to Foreclose the loan if the date is modified in Loan Foreclosure page displays internal server error Community-app New Features & Improvements diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index c1917afa331..cc835d632f2 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.21-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-barebone.acc_accounting_rule +-- Dumping structure for table mifostenant-default.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_account +-- Dumping structure for table mifostenant-default.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,12 +59,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_closure +-- Dumping structure for table mifostenant-default.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -86,12 +86,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -103,12 +103,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry +-- Dumping structure for table mifostenant-default.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -149,7 +149,6 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( KEY `FK_acc_gl_journal_entry_m_payment_detail` (`payment_details_id`), KEY `FK_acc_gl_journal_entry_m_client_transaction` (`client_transaction_id`), KEY `FK_acc_gl_journal_entry_m_share_account_transaction` (`share_transaction_id`), - CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_account` FOREIGN KEY (`account_id`) REFERENCES `acc_gl_account` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_journal_entry` FOREIGN KEY (`reversal_id`) REFERENCES `acc_gl_journal_entry` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_appuser` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), @@ -158,15 +157,16 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_payment_detail` FOREIGN KEY (`payment_details_id`) REFERENCES `m_payment_detail` (`id`), - CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) + CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`), + CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_product_mapping +-- Dumping structure for table mifostenant-default.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -183,12 +183,12 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_rule_tags +-- Dumping structure for table mifostenant-default.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -203,12 +203,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_account_number_format +-- Dumping structure for table mifostenant-default.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -218,12 +218,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_cache +-- Dumping structure for table mifostenant-default.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -231,14 +231,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_configuration +-- Dumping structure for table mifostenant-default.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -252,7 +252,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -284,7 +284,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service +-- Dumping structure for table mifostenant-default.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -293,7 +293,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -301,7 +301,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service_properties +-- Dumping structure for table mifostenant-default.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -311,7 +311,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -325,7 +325,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job +-- Dumping structure for table mifostenant-default.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -347,35 +347,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-default.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-13 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-06-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-14 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-14 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-06-14 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-06-14 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-06-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-06-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-06-14 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-06-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-06-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-06-14 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-27 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-27 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-28 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-06-28 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-28 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-28 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-06-28 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-06-28 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-06-28 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-06-28 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-06-28 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-06-28 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-06-28 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-06-28 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job_run_history +-- Dumping structure for table mifostenant-default.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -392,12 +392,12 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy +-- Dumping structure for table mifostenant-default.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -410,7 +410,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -464,7 +464,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-default.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -475,14 +475,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace +-- Dumping structure for table mifostenant-default.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -492,7 +492,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -505,7 +505,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_details +-- Dumping structure for table mifostenant-default.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -537,12 +537,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -566,12 +566,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -585,12 +585,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction +-- Dumping structure for table mifostenant-default.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -619,12 +619,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser +-- Dumping structure for table mifostenant-default.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -653,7 +653,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), @@ -661,7 +661,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_previous_password +-- Dumping structure for table mifostenant-default.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -673,12 +673,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_role +-- Dumping structure for table mifostenant-default.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -690,14 +690,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar +-- Dumping structure for table mifostenant-default.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -721,12 +721,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_history +-- Dumping structure for table mifostenant-default.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -748,12 +748,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_instance +-- Dumping structure for table mifostenant-default.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -765,12 +765,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashiers +-- Dumping structure for table mifostenant-default.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -789,12 +789,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashier_transactions +-- Dumping structure for table mifostenant-default.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -812,12 +812,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_charge +-- Dumping structure for table mifostenant-default.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -843,16 +843,16 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( UNIQUE KEY `name` (`name`), KEY `FK_m_charge_acc_gl_account` (`income_or_liability_account_id`), KEY `FK_m_charge_m_tax_group` (`tax_group_id`), - CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), - CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) + CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client +-- Dumping structure for table mifostenant-default.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -927,12 +927,12 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_attendance +-- Dumping structure for table mifostenant-default.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -946,12 +946,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge +-- Dumping structure for table mifostenant-default.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -977,12 +977,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by +-- Dumping structure for table mifostenant-default.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -996,12 +996,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_identifier +-- Dumping structure for table mifostenant-default.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1024,12 +1024,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_non_person +-- Dumping structure for table mifostenant-default.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1045,12 +1045,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_transaction +-- Dumping structure for table mifostenant-default.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1073,12 +1073,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code +-- Dumping structure for table mifostenant-default.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1088,7 +1088,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code: ~25 rows (approximately) +-- Dumping data for table mifostenant-default.m_code: ~25 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1119,7 +1119,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code_value +-- Dumping structure for table mifostenant-default.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1135,7 +1135,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-default.m_code_value: ~12 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1), @@ -1153,7 +1153,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_currency +-- Dumping structure for table mifostenant-default.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1167,7 +1167,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1336,7 +1336,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1351,12 +1351,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1373,12 +1373,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1405,12 +1405,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1421,12 +1421,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1439,12 +1439,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1466,12 +1466,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_document +-- Dumping structure for table mifostenant-default.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1487,12 +1487,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_relation +-- Dumping structure for table mifostenant-default.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1503,7 +1503,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1514,7 +1514,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access +-- Dumping structure for table mifostenant-default.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1530,12 +1530,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1549,12 +1549,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates +-- Dumping structure for table mifostenant-default.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1569,12 +1569,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates_periods +-- Dumping structure for table mifostenant-default.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1592,12 +1592,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_fund +-- Dumping structure for table mifostenant-default.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1608,12 +1608,12 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group +-- Dumping structure for table mifostenant-default.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1649,12 +1649,12 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_client +-- Dumping structure for table mifostenant-default.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1665,12 +1665,12 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_level +-- Dumping structure for table mifostenant-default.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1684,7 +1684,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1692,7 +1692,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_roles +-- Dumping structure for table mifostenant-default.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1709,12 +1709,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor +-- Dumping structure for table mifostenant-default.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1742,12 +1742,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details +-- Dumping structure for table mifostenant-default.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1765,12 +1765,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_transaction +-- Dumping structure for table mifostenant-default.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1787,12 +1787,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday +-- Dumping structure for table mifostenant-default.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1807,12 +1807,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday_office +-- Dumping structure for table mifostenant-default.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1824,12 +1824,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook +-- Dumping structure for table mifostenant-default.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1848,12 +1848,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_configuration +-- Dumping structure for table mifostenant-default.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1866,12 +1866,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_registered_events +-- Dumping structure for table mifostenant-default.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1883,12 +1883,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_schema +-- Dumping structure for table mifostenant-default.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1902,7 +1902,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -1915,7 +1915,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_templates +-- Dumping structure for table mifostenant-default.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1923,7 +1923,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -1931,7 +1931,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_image +-- Dumping structure for table mifostenant-default.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1940,12 +1940,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_incentives +-- Dumping structure for table mifostenant-default.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1961,12 +1961,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1978,12 +1978,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_slab +-- Dumping structure for table mifostenant-default.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2001,12 +2001,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan +-- Dumping structure for table mifostenant-default.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2137,8 +2137,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2146,12 +2146,12 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2184,12 +2184,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2202,12 +2202,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging +-- Dumping structure for table mifostenant-default.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2221,12 +2221,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge +-- Dumping structure for table mifostenant-default.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2257,12 +2257,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-default.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2277,12 +2277,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_collateral +-- Dumping structure for table mifostenant-default.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2297,12 +2297,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-default.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2315,12 +2315,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_installment_charge +-- Dumping structure for table mifostenant-default.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2342,12 +2342,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2359,12 +2359,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2383,12 +2383,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2402,12 +2402,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-default.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2420,12 +2420,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details +-- Dumping structure for table mifostenant-default.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2449,12 +2449,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2494,12 +2494,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2524,12 +2524,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request +-- Dumping structure for table mifostenant-default.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2564,12 +2564,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_term_variations +-- Dumping structure for table mifostenant-default.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2585,12 +2585,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges +-- Dumping structure for table mifostenant-default.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2603,12 +2603,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2621,12 +2621,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction +-- Dumping structure for table mifostenant-default.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2659,12 +2659,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2682,12 +2682,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2710,12 +2710,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_meeting +-- Dumping structure for table mifostenant-default.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2726,12 +2726,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_note +-- Dumping structure for table mifostenant-default.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2765,12 +2765,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office +-- Dumping structure for table mifostenant-default.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2786,14 +2786,14 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_office: ~1 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office_transaction +-- Dumping structure for table mifostenant-default.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2811,12 +2811,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_organisation_currency +-- Dumping structure for table mifostenant-default.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2829,14 +2829,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_password_validation_policy +-- Dumping structure for table mifostenant-default.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2847,7 +2847,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -2855,7 +2855,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_detail +-- Dumping structure for table mifostenant-default.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2870,12 +2870,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_type +-- Dumping structure for table mifostenant-default.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2886,12 +2886,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_permission +-- Dumping structure for table mifostenant-default.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2904,7 +2904,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_permission: ~779 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~716 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3626,7 +3626,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations +-- Dumping structure for table mifostenant-default.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3647,12 +3647,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_command_source +-- Dumping structure for table mifostenant-default.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3690,12 +3690,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan +-- Dumping structure for table mifostenant-default.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3761,12 +3761,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_charge +-- Dumping structure for table mifostenant-default.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -3777,12 +3777,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3800,12 +3800,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-default.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3823,12 +3823,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3841,12 +3841,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3872,12 +3872,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3889,12 +3889,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3910,12 +3910,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_mix +-- Dumping structure for table mifostenant-default.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3928,12 +3928,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria +-- Dumping structure for table mifostenant-default.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3950,12 +3950,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3977,12 +3977,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_history +-- Dumping structure for table mifostenant-default.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3998,12 +3998,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provision_category +-- Dumping structure for table mifostenant-default.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4013,7 +4013,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4023,7 +4023,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role +-- Dumping structure for table mifostenant-default.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4034,14 +4034,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role_permission +-- Dumping structure for table mifostenant-default.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4053,14 +4053,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account +-- Dumping structure for table mifostenant-default.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4136,12 +4136,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge +-- Dumping structure for table mifostenant-default.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4172,12 +4172,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4191,12 +4191,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4211,12 +4211,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4234,12 +4234,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction +-- Dumping structure for table mifostenant-default.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4266,12 +4266,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4285,12 +4285,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives +-- Dumping structure for table mifostenant-default.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4306,12 +4306,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4330,12 +4330,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product +-- Dumping structure for table mifostenant-default.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4378,12 +4378,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product_charge +-- Dumping structure for table mifostenant-default.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4394,12 +4394,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4415,12 +4415,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4433,12 +4433,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account +-- Dumping structure for table mifostenant-default.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4492,12 +4492,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge +-- Dumping structure for table mifostenant-default.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4526,12 +4526,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4545,12 +4545,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details +-- Dumping structure for table mifostenant-default.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4562,16 +4562,16 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( PRIMARY KEY (`id`), KEY `FK_m_share_account_dividend_details_dividend_pay_out_id` (`dividend_pay_out_id`), KEY `FK_m_share_account_dividend_details_account_id` (`account_id`), - CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`), - CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) + CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`), + CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_transactions +-- Dumping structure for table mifostenant-default.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4588,12 +4588,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product +-- Dumping structure for table mifostenant-default.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4632,12 +4632,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_charge +-- Dumping structure for table mifostenant-default.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4648,12 +4648,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4670,17 +4670,17 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( KEY `FK_m_share_product_dividend_pay_out_product_id` (`product_id`), KEY `FK_m_share_product_dividend_pay_out_createdby_id` (`createdby_id`), KEY `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` (`lastmodifiedby_id`), - CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), CONSTRAINT `FK_m_share_product_dividend_pay_out_createdby_id` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), - CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) + CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_market_price +-- Dumping structure for table mifostenant-default.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4692,12 +4692,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff +-- Dumping structure for table mifostenant-default.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4723,12 +4723,12 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff_assignment_history +-- Dumping structure for table mifostenant-default.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4747,12 +4747,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_surveys +-- Dumping structure for table mifostenant-default.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4765,12 +4765,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_components +-- Dumping structure for table mifostenant-default.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4784,12 +4784,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables +-- Dumping structure for table mifostenant-default.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4804,12 +4804,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_questions +-- Dumping structure for table mifostenant-default.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4824,12 +4824,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_responses +-- Dumping structure for table mifostenant-default.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4842,12 +4842,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_scorecards +-- Dumping structure for table mifostenant-default.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4871,12 +4871,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component +-- Dumping structure for table mifostenant-default.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4902,12 +4902,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component_history +-- Dumping structure for table mifostenant-default.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4928,12 +4928,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group +-- Dumping structure for table mifostenant-default.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4949,12 +4949,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group_mappings +-- Dumping structure for table mifostenant-default.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4977,12 +4977,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tellers +-- Dumping structure for table mifostenant-default.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5004,12 +5004,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template +-- Dumping structure for table mifostenant-default.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5021,12 +5021,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_templatemappers +-- Dumping structure for table mifostenant-default.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5036,12 +5036,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers +-- Dumping structure for table mifostenant-default.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5051,12 +5051,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_working_days +-- Dumping structure for table mifostenant-default.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5066,14 +5066,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_access_token +-- Dumping structure for table mifostenant-default.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5085,12 +5085,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_client_details +-- Dumping structure for table mifostenant-default.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5107,14 +5107,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_refresh_token +-- Dumping structure for table mifostenant-default.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5122,12 +5122,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods +-- Dumping structure for table mifostenant-default.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5136,12 +5136,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5151,12 +5151,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_scores +-- Dumping structure for table mifostenant-default.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5165,7 +5165,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5191,7 +5191,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5202,7 +5202,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5215,19 +5215,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.rpt_sequence +-- Dumping structure for table mifostenant-default.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.r_enum_value +-- Dumping structure for table mifostenant-default.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5240,7 +5240,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-default.r_enum_value: ~64 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), @@ -5310,7 +5310,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.scheduler_detail +-- Dumping structure for table mifostenant-default.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5320,14 +5320,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.schema_version +-- Dumping structure for table mifostenant-default.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5347,7 +5347,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.schema_version: ~248 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~324 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5677,7 +5677,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.sms_messages_outbound +-- Dumping structure for table mifostenant-default.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5696,12 +5696,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_parameter +-- Dumping structure for table mifostenant-default.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5722,7 +5722,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5748,7 +5748,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report +-- Dumping structure for table mifostenant-default.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5764,7 +5764,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report: ~63 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~93 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5863,7 +5863,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report_parameter +-- Dumping structure for table mifostenant-default.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5878,7 +5878,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6220,7 +6220,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_registered_table +-- Dumping structure for table mifostenant-default.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6229,12 +6229,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings +-- Dumping structure for table mifostenant-default.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6244,7 +6244,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 116469cfe08..2cb0ccf2c7a 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.21-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-sampledata.acc_accounting_rule +-- Dumping structure for table mifostenant-reference.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_account +-- Dumping structure for table mifostenant-reference.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -120,7 +120,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_closure +-- Dumping structure for table mifostenant-reference.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -142,12 +142,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -159,14 +159,14 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry +-- Dumping structure for table mifostenant-reference.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -207,7 +207,6 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( KEY `FK_acc_gl_journal_entry_m_payment_detail` (`payment_details_id`), KEY `FK_acc_gl_journal_entry_m_client_transaction` (`client_transaction_id`), KEY `FK_acc_gl_journal_entry_m_share_account_transaction` (`share_transaction_id`), - CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_account` FOREIGN KEY (`account_id`) REFERENCES `acc_gl_account` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_acc_gl_journal_entry` FOREIGN KEY (`reversal_id`) REFERENCES `acc_gl_journal_entry` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_appuser` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), @@ -216,15 +215,16 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`), CONSTRAINT `FK_acc_gl_journal_entry_m_payment_detail` FOREIGN KEY (`payment_details_id`) REFERENCES `m_payment_detail` (`id`), - CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) + CONSTRAINT `FK_acc_gl_journal_entry_m_savings_account_transaction` FOREIGN KEY (`savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`), + CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_product_mapping +-- Dumping structure for table mifostenant-reference.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -241,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -265,7 +265,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_rule_tags +-- Dumping structure for table mifostenant-reference.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -280,12 +280,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_account_number_format +-- Dumping structure for table mifostenant-reference.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -295,12 +295,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_cache +-- Dumping structure for table mifostenant-reference.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -308,14 +308,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.c_cache: ~0 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_configuration +-- Dumping structure for table mifostenant-reference.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -329,7 +329,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~26 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -361,7 +361,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service +-- Dumping structure for table mifostenant-reference.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -370,7 +370,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -378,7 +378,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service_properties +-- Dumping structure for table mifostenant-reference.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -388,7 +388,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -402,7 +402,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job +-- Dumping structure for table mifostenant-reference.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -424,35 +424,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-reference.job: ~22 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-06-13 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-14 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-06-13 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-06-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-06-14 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-06-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-06-14 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-06-14 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-06-14 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-06-14 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-06-14 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-06-14 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-06-14 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-06-14 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-06-14 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-06-14 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-06-14 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-06-14 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-06-14 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-06-27 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-28 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-06-27 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-06-28 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-06-28 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-06-28 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-06-28 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-06-28 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-06-28 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-06-28 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-06-28 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-06-28 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-06-28 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-06-28 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-06-28 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-06-28 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job_run_history +-- Dumping structure for table mifostenant-reference.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -469,7 +469,7 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job_run_history: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.job_run_history: ~18 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -493,7 +493,7 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy +-- Dumping structure for table mifostenant-reference.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -506,7 +506,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -560,7 +560,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -571,14 +571,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace +-- Dumping structure for table mifostenant-reference.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -588,7 +588,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -601,7 +601,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_details +-- Dumping structure for table mifostenant-reference.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -633,12 +633,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -662,12 +662,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -681,12 +681,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction +-- Dumping structure for table mifostenant-reference.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -715,12 +715,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser +-- Dumping structure for table mifostenant-reference.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -749,7 +749,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -760,7 +760,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password +-- Dumping structure for table mifostenant-reference.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -772,12 +772,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_role +-- Dumping structure for table mifostenant-reference.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -789,7 +789,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -799,7 +799,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar +-- Dumping structure for table mifostenant-reference.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -823,12 +823,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_history +-- Dumping structure for table mifostenant-reference.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -850,12 +850,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_instance +-- Dumping structure for table mifostenant-reference.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -867,12 +867,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashiers +-- Dumping structure for table mifostenant-reference.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -891,12 +891,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashier_transactions +-- Dumping structure for table mifostenant-reference.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -914,12 +914,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_charge +-- Dumping structure for table mifostenant-reference.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -945,18 +945,18 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( UNIQUE KEY `name` (`name`), KEY `FK_m_charge_acc_gl_account` (`income_or_liability_account_id`), KEY `FK_m_charge_m_tax_group` (`tax_group_id`), - CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`), - CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`) + CONSTRAINT `FK_m_charge_acc_gl_account` FOREIGN KEY (`income_or_liability_account_id`) REFERENCES `acc_gl_account` (`id`), + CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client +-- Dumping structure for table mifostenant-reference.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1031,7 +1031,7 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`) VALUES (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -1044,7 +1044,7 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_attendance +-- Dumping structure for table mifostenant-reference.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1058,12 +1058,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge +-- Dumping structure for table mifostenant-reference.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1089,12 +1089,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1108,12 +1108,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_identifier +-- Dumping structure for table mifostenant-reference.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1136,12 +1136,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_non_person +-- Dumping structure for table mifostenant-reference.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1157,12 +1157,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_transaction +-- Dumping structure for table mifostenant-reference.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1185,12 +1185,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code +-- Dumping structure for table mifostenant-reference.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1200,7 +1200,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code: ~25 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code: ~25 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1231,7 +1231,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code_value +-- Dumping structure for table mifostenant-reference.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1247,7 +1247,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code_value: ~26 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1), @@ -1279,7 +1279,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_currency +-- Dumping structure for table mifostenant-reference.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1293,7 +1293,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1462,7 +1462,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1477,12 +1477,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1499,12 +1499,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1531,12 +1531,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1547,12 +1547,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1565,12 +1565,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1592,12 +1592,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_document +-- Dumping structure for table mifostenant-reference.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1613,12 +1613,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_relation +-- Dumping structure for table mifostenant-reference.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1629,7 +1629,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1640,7 +1640,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1656,12 +1656,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1675,12 +1675,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates +-- Dumping structure for table mifostenant-reference.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1695,12 +1695,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods +-- Dumping structure for table mifostenant-reference.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1718,12 +1718,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_fund +-- Dumping structure for table mifostenant-reference.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1734,14 +1734,14 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group +-- Dumping structure for table mifostenant-reference.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1777,7 +1777,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -1787,7 +1787,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_client +-- Dumping structure for table mifostenant-reference.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1798,7 +1798,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -1810,7 +1810,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_level +-- Dumping structure for table mifostenant-reference.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1824,7 +1824,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1832,7 +1832,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_roles +-- Dumping structure for table mifostenant-reference.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1849,12 +1849,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor +-- Dumping structure for table mifostenant-reference.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1882,12 +1882,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details +-- Dumping structure for table mifostenant-reference.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1905,12 +1905,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction +-- Dumping structure for table mifostenant-reference.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1927,12 +1927,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday +-- Dumping structure for table mifostenant-reference.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1947,12 +1947,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday_office +-- Dumping structure for table mifostenant-reference.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1964,12 +1964,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook +-- Dumping structure for table mifostenant-reference.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1988,12 +1988,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_configuration +-- Dumping structure for table mifostenant-reference.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2006,12 +2006,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_registered_events +-- Dumping structure for table mifostenant-reference.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2023,12 +2023,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_schema +-- Dumping structure for table mifostenant-reference.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2042,7 +2042,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2055,7 +2055,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_templates +-- Dumping structure for table mifostenant-reference.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2063,7 +2063,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -2071,7 +2071,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_image +-- Dumping structure for table mifostenant-reference.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2080,12 +2080,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_incentives +-- Dumping structure for table mifostenant-reference.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2101,12 +2101,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2118,12 +2118,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab +-- Dumping structure for table mifostenant-reference.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2141,12 +2141,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan +-- Dumping structure for table mifostenant-reference.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2277,8 +2277,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2286,14 +2286,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2326,12 +2326,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2344,12 +2344,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging +-- Dumping structure for table mifostenant-reference.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2363,12 +2363,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge +-- Dumping structure for table mifostenant-reference.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2399,14 +2399,14 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2421,12 +2421,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_collateral +-- Dumping structure for table mifostenant-reference.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2441,12 +2441,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2459,12 +2459,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge +-- Dumping structure for table mifostenant-reference.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2486,12 +2486,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2503,12 +2503,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2527,12 +2527,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2546,12 +2546,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2564,12 +2564,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details +-- Dumping structure for table mifostenant-reference.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2593,12 +2593,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2638,7 +2638,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -2669,7 +2669,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2694,12 +2694,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request +-- Dumping structure for table mifostenant-reference.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2734,12 +2734,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_term_variations +-- Dumping structure for table mifostenant-reference.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2755,12 +2755,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges +-- Dumping structure for table mifostenant-reference.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2773,12 +2773,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2791,12 +2791,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction +-- Dumping structure for table mifostenant-reference.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2829,12 +2829,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2852,12 +2852,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2880,12 +2880,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_meeting +-- Dumping structure for table mifostenant-reference.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2896,12 +2896,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_note +-- Dumping structure for table mifostenant-reference.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2935,12 +2935,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office +-- Dumping structure for table mifostenant-reference.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2956,7 +2956,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -2965,7 +2965,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office_transaction +-- Dumping structure for table mifostenant-reference.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2983,12 +2983,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_organisation_currency +-- Dumping structure for table mifostenant-reference.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3001,14 +3001,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_organisation_currency: ~0 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_password_validation_policy +-- Dumping structure for table mifostenant-reference.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3019,7 +3019,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -3027,7 +3027,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_detail +-- Dumping structure for table mifostenant-reference.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3042,12 +3042,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_type +-- Dumping structure for table mifostenant-reference.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3058,12 +3058,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_permission +-- Dumping structure for table mifostenant-reference.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3076,7 +3076,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_permission: ~576 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~716 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3798,7 +3798,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations +-- Dumping structure for table mifostenant-reference.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3819,12 +3819,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source +-- Dumping structure for table mifostenant-reference.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3862,7 +3862,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~71 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -3940,7 +3940,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan +-- Dumping structure for table mifostenant-reference.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4006,14 +4006,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_charge +-- Dumping structure for table mifostenant-reference.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4024,14 +4024,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4049,14 +4049,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4074,12 +4074,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4092,12 +4092,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4123,12 +4123,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4140,12 +4140,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4161,12 +4161,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_mix +-- Dumping structure for table mifostenant-reference.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4179,12 +4179,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4201,12 +4201,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4228,12 +4228,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_history +-- Dumping structure for table mifostenant-reference.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4249,12 +4249,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provision_category +-- Dumping structure for table mifostenant-reference.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4264,7 +4264,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4274,7 +4274,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role +-- Dumping structure for table mifostenant-reference.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4285,14 +4285,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role_permission +-- Dumping structure for table mifostenant-reference.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4304,14 +4304,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role_permission: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account +-- Dumping structure for table mifostenant-reference.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4387,12 +4387,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge +-- Dumping structure for table mifostenant-reference.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4423,12 +4423,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4442,12 +4442,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4462,12 +4462,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4485,12 +4485,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4517,12 +4517,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4536,12 +4536,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives +-- Dumping structure for table mifostenant-reference.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4557,12 +4557,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4581,12 +4581,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product +-- Dumping structure for table mifostenant-reference.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4629,14 +4629,14 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product_charge +-- Dumping structure for table mifostenant-reference.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4647,12 +4647,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4668,12 +4668,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4686,12 +4686,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account +-- Dumping structure for table mifostenant-reference.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4745,12 +4745,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge +-- Dumping structure for table mifostenant-reference.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4779,12 +4779,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4798,12 +4798,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details +-- Dumping structure for table mifostenant-reference.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4815,16 +4815,16 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( PRIMARY KEY (`id`), KEY `FK_m_share_account_dividend_details_dividend_pay_out_id` (`dividend_pay_out_id`), KEY `FK_m_share_account_dividend_details_account_id` (`account_id`), - CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`), - CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) + CONSTRAINT `FK_m_share_account_dividend_details_account_id` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`), + CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_transactions +-- Dumping structure for table mifostenant-reference.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4841,12 +4841,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product +-- Dumping structure for table mifostenant-reference.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4885,12 +4885,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_charge +-- Dumping structure for table mifostenant-reference.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4901,12 +4901,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4923,17 +4923,17 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( KEY `FK_m_share_product_dividend_pay_out_product_id` (`product_id`), KEY `FK_m_share_product_dividend_pay_out_createdby_id` (`createdby_id`), KEY `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` (`lastmodifiedby_id`), - CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`), CONSTRAINT `FK_m_share_product_dividend_pay_out_createdby_id` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), - CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) + CONSTRAINT `FK_m_share_product_dividend_pay_out_lastmodifiedby_id` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_market_price +-- Dumping structure for table mifostenant-reference.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4945,12 +4945,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff +-- Dumping structure for table mifostenant-reference.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4976,7 +4976,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -4985,7 +4985,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history +-- Dumping structure for table mifostenant-reference.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5004,12 +5004,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_surveys +-- Dumping structure for table mifostenant-reference.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5022,12 +5022,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_components +-- Dumping structure for table mifostenant-reference.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5041,12 +5041,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables +-- Dumping structure for table mifostenant-reference.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5061,12 +5061,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_questions +-- Dumping structure for table mifostenant-reference.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5081,12 +5081,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_responses +-- Dumping structure for table mifostenant-reference.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5099,12 +5099,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_scorecards +-- Dumping structure for table mifostenant-reference.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5128,12 +5128,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component +-- Dumping structure for table mifostenant-reference.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5159,12 +5159,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component_history +-- Dumping structure for table mifostenant-reference.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5185,12 +5185,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group +-- Dumping structure for table mifostenant-reference.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5206,12 +5206,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings +-- Dumping structure for table mifostenant-reference.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5234,12 +5234,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tellers +-- Dumping structure for table mifostenant-reference.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5261,12 +5261,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template +-- Dumping structure for table mifostenant-reference.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5278,12 +5278,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_templatemappers +-- Dumping structure for table mifostenant-reference.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5293,12 +5293,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers +-- Dumping structure for table mifostenant-reference.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5308,12 +5308,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_working_days +-- Dumping structure for table mifostenant-reference.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5323,14 +5323,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~0 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_access_token +-- Dumping structure for table mifostenant-reference.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5342,12 +5342,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_client_details +-- Dumping structure for table mifostenant-reference.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5364,14 +5364,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_client_details: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_refresh_token +-- Dumping structure for table mifostenant-reference.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5379,12 +5379,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods +-- Dumping structure for table mifostenant-reference.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5393,12 +5393,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5408,12 +5408,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_scores +-- Dumping structure for table mifostenant-reference.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5422,7 +5422,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5448,7 +5448,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5459,7 +5459,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5472,19 +5472,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.rpt_sequence +-- Dumping structure for table mifostenant-reference.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.r_enum_value +-- Dumping structure for table mifostenant-reference.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5497,7 +5497,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-reference.r_enum_value: ~64 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), @@ -5567,7 +5567,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.scheduler_detail +-- Dumping structure for table mifostenant-reference.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5577,14 +5577,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.scheduler_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.schema_version +-- Dumping structure for table mifostenant-reference.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5604,7 +5604,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.schema_version: ~270 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~324 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5934,7 +5934,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.sms_messages_outbound +-- Dumping structure for table mifostenant-reference.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5953,12 +5953,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_parameter +-- Dumping structure for table mifostenant-reference.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5979,7 +5979,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6005,7 +6005,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report +-- Dumping structure for table mifostenant-reference.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6021,7 +6021,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report: ~63 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~93 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6120,7 +6120,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter +-- Dumping structure for table mifostenant-reference.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6135,7 +6135,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6477,7 +6477,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_registered_table +-- Dumping structure for table mifostenant-reference.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6486,12 +6486,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings +-- Dumping structure for table mifostenant-reference.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6501,7 +6501,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; From 2a7090f4c3dbafb602eaf9f0d566f1d3e5947954 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Tue, 16 Aug 2016 17:19:33 +0530 Subject: [PATCH 16/25] Updating release notes for 16.08.01.RELEASE --- MIFOS-CHANGELOG.md | 44 + api-docs/apiLive.htm | 2 +- fineract-provider/dependencies.gradle | 1 - fineract-provider/dev-dependencies.gradle | 1 - fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 1167 ++++++++++------ .../sample_data/load_sample_data.sql | 1220 +++++++++++------ 7 files changed, 1560 insertions(+), 877 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index 0ea1e1a38ad..453d168e521 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -4,6 +4,7 @@ Changelog Releases =============== +1. 16 Aug 2016 - 16.08.01.RELEASE 1. 27 Jun 2016 - 16.06.01.RELEASE 1. 13 May 2016 - 16.05.01.RELEASE 1. 13 Apr 2016 - 16.04.01.RELEASE @@ -89,6 +90,49 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.08.01.RELEASE +============= + +This release adds Topup Loans, Multi-Rescheduling, ability to schedule and email reports etc as improvements. + +Platform & API +New Features & Improvements + + - [FINERACT-50] - Add "mandatory" property to code value entity + - [FINERACT-53] - Make the "clientId" URL parameter optional for "loan details template" retrieval + - [FINERACT-57] - Set closure properties of reactivated closed client entity to null + - [FINERACT-202] - Ability to reschedule loans more than once + - [FINERACT-70] - Rename deleted standing instruction by appending "_deleted_" string and the id + - Capture Address for Clients + - [FINERACT-65] - Implement ability to schedule & e-mail reports + - [FINERACT-131] - Topup Loan + - Added buttons for client UNDOREJECT and UNDOWITHDRAWAL + +Bugs + - [FINERACT-44] - Cannot delete an inactive charge associated with a product (loan/savings) + - [FINERACT-45] - The "getRejectedByUser" method in the "LoanRescheduleRequest" entity class returns the wrong value. + - [FINERACT-47] - Expired user password cannot be updated by the same user + - [FINERACT-55] - Standing instruction not disabled at loan/savings account closure + - [FINERACT-61] - Incorrect penalty and fee charges amount inserted into the "m_loan_arrears_aging" table + - [FINERACT-190] - Client accounts API shows multiple entries for same share account + - [FINERACT-206] - When deleting a group with with a user who has roles. It throws com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails + - [FINERACT-71] - "AuditReadPlatformServiceImpl.retrieveEntries" returns duplicate results for users without the "ALL_FUNCTIONS" and "CHECKER_SUPER_USER" permissions. + + + +Community-app +New Features & Improvements + + - [FINERACT-202] - Ability to reschedule loans more than once + - [FINERACT-131] - Topup Loan + - Added buttons for client UNDOREJECT and UNDOWITHDRAWAL + + Bugs + + - showing gl account types and usage in locale specific language + - [MIFOSX-2634] - Few sidebar menu items are not visible + + 16.06.01.RELEASE ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 54da7ee542f..effa34cae13 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/dependencies.gradle b/fineract-provider/dependencies.gradle index bc04616fe37..f41c8cec35e 100644 --- a/fineract-provider/dependencies.gradle +++ b/fineract-provider/dependencies.gradle @@ -37,7 +37,6 @@ dependencies { [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion], [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion], [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion], - [group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.0.0'], [group: 'org.springframework', name: 'spring-context-support', version: springVersion], [group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: springOauthVersion], diff --git a/fineract-provider/dev-dependencies.gradle b/fineract-provider/dev-dependencies.gradle index fba5342870c..0a47fd1c34d 100644 --- a/fineract-provider/dev-dependencies.gradle +++ b/fineract-provider/dev-dependencies.gradle @@ -37,7 +37,6 @@ dependencies { [group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: springBootVersion], [group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: springBootVersion], [group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: springBootVersion], - [group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.0.0'], [group: 'org.springframework', name: 'spring-context-support', version: springVersion], [group: 'org.springframework.security.oauth', name: 'spring-security-oauth2', version: springOauthVersion], diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index d031c49d9c9..aff05811b16 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. # -releaseVersion=0.3.2-incubating +releaseVersion=16.08.01.RELEASE buildType=BUILD diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 53f92c0037b..e0f28704032 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,25 +1,6 @@ --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. --- - -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.21-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -29,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-default.acc_accounting_rule +-- Dumping structure for table mifostenant-barebone.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -51,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_account +-- Dumping structure for table mifostenant-barebone.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -78,12 +59,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_closure +-- Dumping structure for table mifostenant-barebone.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -105,12 +86,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -122,12 +103,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_gl_journal_entry +-- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -180,12 +161,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_product_mapping +-- Dumping structure for table mifostenant-barebone.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -202,12 +183,12 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.acc_rule_tags +-- Dumping structure for table mifostenant-barebone.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -222,12 +203,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_account_number_format +-- Dumping structure for table mifostenant-barebone.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -237,12 +218,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_cache +-- Dumping structure for table mifostenant-barebone.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -250,14 +231,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_configuration +-- Dumping structure for table mifostenant-barebone.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -269,9 +250,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -299,11 +280,12 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'), (30, 'change-emi-if-repaymentdate-same-as-disbursementdate', 0, NULL, 1, 0, 'In tranche loans, if repayment date is same as tranche disbursement date then allow to change the emi amount'), - (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'); + (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'), + (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_external_service +-- Dumping structure for table mifostenant-barebone.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -312,7 +294,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -320,7 +302,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.c_external_service_properties +-- Dumping structure for table mifostenant-barebone.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -330,7 +312,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -344,7 +326,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.job +-- Dumping structure for table mifostenant-barebone.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -364,37 +346,38 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-barebone.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-27 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-27 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-06-28 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-28 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-06-28 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-28 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-06-28 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-06-28 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-06-28 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-06-28 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-06-28 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-06-28 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-06-28 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-06-28 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-06-28 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-16 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-16 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-08-17 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-08-17 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-08-17 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-08-17 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-08-17 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-08-17 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-08-17 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-08-17 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-08-17 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-08-17 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-08-17 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-08-17 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-08-16 17:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.job_run_history +-- Dumping structure for table mifostenant-barebone.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -409,14 +392,16 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.job_run_history: ~1 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; +INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES + (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_taxonomy +-- Dumping structure for table mifostenant-barebone.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -429,7 +414,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -483,7 +468,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -494,14 +479,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.mix_xbrl_namespace +-- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -511,7 +496,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -524,7 +509,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_details +-- Dumping structure for table mifostenant-barebone.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -556,12 +541,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -585,12 +570,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -604,12 +589,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_account_transfer_transaction +-- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -638,12 +623,44 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser +-- Dumping structure for table mifostenant-barebone.m_address +DROP TABLE IF EXISTS `m_address`; +CREATE TABLE IF NOT EXISTS `m_address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `street` varchar(100) DEFAULT NULL, + `address_line_1` varchar(100) DEFAULT NULL, + `address_line_2` varchar(100) DEFAULT NULL, + `address_line_3` varchar(100) DEFAULT NULL, + `town_village` varchar(100) DEFAULT NULL, + `city` varchar(100) DEFAULT NULL, + `county_district` varchar(100) DEFAULT NULL, + `state_province_id` int(11) DEFAULT NULL, + `country_id` int(11) DEFAULT NULL, + `postal_code` varchar(10) DEFAULT NULL, + `latitude` decimal(10,8) unsigned DEFAULT '0.00000000', + `longitude` decimal(10,8) unsigned DEFAULT '0.00000000', + `created_by` varchar(100) DEFAULT NULL, + `created_on` date DEFAULT NULL, + `updated_by` varchar(100) DEFAULT NULL, + `updated_on` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `address_fields_codefk1` (`state_province_id`), + KEY `address_fields_codefk2` (`country_id`), + CONSTRAINT `address_fields_codefk1` FOREIGN KEY (`state_province_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_address: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_address` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -672,7 +689,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), @@ -680,7 +697,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser_previous_password +-- Dumping structure for table mifostenant-barebone.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -692,12 +709,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_appuser_role +-- Dumping structure for table mifostenant-barebone.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -709,14 +726,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar +-- Dumping structure for table mifostenant-barebone.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -740,12 +757,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar_history +-- Dumping structure for table mifostenant-barebone.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -767,12 +784,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_calendar_instance +-- Dumping structure for table mifostenant-barebone.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -784,12 +801,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_cashiers +-- Dumping structure for table mifostenant-barebone.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -808,12 +825,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_cashier_transactions +-- Dumping structure for table mifostenant-barebone.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -831,12 +848,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_charge +-- Dumping structure for table mifostenant-barebone.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -866,12 +883,12 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client +-- Dumping structure for table mifostenant-barebone.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -914,6 +931,8 @@ CREATE TABLE IF NOT EXISTS `m_client` ( `reactivated_on_date` date DEFAULT NULL, `reactivated_on_userid` bigint(20) DEFAULT NULL, `legal_form_enum` int(5) DEFAULT NULL, + `reopened_on_date` date DEFAULT NULL, + `reopened_by_userid` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `account_no_UNIQUE` (`account_no`), UNIQUE KEY `external_id` (`external_id`), @@ -941,17 +960,38 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_attendance +-- Dumping structure for table mifostenant-barebone.m_client_address +DROP TABLE IF EXISTS `m_client_address`; +CREATE TABLE IF NOT EXISTS `m_client_address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `client_id` bigint(20) NOT NULL DEFAULT '0', + `address_id` bigint(20) NOT NULL DEFAULT '0', + `address_type_id` int(11) NOT NULL DEFAULT '0', + `is_active` tinyint(4) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `addressIdFk` (`address_id`), + KEY `address_codefk` (`address_type_id`), + KEY `clientaddressfk` (`client_id`), + CONSTRAINT `address_codefk` FOREIGN KEY (`address_type_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_client_address: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -965,12 +1005,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_charge +-- Dumping structure for table mifostenant-barebone.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -996,12 +1036,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1015,12 +1055,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_identifier +-- Dumping structure for table mifostenant-barebone.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1043,12 +1083,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_non_person +-- Dumping structure for table mifostenant-barebone.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1064,12 +1104,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_client_transaction +-- Dumping structure for table mifostenant-barebone.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1092,12 +1132,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_code +-- Dumping structure for table mifostenant-barebone.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1105,9 +1145,9 @@ CREATE TABLE IF NOT EXISTS `m_code` ( `is_system_defined` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_name` (`code_name`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code: ~25 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1134,11 +1174,14 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (23, 'LoanRescheduleReason', 1), (24, 'Constitution', 1), (25, 'Main Business Line', 1), - (26, 'WriteOffReasons', 1); + (26, 'WriteOffReasons', 1), + (27, 'STATE', 1), + (28, 'COUNTRY', 1), + (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_code_value +-- Dumping structure for table mifostenant-barebone.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1148,31 +1191,32 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( `order_position` int(11) NOT NULL DEFAULT '0', `code_score` int(11) DEFAULT NULL, `is_active` tinyint(1) NOT NULL DEFAULT '1', + `is_mandatory` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_value` (`code_id`,`code_value`), KEY `FKCFCEA42640BE071Z` (`code_id`), CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; -INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES - (1, 1, 'Passport', NULL, 1, NULL, 1), - (2, 1, 'Id', NULL, 2, NULL, 1), - (3, 1, 'Drivers License', NULL, 3, NULL, 1), - (4, 1, 'Any Other Id Type', NULL, 4, NULL, 1), - (5, 6, 'Spouse', NULL, 0, NULL, 1), - (6, 6, 'Parent', NULL, 0, NULL, 1), - (7, 6, 'Sibling', NULL, 0, NULL, 1), - (8, 6, 'Business Associate', NULL, 0, NULL, 1), - (9, 6, 'Other', NULL, 0, NULL, 1), - (10, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1), - (11, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1), - (12, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1); +INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES + (1, 1, 'Passport', NULL, 1, NULL, 1, 0), + (2, 1, 'Id', NULL, 2, NULL, 1, 0), + (3, 1, 'Drivers License', NULL, 3, NULL, 1, 0), + (4, 1, 'Any Other Id Type', NULL, 4, NULL, 1, 0), + (5, 6, 'Spouse', NULL, 0, NULL, 1, 0), + (6, 6, 'Parent', NULL, 0, NULL, 1, 0), + (7, 6, 'Sibling', NULL, 0, NULL, 1, 0), + (8, 6, 'Business Associate', NULL, 0, NULL, 1, 0), + (9, 6, 'Other', NULL, 0, NULL, 1, 0), + (10, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1, 0), + (11, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1, 0), + (12, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_currency +-- Dumping structure for table mifostenant-barebone.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1186,7 +1230,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1355,7 +1399,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1370,12 +1414,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1392,12 +1436,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1424,12 +1468,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1440,12 +1484,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1458,12 +1502,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1485,12 +1529,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_document +-- Dumping structure for table mifostenant-barebone.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1506,12 +1550,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_relation +-- Dumping structure for table mifostenant-barebone.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1522,7 +1566,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1533,7 +1577,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_to_entity_access +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1549,12 +1593,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1568,12 +1612,49 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_floating_rates +-- Dumping structure for table mifostenant-barebone.m_field_configuration +DROP TABLE IF EXISTS `m_field_configuration`; +CREATE TABLE IF NOT EXISTS `m_field_configuration` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `entity` varchar(100) NOT NULL, + `subentity` varchar(100) NOT NULL, + `field` varchar(100) NOT NULL, + `is_enabled` tinyint(4) NOT NULL, + `is_mandatory` tinyint(4) NOT NULL, + `validation_regex` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_field_configuration: ~18 rows (approximately) +/*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; +INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES + (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), + (2, 'ADDRESS', 'CLIENT', 'street', 1, 1, ''), + (3, 'ADDRESS', 'CLIENT', 'addressLine1', 1, 0, ''), + (4, 'ADDRESS', 'CLIENT', 'addressLine2', 1, 0, ''), + (5, 'ADDRESS', 'CLIENT', 'addressLine3', 1, 0, ''), + (6, 'ADDRESS', 'CLIENT', 'townVillage', 0, 0, ''), + (7, 'ADDRESS', 'CLIENT', 'city', 1, 0, ''), + (8, 'ADDRESS', 'CLIENT', 'countyDistrict', 0, 0, ''), + (9, 'ADDRESS', 'CLIENT', 'stateProvinceId', 1, 0, ''), + (10, 'ADDRESS', 'CLIENT', 'countryId', 1, 0, ''), + (11, 'ADDRESS', 'CLIENT', 'postalCode', 1, 0, ''), + (12, 'ADDRESS', 'CLIENT', 'latitude', 0, 0, ''), + (13, 'ADDRESS', 'CLIENT', 'longitude', 0, 0, ''), + (14, 'ADDRESS', 'CLIENT', 'createdBy', 1, 0, ''), + (15, 'ADDRESS', 'CLIENT', 'createdOn', 1, 0, ''), + (16, 'ADDRESS', 'CLIENT', 'updatedBy', 1, 0, ''), + (17, 'ADDRESS', 'CLIENT', 'updatedOn', 1, 0, ''), + (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); +/*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1588,12 +1669,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_floating_rates_periods +-- Dumping structure for table mifostenant-barebone.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1611,12 +1692,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_fund +-- Dumping structure for table mifostenant-barebone.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1627,12 +1708,12 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group +-- Dumping structure for table mifostenant-barebone.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1668,12 +1749,12 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_client +-- Dumping structure for table mifostenant-barebone.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1684,12 +1765,12 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_level +-- Dumping structure for table mifostenant-barebone.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1703,7 +1784,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1711,7 +1792,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_group_roles +-- Dumping structure for table mifostenant-barebone.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1728,12 +1809,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor +-- Dumping structure for table mifostenant-barebone.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1761,12 +1842,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor_funding_details +-- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1784,12 +1865,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_guarantor_transaction +-- Dumping structure for table mifostenant-barebone.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1806,12 +1887,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_holiday +-- Dumping structure for table mifostenant-barebone.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1826,12 +1907,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_holiday_office +-- Dumping structure for table mifostenant-barebone.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1843,12 +1924,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook +-- Dumping structure for table mifostenant-barebone.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1867,12 +1948,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_configuration +-- Dumping structure for table mifostenant-barebone.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1885,12 +1966,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_registered_events +-- Dumping structure for table mifostenant-barebone.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1902,12 +1983,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_schema +-- Dumping structure for table mifostenant-barebone.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1921,7 +2002,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -1934,7 +2015,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_hook_templates +-- Dumping structure for table mifostenant-barebone.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -1942,7 +2023,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -1950,7 +2031,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_image +-- Dumping structure for table mifostenant-barebone.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1959,12 +2040,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1980,12 +2061,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1997,12 +2078,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2020,12 +2101,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan +-- Dumping structure for table mifostenant-barebone.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2131,6 +2212,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `version` int(15) NOT NULL DEFAULT '1', `writeoff_reason_cv_id` int(11) DEFAULT NULL, `loan_sub_status_id` smallint(5) DEFAULT NULL, + `is_topup` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `loan_account_no_UNIQUE` (`account_no`), UNIQUE KEY `loan_externalid_UNIQUE` (`external_id`), @@ -2156,8 +2238,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2165,12 +2247,12 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2203,12 +2285,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2221,12 +2303,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_arrears_aging +-- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2240,12 +2322,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_charge +-- Dumping structure for table mifostenant-barebone.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2276,12 +2358,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2296,12 +2378,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_collateral +-- Dumping structure for table mifostenant-barebone.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2316,12 +2398,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2334,12 +2416,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2361,12 +2443,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2378,12 +2460,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2402,12 +2484,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2421,12 +2503,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2439,12 +2521,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2468,12 +2550,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2513,12 +2595,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2543,25 +2625,20 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_reschedule_request +-- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, `status_enum` smallint(5) NOT NULL, `reschedule_from_installment` smallint(5) NOT NULL COMMENT 'Rescheduling will start from this installment', - `grace_on_principal` smallint(5) DEFAULT NULL COMMENT 'Number of installments that should be added with 0 principal amount', - `grace_on_interest` smallint(5) DEFAULT NULL COMMENT 'Number of installments that should be added with 0 interest rate', `reschedule_from_date` date NOT NULL COMMENT 'Rescheduling will start from the installment with due date similar to this date.', - `extra_terms` smallint(5) DEFAULT NULL COMMENT 'Number of extra terms to be added to the schedule', - `interest_rate` decimal(19,6) DEFAULT NULL COMMENT 'If provided, the interest rate for the unpaid installments will be recalculated', `recalculate_interest` tinyint(1) DEFAULT NULL COMMENT 'If set to 1, interest will be recalculated starting from the reschedule period.', - `adjusted_due_date` date DEFAULT NULL COMMENT 'New due date for the first rescheduled installment', `reschedule_reason_cv_id` int(11) DEFAULT NULL COMMENT 'ID of code value of reason for rescheduling', `reschedule_reason_comment` varchar(500) DEFAULT NULL COMMENT 'Text provided in addition to the reason code value', `submitted_on_date` date NOT NULL, @@ -2583,12 +2660,30 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_term_variations +-- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping +DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; +CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_reschedule_request_id` bigint(20) NOT NULL, + `loan_term_variations_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK__m_loan_reschedule_request` (`loan_reschedule_request_id`), + KEY `FK__m_loan_term_variations` (`loan_term_variations_id`), + CONSTRAINT `FK__m_loan_reschedule_request` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`), + CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2599,17 +2694,41 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `date_value` date DEFAULT NULL, `is_specific_to_installment` tinyint(4) NOT NULL DEFAULT '0', `applied_on_loan_status` smallint(5) NOT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', + `parent_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_loan_id_m_loan_id` (`loan_id`), CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_tranche_charges +-- Dumping structure for table mifostenant-barebone.m_loan_topup +DROP TABLE IF EXISTS `m_loan_topup`; +CREATE TABLE IF NOT EXISTS `m_loan_topup` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_id` bigint(20) NOT NULL, + `closure_loan_id` bigint(20) NOT NULL, + `account_transfer_details_id` bigint(20) DEFAULT NULL, + `topup_amount` decimal(19,6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_loan_topup_FK_loan_id` (`loan_id`), + KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), + KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_loan_topup: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2622,12 +2741,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2640,12 +2759,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_transaction +-- Dumping structure for table mifostenant-barebone.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2678,12 +2797,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2701,12 +2820,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2729,12 +2848,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_meeting +-- Dumping structure for table mifostenant-barebone.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2745,12 +2864,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_note +-- Dumping structure for table mifostenant-barebone.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2784,12 +2903,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_office +-- Dumping structure for table mifostenant-barebone.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2805,14 +2924,14 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_office_transaction +-- Dumping structure for table mifostenant-barebone.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2830,12 +2949,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_organisation_currency +-- Dumping structure for table mifostenant-barebone.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2848,14 +2967,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_password_validation_policy +-- Dumping structure for table mifostenant-barebone.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2866,7 +2985,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -2874,7 +2993,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_payment_detail +-- Dumping structure for table mifostenant-barebone.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2889,12 +3008,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_payment_type +-- Dumping structure for table mifostenant-barebone.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2905,12 +3024,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_permission +-- Dumping structure for table mifostenant-barebone.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2921,9 +3040,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~716 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_permission: ~637 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3641,11 +3760,26 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0), (737, 'portfolio', 'FORECLOSURE_LOAN', 'LOAN', 'FORECLOSURE', 0), - (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0); + (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0), + (739, 'portfolio', 'CREATE_ADDRESS', 'ADDRESS', 'CREATE', 0), + (740, 'portfolio', 'CREATE_ADDRESS_CHECKER', 'ADDRESS', 'CREATE_CHECKER', 1), + (741, 'portfolio', 'UPDATE_ADDRESS', 'ADDRESS', 'UPDATE', 0), + (742, 'portfolio', 'UPDATE_ADDRESS_CHECKER', 'ADDRESS', 'UPDATE_CHECKER', 1), + (743, 'portfolio', 'READ_ADDRESS', 'ADDRESS', 'READ', 0), + (744, 'portfolio', 'DELETE_ADDRESS', 'ADDRESS', 'DELETE', 0), + (745, 'portfolio', 'DELETE_ADDRESS_CHECKER', 'ADDRESS', 'DELETE_CHECKER', 1), + (746, 'jobs', 'CREATE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'CREATE', 0), + (747, 'jobs', 'UPDATE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'UPDATE', 0), + (748, 'jobs', 'DELETE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'DELETE', 0), + (749, 'jobs', 'READ_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'READ', 0), + (750, 'portfolio', 'UNDOREJECT_CLIENT', 'CLIENT', 'UNDOREJECT', 1), + (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), + (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), + (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_portfolio_account_associations +-- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3666,12 +3800,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_portfolio_command_source +-- Dumping structure for table mifostenant-barebone.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3709,12 +3843,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan +-- Dumping structure for table mifostenant-barebone.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3770,6 +3904,8 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( `account_moves_out_of_npa_only_on_arrears_completion` tinyint(1) NOT NULL DEFAULT '0', `can_define_fixed_emi_amount` tinyint(1) NOT NULL DEFAULT '0', `instalment_amount_in_multiples_of` decimal(19,6) DEFAULT NULL, + `can_use_for_topup` tinyint(1) NOT NULL DEFAULT '0', + `sync_expected_with_disbursement_date` tinyint(4) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `unq_name` (`name`), UNIQUE KEY `unq_short_name` (`short_name`), @@ -3780,12 +3916,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_charge +-- Dumping structure for table mifostenant-barebone.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -3796,12 +3932,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3819,12 +3955,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3842,12 +3978,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3860,12 +3996,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3891,12 +4027,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3908,12 +4044,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3929,12 +4065,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_product_mix +-- Dumping structure for table mifostenant-barebone.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3947,12 +4083,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_criteria +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3969,12 +4105,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3996,12 +4132,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provisioning_history +-- Dumping structure for table mifostenant-barebone.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4017,12 +4153,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_provision_category +-- Dumping structure for table mifostenant-barebone.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4032,7 +4168,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4042,7 +4178,91 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_role +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job +DROP TABLE IF EXISTS `m_report_mailing_job`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `description` text, + `start_datetime` datetime NOT NULL, + `recurrence` varchar(100) DEFAULT NULL, + `created_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `lastmodified_date` date DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `email_recipients` text NOT NULL, + `email_subject` varchar(100) NOT NULL, + `email_message` text NOT NULL, + `email_attachment_file_format` varchar(10) NOT NULL, + `stretchy_report_id` int(11) NOT NULL, + `stretchy_report_param_map` text, + `previous_run_datetime` datetime DEFAULT NULL, + `next_run_datetime` datetime DEFAULT NULL, + `previous_run_status` varchar(10) DEFAULT NULL, + `previous_run_error_log` text, + `previous_run_error_message` text, + `number_of_runs` int(11) NOT NULL DEFAULT '0', + `is_active` tinyint(1) NOT NULL DEFAULT '0', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0', + `run_as_userid` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_name` (`name`), + KEY `createdby_id` (`createdby_id`), + KEY `lastmodifiedby_id` (`lastmodifiedby_id`), + KEY `stretchy_report_id` (`stretchy_report_id`), + KEY `run_as_userid` (`run_as_userid`), + CONSTRAINT `m_report_mailing_job_ibfk_1` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_3` FOREIGN KEY (`stretchy_report_id`) REFERENCES `stretchy_report` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_report_mailing_job: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job_configuration +DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `value` varchar(200) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_report_mailing_job_configuration: ~4 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; +INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES + (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), + (2, 'GMAIL_SMTP_PORT', '587'), + (3, 'GMAIL_SMTP_USERNAME', ''), + (4, 'GMAIL_SMTP_PASSWORD', ''); +/*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job_run_history +DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `job_id` bigint(20) NOT NULL, + `start_datetime` datetime NOT NULL, + `end_datetime` datetime NOT NULL, + `status` varchar(10) NOT NULL, + `error_message` text, + `error_log` text, + PRIMARY KEY (`id`), + KEY `job_id` (`job_id`), + CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.m_report_mailing_job_run_history: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-barebone.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4053,14 +4273,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_role_permission +-- Dumping structure for table mifostenant-barebone.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4072,14 +4292,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account +-- Dumping structure for table mifostenant-barebone.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4155,12 +4375,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_charge +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4191,12 +4411,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4210,12 +4430,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4230,12 +4450,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4253,12 +4473,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_transaction +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4285,12 +4505,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4304,12 +4524,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4325,12 +4545,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4349,12 +4569,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_product +-- Dumping structure for table mifostenant-barebone.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4397,12 +4617,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_savings_product_charge +-- Dumping structure for table mifostenant-barebone.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4413,12 +4633,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4434,12 +4654,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4452,12 +4672,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account +-- Dumping structure for table mifostenant-barebone.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4511,12 +4731,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_charge +-- Dumping structure for table mifostenant-barebone.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4545,12 +4765,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4564,12 +4784,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_dividend_details +-- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4585,12 +4805,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_account_transactions +-- Dumping structure for table mifostenant-barebone.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4607,12 +4827,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product +-- Dumping structure for table mifostenant-barebone.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4651,12 +4871,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_charge +-- Dumping structure for table mifostenant-barebone.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4667,12 +4887,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4694,12 +4914,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_share_product_market_price +-- Dumping structure for table mifostenant-barebone.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4711,12 +4931,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_staff +-- Dumping structure for table mifostenant-barebone.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4742,12 +4962,12 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_staff_assignment_history +-- Dumping structure for table mifostenant-barebone.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4766,12 +4986,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_surveys +-- Dumping structure for table mifostenant-barebone.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4784,12 +5004,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_components +-- Dumping structure for table mifostenant-barebone.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4803,12 +5023,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_lookup_tables +-- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4823,12 +5043,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_questions +-- Dumping structure for table mifostenant-barebone.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4843,12 +5063,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_responses +-- Dumping structure for table mifostenant-barebone.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4861,12 +5081,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_survey_scorecards +-- Dumping structure for table mifostenant-barebone.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4890,12 +5110,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_component +-- Dumping structure for table mifostenant-barebone.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4921,12 +5141,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_component_history +-- Dumping structure for table mifostenant-barebone.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4947,12 +5167,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_group +-- Dumping structure for table mifostenant-barebone.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4968,12 +5188,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tax_group_mappings +-- Dumping structure for table mifostenant-barebone.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4996,12 +5216,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_tellers +-- Dumping structure for table mifostenant-barebone.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5023,12 +5243,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_template +-- Dumping structure for table mifostenant-barebone.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5040,12 +5260,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5055,12 +5275,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_template_m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5070,12 +5290,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.m_working_days +-- Dumping structure for table mifostenant-barebone.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5085,14 +5305,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_access_token +-- Dumping structure for table mifostenant-barebone.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5104,12 +5324,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_client_details +-- Dumping structure for table mifostenant-barebone.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5126,14 +5346,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.oauth_refresh_token +-- Dumping structure for table mifostenant-barebone.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5141,12 +5361,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_likelihoods +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5155,12 +5375,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5170,12 +5390,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ppi_scores +-- Dumping structure for table mifostenant-barebone.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5184,7 +5404,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5210,7 +5430,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5221,7 +5441,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5234,19 +5454,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.rpt_sequence +-- Dumping structure for table mifostenant-barebone.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.r_enum_value +-- Dumping structure for table mifostenant-barebone.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5259,17 +5479,84 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-barebone.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES + ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), + ('account_type_type_enum', 1, 'INDIVIDUAL', 'INDIVIDUAL', 0), + ('account_type_type_enum', 2, 'GROUP', 'GROUP', 0), + ('account_type_type_enum', 3, 'JLG', 'JLG', 0), + ('accrual_accounts_for_loan_type_enum', 1, 'FUND_SOURCE', 'FUND_SOURCE', 0), + ('accrual_accounts_for_loan_type_enum', 2, 'LOAN_PORTFOLIO', 'LOAN_PORTFOLIO', 0), + ('accrual_accounts_for_loan_type_enum', 3, 'INTEREST_ON_LOANS', 'INTEREST_ON_LOANS', 0), + ('accrual_accounts_for_loan_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('accrual_accounts_for_loan_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('accrual_accounts_for_loan_type_enum', 6, 'LOSSES_WRITTEN_OFF', 'LOSSES_WRITTEN_OFF', 0), + ('accrual_accounts_for_loan_type_enum', 7, 'INTEREST_RECEIVABLE', 'INTEREST_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 8, 'FEES_RECEIVABLE', 'FEES_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 9, 'PENALTIES_RECEIVABLE', 'PENALTIES_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('accrual_accounts_for_loan_type_enum', 11, 'OVERPAYMENT', 'OVERPAYMENT', 0), + ('accrual_accounts_for_loan_type_enum', 12, 'INCOME_FROM_RECOVERY', 'INCOME_FROM_RECOVERY', 0), ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), ('amortization_method_enum', 1, 'Equal installments', 'Equal installments', 0), + ('calendar_type_enum', 0, 'INVALID', 'INVALID', 0), + ('calendar_type_enum', 1, 'CLIENTS', 'CLIENTS', 0), + ('calendar_type_enum', 2, 'GROUPS', 'GROUPS', 0), + ('calendar_type_enum', 3, 'LOANS', 'LOANS', 0), + ('calendar_type_enum', 4, 'CENTERS', 'CENTERS', 0), + ('calendar_type_enum', 5, 'SAVINGS', 'SAVINGS', 0), + ('calendar_type_enum', 6, 'LOAN_RECALCULATION_REST_DETAIL', 'LOAN_RECALCULATION_REST_DETAIL', 0), + ('calendar_type_enum', 7, 'LOAN_RECALCULATION_COMPOUNDING_DETAIL', 'LOAN_RECALCULATION_COMPOUNDING_DETAIL', 0), + ('cash_accounts_for_loan_type_enum', 1, 'FUND_SOURCE', 'FUND_SOURCE', 0), + ('cash_accounts_for_loan_type_enum', 2, 'LOAN_PORTFOLIO', 'LOAN_PORTFOLIO', 0), + ('cash_accounts_for_loan_type_enum', 3, 'INTEREST_ON_LOANS', 'INTEREST_ON_LOANS', 0), + ('cash_accounts_for_loan_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_accounts_for_loan_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('cash_accounts_for_loan_type_enum', 6, 'LOSSES_WRITTEN_OFF', 'LOSSES_WRITTEN_OFF', 0), + ('cash_accounts_for_loan_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('cash_accounts_for_loan_type_enum', 11, 'OVERPAYMENT', 'OVERPAYMENT', 0), + ('cash_accounts_for_loan_type_enum', 12, 'INCOME_FROM_RECOVERY', 'INCOME_FROM_RECOVERY', 0), + ('cash_accounts_for_savings_type_enum', 1, 'SAVINGS_REFERENCE', 'SAVINGS_REFERENCE', 0), + ('cash_accounts_for_savings_type_enum', 2, 'SAVINGS_CONTROL', 'SAVINGS_CONTROL', 0), + ('cash_accounts_for_savings_type_enum', 3, 'INTEREST_ON_SAVINGS', 'INTEREST_ON_SAVINGS', 0), + ('cash_accounts_for_savings_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_accounts_for_savings_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('cash_accounts_for_savings_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('cash_accounts_for_savings_type_enum', 11, 'OVERDRAFT_PORTFOLIO_CONTROL', 'OVERDRAFT_PORTFOLIO_CONTROL', 0), + ('cash_accounts_for_savings_type_enum', 12, 'INCOME_FROM_INTEREST', 'INCOME_FROM_INTEREST', 0), + ('cash_account_for_shares_type_enum', 1, 'SHARES_REFERENCE', 'SHARES_REFERENCE', 0), + ('cash_account_for_shares_type_enum', 2, 'SHARES_SUSPENSE', 'SHARES_SUSPENSE', 0), + ('cash_account_for_shares_type_enum', 3, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_account_for_shares_type_enum', 4, 'SHARES_EQUITY', 'SHARES_EQUITY', 0), + ('client_transaction_type_enum', 1, 'PAY_CHARGE', 'PAY_CHARGE', 0), + ('client_transaction_type_enum', 2, 'WAIVE_CHARGE', 'WAIVE_CHARGE', 0), + ('entity_account_type_enum', 1, 'CLIENT', 'CLIENT', 0), + ('entity_account_type_enum', 2, 'LOAN', 'LOAN', 0), + ('entity_account_type_enum', 3, 'SAVINGS', 'SAVINGS', 0), + ('entity_account_type_enum', 4, 'CENTER', 'CENTER', 0), + ('entity_account_type_enum', 5, 'GROUP', 'GROUP', 0), + ('entity_account_type_enum', 6, 'SHARES', 'SHARES', 0), + ('financial_activity_type_enum', 100, 'ASSET_TRANSFER', 'ASSET_TRANSFER', 0), + ('financial_activity_type_enum', 101, 'CASH_AT_MAINVAULT', 'CASH_AT_MAINVAULT', 0), + ('financial_activity_type_enum', 102, 'CASH_AT_TELLER', 'CASH_AT_TELLER', 0), + ('financial_activity_type_enum', 103, 'ASSET_FUND_SOURCE', 'ASSET_FUND_SOURCE', 0), + ('financial_activity_type_enum', 200, 'LIABILITY_TRANSFER', 'LIABILITY_TRANSFER', 0), + ('financial_activity_type_enum', 201, 'PAYABLE_DIVIDENDS', 'PAYABLE_DIVIDENDS', 0), + ('financial_activity_type_enum', 300, 'OPENING_BALANCES_TRANSFER_CONTRA', 'OPENING_BALANCES_TRANSFER_CONTRA', 0), + ('glaccount_type_enum', 1, 'ASSET', 'ASSET', 0), + ('glaccount_type_enum', 2, 'LIABILITY', 'LIABILITY', 0), + ('glaccount_type_enum', 3, 'EQUITY', 'EQUITY', 0), + ('glaccount_type_enum', 4, 'INCOME', 'INCOME', 0), + ('glaccount_type_enum', 5, 'EXPENSE', 'EXPENSE', 0), ('interest_calculated_in_period_enum', 0, 'Daily', 'Daily', 0), ('interest_calculated_in_period_enum', 1, 'Same as repayment period', 'Same as repayment period', 0), ('interest_method_enum', 0, 'Declining Balance', 'Declining Balance', 0), ('interest_method_enum', 1, 'Flat', 'Flat', 0), ('interest_period_frequency_enum', 2, 'Per month', 'Per month', 0), ('interest_period_frequency_enum', 3, 'Per year', 'Per year', 0), + ('journal_entry_type_type_enum', 1, 'CREDIT', 'CREDIT', 0), + ('journal_entry_type_type_enum', 2, 'DEBIT', 'DEBIT', 0), ('loan_status_id', 0, 'Invalid', 'Invalid', 0), ('loan_status_id', 100, 'Submitted and awaiting approval', 'Submitted and awaiting approval', 0), ('loan_status_id', 200, 'Approved', 'Approved', 0), @@ -5284,6 +5571,29 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_strategy_id', 2, 'heavensfamily-strategy', 'Heavensfamily', 0), ('loan_transaction_strategy_id', 3, 'creocore-strategy', 'Creocore', 0), ('loan_transaction_strategy_id', 4, 'rbi-india-strategy', 'RBI (India)', 0), + ('loan_transaction_type_enum', 0, 'INVALID', 'INVALID', 0), + ('loan_transaction_type_enum', 1, 'DISBURSEMENT', 'DISBURSEMENT', 0), + ('loan_transaction_type_enum', 2, 'REPAYMENT', 'REPAYMENT', 0), + ('loan_transaction_type_enum', 3, 'CONTRA', 'CONTRA', 0), + ('loan_transaction_type_enum', 4, 'WAIVE_INTEREST', 'WAIVE_INTEREST', 0), + ('loan_transaction_type_enum', 5, 'REPAYMENT_AT_DISBURSEMENT', 'REPAYMENT_AT_DISBURSEMENT', 0), + ('loan_transaction_type_enum', 6, 'WRITEOFF', 'WRITEOFF', 0), + ('loan_transaction_type_enum', 7, 'MARKED_FOR_RESCHEDULING', 'MARKED_FOR_RESCHEDULING', 0), + ('loan_transaction_type_enum', 8, 'RECOVERY_REPAYMENT', 'RECOVERY_REPAYMENT', 0), + ('loan_transaction_type_enum', 9, 'WAIVE_CHARGES', 'WAIVE_CHARGES', 0), + ('loan_transaction_type_enum', 10, 'ACCRUAL', 'ACCRUAL', 0), + ('loan_transaction_type_enum', 12, 'INITIATE_TRANSFER', 'INITIATE_TRANSFER', 0), + ('loan_transaction_type_enum', 13, 'APPROVE_TRANSFER', 'APPROVE_TRANSFER', 0), + ('loan_transaction_type_enum', 14, 'WITHDRAW_TRANSFER', 'WITHDRAW_TRANSFER', 0), + ('loan_transaction_type_enum', 15, 'REJECT_TRANSFER', 'REJECT_TRANSFER', 0), + ('loan_transaction_type_enum', 16, 'REFUND', 'REFUND', 0), + ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), + ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), + ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), + ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), + ('portfolio_account_type_enum', 2, 'SAVING', 'EXPENSE', 0), + ('portfolio_account_type_enum', 3, 'PROVISIONING', 'PROVISIONING', 0), + ('portfolio_account_type_enum', 4, 'SHARES', 'SHARES', 0), ('processing_result_enum', 0, 'invalid', 'Invalid', 0), ('processing_result_enum', 1, 'processed', 'Processed', 0), ('processing_result_enum', 2, 'awaiting.approval', 'Awaiting Approval', 0), @@ -5291,6 +5601,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('repayment_period_frequency_enum', 0, 'Days', 'Days', 0), ('repayment_period_frequency_enum', 1, 'Weeks', 'Weeks', 0), ('repayment_period_frequency_enum', 2, 'Months', 'Months', 0), + ('savings_transaction_type_enum', 0, 'INVALID', 'INVALID', 0), ('savings_transaction_type_enum', 1, 'deposit', 'deposit', 0), ('savings_transaction_type_enum', 2, 'withdrawal', 'withdrawal', 1), ('savings_transaction_type_enum', 3, 'Interest Posting', 'Interest Posting', 0), @@ -5298,12 +5609,14 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('savings_transaction_type_enum', 5, 'Annual Fee', 'Annual Fee', 1), ('savings_transaction_type_enum', 6, 'Waive Charge', 'Waive Charge', 0), ('savings_transaction_type_enum', 7, 'Pay Charge', 'Pay Charge', 1), + ('savings_transaction_type_enum', 8, 'DIVIDEND_PAYOUT', 'DIVIDEND_PAYOUT', 0), ('savings_transaction_type_enum', 12, 'Initiate Transfer', 'Initiate Transfer', 0), ('savings_transaction_type_enum', 13, 'Approve Transfer', 'Approve Transfer', 0), ('savings_transaction_type_enum', 14, 'Withdraw Transfer', 'Withdraw Transfer', 0), ('savings_transaction_type_enum', 15, 'Reject Transfer', 'Reject Transfer', 0), ('savings_transaction_type_enum', 16, 'Written-Off', 'Written-Off', 0), ('savings_transaction_type_enum', 17, 'Overdraft Interest', 'Overdraft Interest', 0), + ('savings_transaction_type_enum', 19, 'WITHHOLD_TAX', 'WITHHOLD_TAX', 0), ('status_enum', 0, 'Invalid', 'Invalid', 0), ('status_enum', 100, 'Pending', 'Pending', 0), ('status_enum', 300, 'Active', 'Active', 0), @@ -5329,7 +5642,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.scheduler_detail +-- Dumping structure for table mifostenant-barebone.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5339,14 +5652,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.schema_version +-- Dumping structure for table mifostenant-barebone.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5366,7 +5679,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~324 rows (approximately) +-- Dumping data for table mifostenant-barebone.schema_version: ~269 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5619,6 +5932,14 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:29', 3, 1), (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:29', 239, 1), + (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-08-16 17:14:19', 243, 1), + (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-08-16 17:14:21', 1084, 1), + (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-08-16 17:14:21', 127, 1), + (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-08-16 17:14:21', 220, 1), + (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-08-16 17:14:22', 303, 1), + (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-08-16 17:14:22', 390, 1), + (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:23', 586, 1), + (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:23', 198, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1286928230, 'root', '2015-06-03 15:26:53', 22, 1), @@ -5696,7 +6017,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.sms_messages_outbound +-- Dumping structure for table mifostenant-barebone.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5715,12 +6036,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5741,7 +6062,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -5767,7 +6088,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_report +-- Dumping structure for table mifostenant-barebone.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5783,7 +6104,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~93 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report: ~125 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -5882,7 +6203,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.stretchy_report_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5897,7 +6218,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6239,7 +6560,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.x_registered_table +-- Dumping structure for table mifostenant-barebone.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6248,12 +6569,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-default.x_table_column_code_mappings +-- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6263,7 +6584,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 5e5510f7980..3df27888761 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,25 +1,6 @@ --- --- Licensed to the Apache Software Foundation (ASF) under one --- or more contributor license agreements. See the NOTICE file --- distributed with this work for additional information --- regarding copyright ownership. The ASF licenses this file --- to you under the Apache License, Version 2.0 (the --- "License"); you may not use this file except in compliance --- with the License. You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, --- software distributed under the License is distributed on an --- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY --- KIND, either express or implied. See the License for the --- specific language governing permissions and limitations --- under the License. --- - -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.21-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -29,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-reference.acc_accounting_rule +-- Dumping structure for table mifostenant-sampledata.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -51,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -78,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -139,7 +120,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_closure +-- Dumping structure for table mifostenant-sampledata.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -161,12 +142,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -178,14 +159,14 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_gl_journal_entry +-- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -238,12 +219,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_product_mapping +-- Dumping structure for table mifostenant-sampledata.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -260,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -284,7 +265,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.acc_rule_tags +-- Dumping structure for table mifostenant-sampledata.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -299,12 +280,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_account_number_format +-- Dumping structure for table mifostenant-sampledata.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -314,12 +295,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_cache +-- Dumping structure for table mifostenant-sampledata.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -327,14 +308,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_cache: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_configuration +-- Dumping structure for table mifostenant-sampledata.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -346,9 +327,9 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( `description` varchar(300) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=32 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -376,11 +357,12 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (28, 'interest-charged-from-date-same-as-disbursal-date', 0, NULL, 0, 0, NULL), (29, 'skip-repayment-on-first-day-of-month', 14, NULL, 0, 0, 'skipping repayment on first day of month'), (30, 'change-emi-if-repaymentdate-same-as-disbursementdate', 0, NULL, 1, 0, 'In tranche loans, if repayment date is same as tranche disbursement date then allow to change the emi amount'), - (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'); + (31, 'daily-tpt-limit', 0, NULL, 0, 0, 'Daily limit for third party transfers'), + (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_external_service +-- Dumping structure for table mifostenant-sampledata.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -389,7 +371,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -397,7 +379,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.c_external_service_properties +-- Dumping structure for table mifostenant-sampledata.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -407,7 +389,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -421,7 +403,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.job +-- Dumping structure for table mifostenant-sampledata.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -441,37 +423,38 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job: ~22 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-06-27 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-06-28 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-06-27 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-06-28 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-06-28 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-06-28 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-06-28 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-06-28 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-06-28 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-06-28 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-06-28 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-06-28 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-06-28 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-06-28 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-06-28 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-06-28 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-06-28 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-06-28 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-06-28 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-08-16 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-08-17 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-08-16 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-08-17 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-08-17 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-08-17 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-08-17 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-08-17 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-08-17 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-08-17 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-08-17 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-08-17 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-08-17 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-08-17 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-08-17 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-08-17 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-08-16 17:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.job_run_history +-- Dumping structure for table mifostenant-sampledata.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -486,9 +469,9 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job_run_history: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job_run_history: ~19 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -508,11 +491,12 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim (15, 5, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (16, 8, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (17, 1, 1, '2014-06-11 09:30:00', '2014-06-11 09:30:01', 'success', NULL, 'cron', NULL), - (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL); + (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL), + (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_taxonomy +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -525,7 +509,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -579,7 +563,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -590,14 +574,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.mix_xbrl_namespace +-- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -607,7 +591,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -620,7 +604,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_details +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -652,12 +636,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -681,12 +665,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -700,12 +684,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_account_transfer_transaction +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -734,12 +718,44 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser +-- Dumping structure for table mifostenant-sampledata.m_address +DROP TABLE IF EXISTS `m_address`; +CREATE TABLE IF NOT EXISTS `m_address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `street` varchar(100) DEFAULT NULL, + `address_line_1` varchar(100) DEFAULT NULL, + `address_line_2` varchar(100) DEFAULT NULL, + `address_line_3` varchar(100) DEFAULT NULL, + `town_village` varchar(100) DEFAULT NULL, + `city` varchar(100) DEFAULT NULL, + `county_district` varchar(100) DEFAULT NULL, + `state_province_id` int(11) DEFAULT NULL, + `country_id` int(11) DEFAULT NULL, + `postal_code` varchar(10) DEFAULT NULL, + `latitude` decimal(10,8) unsigned DEFAULT '0.00000000', + `longitude` decimal(10,8) unsigned DEFAULT '0.00000000', + `created_by` varchar(100) DEFAULT NULL, + `created_on` date DEFAULT NULL, + `updated_by` varchar(100) DEFAULT NULL, + `updated_on` date DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `address_fields_codefk1` (`state_province_id`), + KEY `address_fields_codefk2` (`country_id`), + CONSTRAINT `address_fields_codefk1` FOREIGN KEY (`state_province_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_address: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_address` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -768,7 +784,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -779,7 +795,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser_previous_password +-- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -791,12 +807,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_appuser_role +-- Dumping structure for table mifostenant-sampledata.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -808,7 +824,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -818,7 +834,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar +-- Dumping structure for table mifostenant-sampledata.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -842,12 +858,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar_history +-- Dumping structure for table mifostenant-sampledata.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -869,12 +885,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_calendar_instance +-- Dumping structure for table mifostenant-sampledata.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -886,12 +902,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_cashiers +-- Dumping structure for table mifostenant-sampledata.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -910,12 +926,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_cashier_transactions +-- Dumping structure for table mifostenant-sampledata.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -933,12 +949,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_charge +-- Dumping structure for table mifostenant-sampledata.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -968,14 +984,14 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client +-- Dumping structure for table mifostenant-sampledata.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1018,6 +1034,8 @@ CREATE TABLE IF NOT EXISTS `m_client` ( `reactivated_on_date` date DEFAULT NULL, `reactivated_on_userid` bigint(20) DEFAULT NULL, `legal_form_enum` int(5) DEFAULT NULL, + `reopened_on_date` date DEFAULT NULL, + `reopened_by_userid` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `account_no_UNIQUE` (`account_no`), UNIQUE KEY `external_id` (`external_id`), @@ -1045,25 +1063,46 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; -INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`) VALUES - (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (2, '000000002', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Johnson', NULL, 'D', NULL, 'Johnson D', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (4, '000000004', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Williams', NULL, 'G', NULL, 'Williams G', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (5, '000000005', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Harris', NULL, 'P', NULL, 'Harris P', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (6, '000000006', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Allen', NULL, 'E', NULL, 'Allen E', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (7, '000000007', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Scott', NULL, 'C', NULL, 'Scott C', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), - (8, '000000008', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Robinson', NULL, 'R', NULL, 'Robinson R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); +INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`, `reopened_on_date`, `reopened_by_userid`) VALUES + (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (2, '000000002', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Johnson', NULL, 'D', NULL, 'Johnson D', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (4, '000000004', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Williams', NULL, 'G', NULL, 'Williams G', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (5, '000000005', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Harris', NULL, 'P', NULL, 'Harris P', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (6, '000000006', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Allen', NULL, 'E', NULL, 'Allen E', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (7, '000000007', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Scott', NULL, 'C', NULL, 'Scott C', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), + (8, '000000008', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Robinson', NULL, 'R', NULL, 'Robinson R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_attendance +-- Dumping structure for table mifostenant-sampledata.m_client_address +DROP TABLE IF EXISTS `m_client_address`; +CREATE TABLE IF NOT EXISTS `m_client_address` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `client_id` bigint(20) NOT NULL DEFAULT '0', + `address_id` bigint(20) NOT NULL DEFAULT '0', + `address_type_id` int(11) NOT NULL DEFAULT '0', + `is_active` tinyint(4) NOT NULL DEFAULT '0', + PRIMARY KEY (`id`), + KEY `addressIdFk` (`address_id`), + KEY `address_codefk` (`address_type_id`), + KEY `clientaddressfk` (`client_id`), + CONSTRAINT `address_codefk` FOREIGN KEY (`address_type_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_client_address: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1077,12 +1116,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_charge +-- Dumping structure for table mifostenant-sampledata.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1108,12 +1147,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1127,12 +1166,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_identifier +-- Dumping structure for table mifostenant-sampledata.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1155,12 +1194,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_non_person +-- Dumping structure for table mifostenant-sampledata.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1176,12 +1215,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_client_transaction +-- Dumping structure for table mifostenant-sampledata.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1204,12 +1243,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_code +-- Dumping structure for table mifostenant-sampledata.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1217,9 +1256,9 @@ CREATE TABLE IF NOT EXISTS `m_code` ( `is_system_defined` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_name` (`code_name`) -) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code: ~25 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1246,11 +1285,14 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (23, 'LoanRescheduleReason', 1), (24, 'Constitution', 1), (25, 'Main Business Line', 1), - (26, 'WriteOffReasons', 1); + (26, 'WriteOffReasons', 1), + (27, 'STATE', 1), + (28, 'COUNTRY', 1), + (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_code_value +-- Dumping structure for table mifostenant-sampledata.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1260,45 +1302,46 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( `order_position` int(11) NOT NULL DEFAULT '0', `code_score` int(11) DEFAULT NULL, `is_active` tinyint(1) NOT NULL DEFAULT '1', + `is_mandatory` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `code_value` (`code_id`,`code_value`), KEY `FKCFCEA42640BE071Z` (`code_id`), CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; -INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`) VALUES - (1, 1, 'Passport Id', NULL, 1, NULL, 1), - (2, 1, 'Government Id', NULL, 2, NULL, 1), - (3, 1, 'Drivers License', NULL, 3, NULL, 1), - (4, 1, 'Any Other Id Type', NULL, 4, NULL, 1), - (5, 6, 'Spouse', NULL, 0, NULL, 1), - (6, 6, 'Parent', NULL, 0, NULL, 1), - (7, 6, 'Sibling', NULL, 0, NULL, 1), - (8, 6, 'Business Associate', NULL, 0, NULL, 1), - (9, 6, 'Other', NULL, 0, NULL, 1), - (10, 3, 'Cattle Rearing', NULL, 104, NULL, 1), - (11, 3, 'Others', NULL, 105, NULL, 1), - (12, 3, 'Tailoring Shop', NULL, 101, NULL, 1), - (13, 3, 'Small Provisions Store', NULL, 102, NULL, 1), - (14, 3, 'Agriculture', NULL, 103, NULL, 1), - (15, 14, 'Blacklisted', NULL, 1, NULL, 1), - (16, 14, 'Deceased', NULL, 2, NULL, 1), - (17, 14, 'Transferred', NULL, 3, NULL, 1), - (18, 14, 'Left', NULL, 4, NULL, 1), - (19, 14, 'others', NULL, 5, NULL, 1), - (20, 1, 'Voter ID', NULL, 6, NULL, 1), - (21, 1, 'Ration Card', NULL, 5, NULL, 1), - (22, 4, 'Male', NULL, 1, NULL, 1), - (24, 4, 'Female', NULL, 2, NULL, 1), - (25, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1), - (26, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1), - (27, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1); +INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES + (1, 1, 'Passport Id', NULL, 1, NULL, 1, 0), + (2, 1, 'Government Id', NULL, 2, NULL, 1, 0), + (3, 1, 'Drivers License', NULL, 3, NULL, 1, 0), + (4, 1, 'Any Other Id Type', NULL, 4, NULL, 1, 0), + (5, 6, 'Spouse', NULL, 0, NULL, 1, 0), + (6, 6, 'Parent', NULL, 0, NULL, 1, 0), + (7, 6, 'Sibling', NULL, 0, NULL, 1, 0), + (8, 6, 'Business Associate', NULL, 0, NULL, 1, 0), + (9, 6, 'Other', NULL, 0, NULL, 1, 0), + (10, 3, 'Cattle Rearing', NULL, 104, NULL, 1, 0), + (11, 3, 'Others', NULL, 105, NULL, 1, 0), + (12, 3, 'Tailoring Shop', NULL, 101, NULL, 1, 0), + (13, 3, 'Small Provisions Store', NULL, 102, NULL, 1, 0), + (14, 3, 'Agriculture', NULL, 103, NULL, 1, 0), + (15, 14, 'Blacklisted', NULL, 1, NULL, 1, 0), + (16, 14, 'Deceased', NULL, 2, NULL, 1, 0), + (17, 14, 'Transferred', NULL, 3, NULL, 1, 0), + (18, 14, 'Left', NULL, 4, NULL, 1, 0), + (19, 14, 'others', NULL, 5, NULL, 1, 0), + (20, 1, 'Voter ID', NULL, 6, NULL, 1, 0), + (21, 1, 'Ration Card', NULL, 5, NULL, 1, 0), + (22, 4, 'Male', NULL, 1, NULL, 1, 0), + (24, 4, 'Female', NULL, 2, NULL, 1, 0), + (25, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1, 0), + (26, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1, 0), + (27, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_currency +-- Dumping structure for table mifostenant-sampledata.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1312,7 +1355,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1481,7 +1524,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1496,12 +1539,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1518,12 +1561,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1550,12 +1593,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1566,12 +1609,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1584,12 +1627,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1611,12 +1654,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_document +-- Dumping structure for table mifostenant-sampledata.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1632,12 +1675,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_relation +-- Dumping structure for table mifostenant-sampledata.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1648,7 +1691,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1659,7 +1702,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_to_entity_access +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1675,12 +1718,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1694,12 +1737,49 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_field_configuration +DROP TABLE IF EXISTS `m_field_configuration`; +CREATE TABLE IF NOT EXISTS `m_field_configuration` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `entity` varchar(100) NOT NULL, + `subentity` varchar(100) NOT NULL, + `field` varchar(100) NOT NULL, + `is_enabled` tinyint(4) NOT NULL, + `is_mandatory` tinyint(4) NOT NULL, + `validation_regex` varchar(50) DEFAULT NULL, + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_field_configuration: ~18 rows (approximately) +/*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; +INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES + (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), + (2, 'ADDRESS', 'CLIENT', 'street', 1, 1, ''), + (3, 'ADDRESS', 'CLIENT', 'addressLine1', 1, 0, ''), + (4, 'ADDRESS', 'CLIENT', 'addressLine2', 1, 0, ''), + (5, 'ADDRESS', 'CLIENT', 'addressLine3', 1, 0, ''), + (6, 'ADDRESS', 'CLIENT', 'townVillage', 0, 0, ''), + (7, 'ADDRESS', 'CLIENT', 'city', 1, 0, ''), + (8, 'ADDRESS', 'CLIENT', 'countyDistrict', 0, 0, ''), + (9, 'ADDRESS', 'CLIENT', 'stateProvinceId', 1, 0, ''), + (10, 'ADDRESS', 'CLIENT', 'countryId', 1, 0, ''), + (11, 'ADDRESS', 'CLIENT', 'postalCode', 1, 0, ''), + (12, 'ADDRESS', 'CLIENT', 'latitude', 0, 0, ''), + (13, 'ADDRESS', 'CLIENT', 'longitude', 0, 0, ''), + (14, 'ADDRESS', 'CLIENT', 'createdBy', 1, 0, ''), + (15, 'ADDRESS', 'CLIENT', 'createdOn', 1, 0, ''), + (16, 'ADDRESS', 'CLIENT', 'updatedBy', 1, 0, ''), + (17, 'ADDRESS', 'CLIENT', 'updatedOn', 1, 0, ''), + (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); +/*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1714,12 +1794,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_floating_rates_periods +-- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1737,12 +1817,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_fund +-- Dumping structure for table mifostenant-sampledata.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1753,14 +1833,14 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group +-- Dumping structure for table mifostenant-sampledata.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1796,7 +1876,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -1806,7 +1886,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_client +-- Dumping structure for table mifostenant-sampledata.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1817,7 +1897,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -1829,7 +1909,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_level +-- Dumping structure for table mifostenant-sampledata.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1843,7 +1923,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1851,7 +1931,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_group_roles +-- Dumping structure for table mifostenant-sampledata.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1868,12 +1948,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor +-- Dumping structure for table mifostenant-sampledata.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1901,12 +1981,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor_funding_details +-- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1924,12 +2004,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_guarantor_transaction +-- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1946,12 +2026,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_holiday +-- Dumping structure for table mifostenant-sampledata.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1966,12 +2046,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_holiday_office +-- Dumping structure for table mifostenant-sampledata.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1983,12 +2063,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook +-- Dumping structure for table mifostenant-sampledata.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2007,12 +2087,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_configuration +-- Dumping structure for table mifostenant-sampledata.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2025,12 +2105,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_registered_events +-- Dumping structure for table mifostenant-sampledata.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2042,12 +2122,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_schema +-- Dumping structure for table mifostenant-sampledata.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2061,7 +2141,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2074,7 +2154,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_hook_templates +-- Dumping structure for table mifostenant-sampledata.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2082,7 +2162,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -2090,7 +2170,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_image +-- Dumping structure for table mifostenant-sampledata.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2099,12 +2179,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2120,12 +2200,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2137,12 +2217,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2160,12 +2240,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan +-- Dumping structure for table mifostenant-sampledata.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2271,6 +2351,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( `version` int(15) NOT NULL DEFAULT '1', `writeoff_reason_cv_id` int(11) DEFAULT NULL, `loan_sub_status_id` smallint(5) DEFAULT NULL, + `is_topup` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `loan_account_no_UNIQUE` (`account_no`), UNIQUE KEY `loan_externalid_UNIQUE` (`external_id`), @@ -2296,8 +2377,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2305,14 +2386,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; -INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`) VALUES - (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL); +INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`, `is_topup`) VALUES + (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL, 0); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2345,12 +2426,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2363,12 +2444,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_arrears_aging +-- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2382,12 +2463,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2418,14 +2499,14 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2440,12 +2521,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_collateral +-- Dumping structure for table mifostenant-sampledata.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2460,12 +2541,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2478,12 +2559,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2505,12 +2586,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2522,12 +2603,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2546,12 +2627,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2565,12 +2646,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2583,12 +2664,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2612,12 +2693,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2657,7 +2738,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -2688,7 +2769,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2713,25 +2794,20 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_reschedule_request +-- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `loan_id` bigint(20) NOT NULL, `status_enum` smallint(5) NOT NULL, `reschedule_from_installment` smallint(5) NOT NULL COMMENT 'Rescheduling will start from this installment', - `grace_on_principal` smallint(5) DEFAULT NULL COMMENT 'Number of installments that should be added with 0 principal amount', - `grace_on_interest` smallint(5) DEFAULT NULL COMMENT 'Number of installments that should be added with 0 interest rate', `reschedule_from_date` date NOT NULL COMMENT 'Rescheduling will start from the installment with due date similar to this date.', - `extra_terms` smallint(5) DEFAULT NULL COMMENT 'Number of extra terms to be added to the schedule', - `interest_rate` decimal(19,6) DEFAULT NULL COMMENT 'If provided, the interest rate for the unpaid installments will be recalculated', `recalculate_interest` tinyint(1) DEFAULT NULL COMMENT 'If set to 1, interest will be recalculated starting from the reschedule period.', - `adjusted_due_date` date DEFAULT NULL COMMENT 'New due date for the first rescheduled installment', `reschedule_reason_cv_id` int(11) DEFAULT NULL COMMENT 'ID of code value of reason for rescheduling', `reschedule_reason_comment` varchar(500) DEFAULT NULL COMMENT 'Text provided in addition to the reason code value', `submitted_on_date` date NOT NULL, @@ -2753,12 +2829,30 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_term_variations +-- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping +DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; +CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_reschedule_request_id` bigint(20) NOT NULL, + `loan_term_variations_id` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + KEY `FK__m_loan_reschedule_request` (`loan_reschedule_request_id`), + KEY `FK__m_loan_term_variations` (`loan_term_variations_id`), + CONSTRAINT `FK__m_loan_reschedule_request` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`), + CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2769,17 +2863,41 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `date_value` date DEFAULT NULL, `is_specific_to_installment` tinyint(4) NOT NULL DEFAULT '0', `applied_on_loan_status` smallint(5) NOT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', + `parent_id` bigint(20) DEFAULT NULL, PRIMARY KEY (`id`), KEY `FK_loan_id_m_loan_id` (`loan_id`), CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_tranche_charges +-- Dumping structure for table mifostenant-sampledata.m_loan_topup +DROP TABLE IF EXISTS `m_loan_topup`; +CREATE TABLE IF NOT EXISTS `m_loan_topup` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `loan_id` bigint(20) NOT NULL, + `closure_loan_id` bigint(20) NOT NULL, + `account_transfer_details_id` bigint(20) DEFAULT NULL, + `topup_amount` decimal(19,6) DEFAULT NULL, + PRIMARY KEY (`id`), + KEY `m_loan_topup_FK_loan_id` (`loan_id`), + KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), + KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_loan_topup: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2792,12 +2910,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2810,12 +2928,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_transaction +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2848,12 +2966,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2871,12 +2989,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2899,12 +3017,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_meeting +-- Dumping structure for table mifostenant-sampledata.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2915,12 +3033,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_note +-- Dumping structure for table mifostenant-sampledata.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2954,12 +3072,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_office +-- Dumping structure for table mifostenant-sampledata.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2975,7 +3093,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -2984,7 +3102,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_office_transaction +-- Dumping structure for table mifostenant-sampledata.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3002,12 +3120,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_organisation_currency +-- Dumping structure for table mifostenant-sampledata.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3020,14 +3138,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_organisation_currency: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_password_validation_policy +-- Dumping structure for table mifostenant-sampledata.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3038,7 +3156,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -3046,7 +3164,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_payment_detail +-- Dumping structure for table mifostenant-sampledata.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3061,12 +3179,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_payment_type +-- Dumping structure for table mifostenant-sampledata.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3077,12 +3195,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_permission +-- Dumping structure for table mifostenant-sampledata.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3093,9 +3211,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=739 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~716 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_permission: ~713 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3813,11 +3931,26 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (735, 'SSBENEFICIARYTPT', 'UPDATE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'UPDATE', 0), (736, 'SSBENEFICIARYTPT', 'DELETE_SSBENEFICIARYTPT', 'SSBENEFICIARYTPT', 'DELETE', 0), (737, 'portfolio', 'FORECLOSURE_LOAN', 'LOAN', 'FORECLOSURE', 0), - (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0); + (738, 'portfolio', 'FORECLOSURE_LOAN_CHECKER', 'LOAN', 'FORECLOSURE_CHECKER', 0), + (739, 'portfolio', 'CREATE_ADDRESS', 'ADDRESS', 'CREATE', 0), + (740, 'portfolio', 'CREATE_ADDRESS_CHECKER', 'ADDRESS', 'CREATE_CHECKER', 1), + (741, 'portfolio', 'UPDATE_ADDRESS', 'ADDRESS', 'UPDATE', 0), + (742, 'portfolio', 'UPDATE_ADDRESS_CHECKER', 'ADDRESS', 'UPDATE_CHECKER', 1), + (743, 'portfolio', 'READ_ADDRESS', 'ADDRESS', 'READ', 0), + (744, 'portfolio', 'DELETE_ADDRESS', 'ADDRESS', 'DELETE', 0), + (745, 'portfolio', 'DELETE_ADDRESS_CHECKER', 'ADDRESS', 'DELETE_CHECKER', 1), + (746, 'jobs', 'CREATE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'CREATE', 0), + (747, 'jobs', 'UPDATE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'UPDATE', 0), + (748, 'jobs', 'DELETE_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'DELETE', 0), + (749, 'jobs', 'READ_REPORTMAILINGJOB', 'REPORTMAILINGJOB', 'READ', 0), + (750, 'portfolio', 'UNDOREJECT_CLIENT', 'CLIENT', 'UNDOREJECT', 1), + (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), + (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), + (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_portfolio_account_associations +-- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3838,12 +3971,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_portfolio_command_source +-- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3881,7 +4014,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~71 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -3959,7 +4092,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan +-- Dumping structure for table mifostenant-sampledata.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4015,6 +4148,8 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( `account_moves_out_of_npa_only_on_arrears_completion` tinyint(1) NOT NULL DEFAULT '0', `can_define_fixed_emi_amount` tinyint(1) NOT NULL DEFAULT '0', `instalment_amount_in_multiples_of` decimal(19,6) DEFAULT NULL, + `can_use_for_topup` tinyint(1) NOT NULL DEFAULT '0', + `sync_expected_with_disbursement_date` tinyint(4) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `unq_name` (`name`), UNIQUE KEY `unq_short_name` (`short_name`), @@ -4025,14 +4160,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; -INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`) VALUES - (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL); +INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`, `can_use_for_topup`, `sync_expected_with_disbursement_date`) VALUES + (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL, 0, 0); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4043,14 +4178,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4068,14 +4203,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4093,12 +4228,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4111,12 +4246,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4142,12 +4277,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4159,12 +4294,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4180,12 +4315,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_product_mix +-- Dumping structure for table mifostenant-sampledata.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4198,12 +4333,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_criteria +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4220,12 +4355,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4247,12 +4382,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provisioning_history +-- Dumping structure for table mifostenant-sampledata.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4268,12 +4403,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_provision_category +-- Dumping structure for table mifostenant-sampledata.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4283,7 +4418,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4293,7 +4428,91 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_role +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job +DROP TABLE IF EXISTS `m_report_mailing_job`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `name` varchar(100) NOT NULL, + `description` text, + `start_datetime` datetime NOT NULL, + `recurrence` varchar(100) DEFAULT NULL, + `created_date` date NOT NULL, + `createdby_id` bigint(20) NOT NULL, + `lastmodified_date` date DEFAULT NULL, + `lastmodifiedby_id` bigint(20) DEFAULT NULL, + `email_recipients` text NOT NULL, + `email_subject` varchar(100) NOT NULL, + `email_message` text NOT NULL, + `email_attachment_file_format` varchar(10) NOT NULL, + `stretchy_report_id` int(11) NOT NULL, + `stretchy_report_param_map` text, + `previous_run_datetime` datetime DEFAULT NULL, + `next_run_datetime` datetime DEFAULT NULL, + `previous_run_status` varchar(10) DEFAULT NULL, + `previous_run_error_log` text, + `previous_run_error_message` text, + `number_of_runs` int(11) NOT NULL DEFAULT '0', + `is_active` tinyint(1) NOT NULL DEFAULT '0', + `is_deleted` tinyint(1) NOT NULL DEFAULT '0', + `run_as_userid` bigint(20) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_name` (`name`), + KEY `createdby_id` (`createdby_id`), + KEY `lastmodifiedby_id` (`lastmodifiedby_id`), + KEY `stretchy_report_id` (`stretchy_report_id`), + KEY `run_as_userid` (`run_as_userid`), + CONSTRAINT `m_report_mailing_job_ibfk_1` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_3` FOREIGN KEY (`stretchy_report_id`) REFERENCES `stretchy_report` (`id`), + CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_configuration +DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(50) NOT NULL, + `value` varchar(200) NOT NULL, + PRIMARY KEY (`id`), + UNIQUE KEY `unique_name` (`name`) +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job_configuration: ~4 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; +INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES + (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), + (2, 'GMAIL_SMTP_PORT', '587'), + (3, 'GMAIL_SMTP_USERNAME', ''), + (4, 'GMAIL_SMTP_PASSWORD', ''); +/*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_run_history +DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; +CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `job_id` bigint(20) NOT NULL, + `start_datetime` datetime NOT NULL, + `end_datetime` datetime NOT NULL, + `status` varchar(10) NOT NULL, + `error_message` text, + `error_log` text, + PRIMARY KEY (`id`), + KEY `job_id` (`job_id`), + CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job_run_history: ~0 rows (approximately) +/*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; +/*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; + + +-- Dumping structure for table mifostenant-sampledata.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4304,14 +4523,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_role_permission +-- Dumping structure for table mifostenant-sampledata.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4323,14 +4542,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role_permission: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account +-- Dumping structure for table mifostenant-sampledata.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4406,12 +4625,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4442,12 +4661,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4461,12 +4680,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4481,12 +4700,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4504,12 +4723,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_transaction +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4536,12 +4755,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4555,12 +4774,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4576,12 +4795,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4600,12 +4819,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_product +-- Dumping structure for table mifostenant-sampledata.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4648,14 +4867,14 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_savings_product_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4666,12 +4885,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4687,12 +4906,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4705,12 +4924,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account +-- Dumping structure for table mifostenant-sampledata.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4764,12 +4983,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_charge +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4798,12 +5017,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4817,12 +5036,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_dividend_details +-- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4838,12 +5057,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_account_transactions +-- Dumping structure for table mifostenant-sampledata.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4860,12 +5079,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product +-- Dumping structure for table mifostenant-sampledata.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4904,12 +5123,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_charge +-- Dumping structure for table mifostenant-sampledata.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4920,12 +5139,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4947,12 +5166,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_share_product_market_price +-- Dumping structure for table mifostenant-sampledata.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4964,12 +5183,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_staff +-- Dumping structure for table mifostenant-sampledata.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4995,7 +5214,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -5004,7 +5223,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_staff_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5023,12 +5242,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_surveys +-- Dumping structure for table mifostenant-sampledata.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5041,12 +5260,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_components +-- Dumping structure for table mifostenant-sampledata.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5060,12 +5279,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_lookup_tables +-- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5080,12 +5299,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_questions +-- Dumping structure for table mifostenant-sampledata.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5100,12 +5319,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_responses +-- Dumping structure for table mifostenant-sampledata.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5118,12 +5337,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_survey_scorecards +-- Dumping structure for table mifostenant-sampledata.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5147,12 +5366,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_component +-- Dumping structure for table mifostenant-sampledata.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5178,12 +5397,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_component_history +-- Dumping structure for table mifostenant-sampledata.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5204,12 +5423,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_group +-- Dumping structure for table mifostenant-sampledata.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5225,12 +5444,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tax_group_mappings +-- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5253,12 +5472,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_tellers +-- Dumping structure for table mifostenant-sampledata.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5280,12 +5499,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_template +-- Dumping structure for table mifostenant-sampledata.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5297,12 +5516,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5312,12 +5531,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_template_m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5327,12 +5546,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.m_working_days +-- Dumping structure for table mifostenant-sampledata.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5342,14 +5561,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_access_token +-- Dumping structure for table mifostenant-sampledata.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5361,12 +5580,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_client_details +-- Dumping structure for table mifostenant-sampledata.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5383,14 +5602,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_client_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.oauth_refresh_token +-- Dumping structure for table mifostenant-sampledata.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5398,12 +5617,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_likelihoods +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5412,12 +5631,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5427,12 +5646,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ppi_scores +-- Dumping structure for table mifostenant-sampledata.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5441,7 +5660,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5467,7 +5686,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5478,7 +5697,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5491,19 +5710,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.rpt_sequence +-- Dumping structure for table mifostenant-sampledata.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.r_enum_value +-- Dumping structure for table mifostenant-sampledata.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5516,17 +5735,84 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.r_enum_value: ~64 rows (approximately) +-- Dumping data for table mifostenant-sampledata.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES + ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), + ('account_type_type_enum', 1, 'INDIVIDUAL', 'INDIVIDUAL', 0), + ('account_type_type_enum', 2, 'GROUP', 'GROUP', 0), + ('account_type_type_enum', 3, 'JLG', 'JLG', 0), + ('accrual_accounts_for_loan_type_enum', 1, 'FUND_SOURCE', 'FUND_SOURCE', 0), + ('accrual_accounts_for_loan_type_enum', 2, 'LOAN_PORTFOLIO', 'LOAN_PORTFOLIO', 0), + ('accrual_accounts_for_loan_type_enum', 3, 'INTEREST_ON_LOANS', 'INTEREST_ON_LOANS', 0), + ('accrual_accounts_for_loan_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('accrual_accounts_for_loan_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('accrual_accounts_for_loan_type_enum', 6, 'LOSSES_WRITTEN_OFF', 'LOSSES_WRITTEN_OFF', 0), + ('accrual_accounts_for_loan_type_enum', 7, 'INTEREST_RECEIVABLE', 'INTEREST_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 8, 'FEES_RECEIVABLE', 'FEES_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 9, 'PENALTIES_RECEIVABLE', 'PENALTIES_RECEIVABLE', 0), + ('accrual_accounts_for_loan_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('accrual_accounts_for_loan_type_enum', 11, 'OVERPAYMENT', 'OVERPAYMENT', 0), + ('accrual_accounts_for_loan_type_enum', 12, 'INCOME_FROM_RECOVERY', 'INCOME_FROM_RECOVERY', 0), ('amortization_method_enum', 0, 'Equal principle payments', 'Equal principle payments', 0), ('amortization_method_enum', 1, 'Equal installments', 'Equal installments', 0), + ('calendar_type_enum', 0, 'INVALID', 'INVALID', 0), + ('calendar_type_enum', 1, 'CLIENTS', 'CLIENTS', 0), + ('calendar_type_enum', 2, 'GROUPS', 'GROUPS', 0), + ('calendar_type_enum', 3, 'LOANS', 'LOANS', 0), + ('calendar_type_enum', 4, 'CENTERS', 'CENTERS', 0), + ('calendar_type_enum', 5, 'SAVINGS', 'SAVINGS', 0), + ('calendar_type_enum', 6, 'LOAN_RECALCULATION_REST_DETAIL', 'LOAN_RECALCULATION_REST_DETAIL', 0), + ('calendar_type_enum', 7, 'LOAN_RECALCULATION_COMPOUNDING_DETAIL', 'LOAN_RECALCULATION_COMPOUNDING_DETAIL', 0), + ('cash_accounts_for_loan_type_enum', 1, 'FUND_SOURCE', 'FUND_SOURCE', 0), + ('cash_accounts_for_loan_type_enum', 2, 'LOAN_PORTFOLIO', 'LOAN_PORTFOLIO', 0), + ('cash_accounts_for_loan_type_enum', 3, 'INTEREST_ON_LOANS', 'INTEREST_ON_LOANS', 0), + ('cash_accounts_for_loan_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_accounts_for_loan_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('cash_accounts_for_loan_type_enum', 6, 'LOSSES_WRITTEN_OFF', 'LOSSES_WRITTEN_OFF', 0), + ('cash_accounts_for_loan_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('cash_accounts_for_loan_type_enum', 11, 'OVERPAYMENT', 'OVERPAYMENT', 0), + ('cash_accounts_for_loan_type_enum', 12, 'INCOME_FROM_RECOVERY', 'INCOME_FROM_RECOVERY', 0), + ('cash_accounts_for_savings_type_enum', 1, 'SAVINGS_REFERENCE', 'SAVINGS_REFERENCE', 0), + ('cash_accounts_for_savings_type_enum', 2, 'SAVINGS_CONTROL', 'SAVINGS_CONTROL', 0), + ('cash_accounts_for_savings_type_enum', 3, 'INTEREST_ON_SAVINGS', 'INTEREST_ON_SAVINGS', 0), + ('cash_accounts_for_savings_type_enum', 4, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_accounts_for_savings_type_enum', 5, 'INCOME_FROM_PENALTIES', 'INCOME_FROM_PENALTIES', 0), + ('cash_accounts_for_savings_type_enum', 10, 'TRANSFERS_SUSPENSE', 'TRANSFERS_SUSPENSE', 0), + ('cash_accounts_for_savings_type_enum', 11, 'OVERDRAFT_PORTFOLIO_CONTROL', 'OVERDRAFT_PORTFOLIO_CONTROL', 0), + ('cash_accounts_for_savings_type_enum', 12, 'INCOME_FROM_INTEREST', 'INCOME_FROM_INTEREST', 0), + ('cash_account_for_shares_type_enum', 1, 'SHARES_REFERENCE', 'SHARES_REFERENCE', 0), + ('cash_account_for_shares_type_enum', 2, 'SHARES_SUSPENSE', 'SHARES_SUSPENSE', 0), + ('cash_account_for_shares_type_enum', 3, 'INCOME_FROM_FEES', 'INCOME_FROM_FEES', 0), + ('cash_account_for_shares_type_enum', 4, 'SHARES_EQUITY', 'SHARES_EQUITY', 0), + ('client_transaction_type_enum', 1, 'PAY_CHARGE', 'PAY_CHARGE', 0), + ('client_transaction_type_enum', 2, 'WAIVE_CHARGE', 'WAIVE_CHARGE', 0), + ('entity_account_type_enum', 1, 'CLIENT', 'CLIENT', 0), + ('entity_account_type_enum', 2, 'LOAN', 'LOAN', 0), + ('entity_account_type_enum', 3, 'SAVINGS', 'SAVINGS', 0), + ('entity_account_type_enum', 4, 'CENTER', 'CENTER', 0), + ('entity_account_type_enum', 5, 'GROUP', 'GROUP', 0), + ('entity_account_type_enum', 6, 'SHARES', 'SHARES', 0), + ('financial_activity_type_enum', 100, 'ASSET_TRANSFER', 'ASSET_TRANSFER', 0), + ('financial_activity_type_enum', 101, 'CASH_AT_MAINVAULT', 'CASH_AT_MAINVAULT', 0), + ('financial_activity_type_enum', 102, 'CASH_AT_TELLER', 'CASH_AT_TELLER', 0), + ('financial_activity_type_enum', 103, 'ASSET_FUND_SOURCE', 'ASSET_FUND_SOURCE', 0), + ('financial_activity_type_enum', 200, 'LIABILITY_TRANSFER', 'LIABILITY_TRANSFER', 0), + ('financial_activity_type_enum', 201, 'PAYABLE_DIVIDENDS', 'PAYABLE_DIVIDENDS', 0), + ('financial_activity_type_enum', 300, 'OPENING_BALANCES_TRANSFER_CONTRA', 'OPENING_BALANCES_TRANSFER_CONTRA', 0), + ('glaccount_type_enum', 1, 'ASSET', 'ASSET', 0), + ('glaccount_type_enum', 2, 'LIABILITY', 'LIABILITY', 0), + ('glaccount_type_enum', 3, 'EQUITY', 'EQUITY', 0), + ('glaccount_type_enum', 4, 'INCOME', 'INCOME', 0), + ('glaccount_type_enum', 5, 'EXPENSE', 'EXPENSE', 0), ('interest_calculated_in_period_enum', 0, 'Daily', 'Daily', 0), ('interest_calculated_in_period_enum', 1, 'Same as repayment period', 'Same as repayment period', 0), ('interest_method_enum', 0, 'Declining Balance', 'Declining Balance', 0), ('interest_method_enum', 1, 'Flat', 'Flat', 0), ('interest_period_frequency_enum', 2, 'Per month', 'Per month', 0), ('interest_period_frequency_enum', 3, 'Per year', 'Per year', 0), + ('journal_entry_type_type_enum', 1, 'CREDIT', 'CREDIT', 0), + ('journal_entry_type_type_enum', 2, 'DEBIT', 'DEBIT', 0), ('loan_status_id', 0, 'Invalid', 'Invalid', 0), ('loan_status_id', 100, 'Submitted and awaiting approval', 'Submitted and awaiting approval', 0), ('loan_status_id', 200, 'Approved', 'Approved', 0), @@ -5541,6 +5827,29 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_strategy_id', 2, 'heavensfamily-strategy', 'Heavensfamily', 0), ('loan_transaction_strategy_id', 3, 'creocore-strategy', 'Creocore', 0), ('loan_transaction_strategy_id', 4, 'rbi-india-strategy', 'RBI (India)', 0), + ('loan_transaction_type_enum', 0, 'INVALID', 'INVALID', 0), + ('loan_transaction_type_enum', 1, 'DISBURSEMENT', 'DISBURSEMENT', 0), + ('loan_transaction_type_enum', 2, 'REPAYMENT', 'REPAYMENT', 0), + ('loan_transaction_type_enum', 3, 'CONTRA', 'CONTRA', 0), + ('loan_transaction_type_enum', 4, 'WAIVE_INTEREST', 'WAIVE_INTEREST', 0), + ('loan_transaction_type_enum', 5, 'REPAYMENT_AT_DISBURSEMENT', 'REPAYMENT_AT_DISBURSEMENT', 0), + ('loan_transaction_type_enum', 6, 'WRITEOFF', 'WRITEOFF', 0), + ('loan_transaction_type_enum', 7, 'MARKED_FOR_RESCHEDULING', 'MARKED_FOR_RESCHEDULING', 0), + ('loan_transaction_type_enum', 8, 'RECOVERY_REPAYMENT', 'RECOVERY_REPAYMENT', 0), + ('loan_transaction_type_enum', 9, 'WAIVE_CHARGES', 'WAIVE_CHARGES', 0), + ('loan_transaction_type_enum', 10, 'ACCRUAL', 'ACCRUAL', 0), + ('loan_transaction_type_enum', 12, 'INITIATE_TRANSFER', 'INITIATE_TRANSFER', 0), + ('loan_transaction_type_enum', 13, 'APPROVE_TRANSFER', 'APPROVE_TRANSFER', 0), + ('loan_transaction_type_enum', 14, 'WITHDRAW_TRANSFER', 'WITHDRAW_TRANSFER', 0), + ('loan_transaction_type_enum', 15, 'REJECT_TRANSFER', 'REJECT_TRANSFER', 0), + ('loan_transaction_type_enum', 16, 'REFUND', 'REFUND', 0), + ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), + ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), + ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), + ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), + ('portfolio_account_type_enum', 2, 'SAVING', 'EXPENSE', 0), + ('portfolio_account_type_enum', 3, 'PROVISIONING', 'PROVISIONING', 0), + ('portfolio_account_type_enum', 4, 'SHARES', 'SHARES', 0), ('processing_result_enum', 0, 'invalid', 'Invalid', 0), ('processing_result_enum', 1, 'processed', 'Processed', 0), ('processing_result_enum', 2, 'awaiting.approval', 'Awaiting Approval', 0), @@ -5548,6 +5857,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('repayment_period_frequency_enum', 0, 'Days', 'Days', 0), ('repayment_period_frequency_enum', 1, 'Weeks', 'Weeks', 0), ('repayment_period_frequency_enum', 2, 'Months', 'Months', 0), + ('savings_transaction_type_enum', 0, 'INVALID', 'INVALID', 0), ('savings_transaction_type_enum', 1, 'deposit', 'deposit', 0), ('savings_transaction_type_enum', 2, 'withdrawal', 'withdrawal', 1), ('savings_transaction_type_enum', 3, 'Interest Posting', 'Interest Posting', 0), @@ -5555,12 +5865,14 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('savings_transaction_type_enum', 5, 'Annual Fee', 'Annual Fee', 1), ('savings_transaction_type_enum', 6, 'Waive Charge', 'Waive Charge', 0), ('savings_transaction_type_enum', 7, 'Pay Charge', 'Pay Charge', 1), + ('savings_transaction_type_enum', 8, 'DIVIDEND_PAYOUT', 'DIVIDEND_PAYOUT', 0), ('savings_transaction_type_enum', 12, 'Initiate Transfer', 'Initiate Transfer', 0), ('savings_transaction_type_enum', 13, 'Approve Transfer', 'Approve Transfer', 0), ('savings_transaction_type_enum', 14, 'Withdraw Transfer', 'Withdraw Transfer', 0), ('savings_transaction_type_enum', 15, 'Reject Transfer', 'Reject Transfer', 0), ('savings_transaction_type_enum', 16, 'Written-Off', 'Written-Off', 0), ('savings_transaction_type_enum', 17, 'Overdraft Interest', 'Overdraft Interest', 0), + ('savings_transaction_type_enum', 19, 'WITHHOLD_TAX', 'WITHHOLD_TAX', 0), ('status_enum', 0, 'Invalid', 'Invalid', 0), ('status_enum', 100, 'Pending', 'Pending', 0), ('status_enum', 300, 'Active', 'Active', 0), @@ -5586,7 +5898,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.scheduler_detail +-- Dumping structure for table mifostenant-sampledata.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5596,14 +5908,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.scheduler_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.schema_version +-- Dumping structure for table mifostenant-sampledata.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5623,7 +5935,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~324 rows (approximately) +-- Dumping data for table mifostenant-sampledata.schema_version: ~286 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -5876,6 +6188,14 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:31', 0, 1), (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:31', 300, 1), + (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-08-16 17:14:24', 266, 1), + (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-08-16 17:14:25', 1135, 1), + (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-08-16 17:14:25', 119, 1), + (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-08-16 17:14:26', 177, 1), + (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-08-16 17:14:26', 341, 1), + (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-08-16 17:14:27', 460, 1), + (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:28', 732, 1), + (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:28', 232, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1989718961, 'root', '2014-03-08 02:28:56', 254, 1), @@ -5953,7 +6273,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.sms_messages_outbound +-- Dumping structure for table mifostenant-sampledata.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5972,12 +6292,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -5998,7 +6318,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~20 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6024,7 +6344,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_report +-- Dumping structure for table mifostenant-sampledata.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6040,7 +6360,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~93 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report: ~63 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6139,7 +6459,7 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.stretchy_report_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6154,7 +6474,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~336 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6496,7 +6816,7 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.x_registered_table +-- Dumping structure for table mifostenant-sampledata.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6505,12 +6825,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-reference.x_table_column_code_mappings +-- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6520,7 +6840,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; From 7250ca0d07d0c9fb8c7425d4f80fd5568e77a12f Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Wed, 21 Sep 2016 14:01:13 +0530 Subject: [PATCH 17/25] [MIFOSX-1894] - Cashier Transaction Summary Pentaho Report --- ...r Transaction Summary (Pentaho).properties | 4 + ...Cashier Transaction Summary (Pentaho).prpt | Bin 0 -> 6544 bytes ...ier_transaction_summary_pentaho_report.sql | 334 ++++++++++++++++++ 3 files changed, 338 insertions(+) create mode 100644 fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties create mode 100644 fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt create mode 100644 fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql diff --git a/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties b/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties new file mode 100644 index 00000000000..0613b2261e7 --- /dev/null +++ b/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties @@ -0,0 +1,4 @@ +reportHeader.=Cashier Transaction Summary +title.=Row Title +value.=Row Value +verification.=Verification \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..ef57efd21f3bde29583d55bdbea94893dde61001 GIT binary patch literal 6544 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql new file mode 100644 index 00000000000..44e17d90cb8 --- /dev/null +++ b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql @@ -0,0 +1,334 @@ +-- +-- Licensed to the Apache Software Foundation (ASF) under one +-- or more contributor license agreements. See the NOTICE file +-- distributed with this work for additional information +-- regarding copyright ownership. The ASF licenses this file +-- to you under the Apache License, Version 2.0 (the +-- "License"); you may not use this file except in compliance +-- with the License. You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, +-- software distributed under the License is distributed on an +-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +-- KIND, either express or implied. See the License for the +-- specific language governing permissions and limitations +-- under the License. +-- +DELIMITER $$ +CREATE PROCEDURE `CashierTransactionSummary`( + IN `officeId` BIGINT, + IN `tellerId` BIGINT, + IN `cashierId` BIGINT, + IN `currencyCode` TEXT, + IN `startDate` DATE, + IN `endDate` DATE + + +) +LANGUAGE SQL +NOT DETERMINISTIC +CONTAINS SQL +SQL SECURITY DEFINER +COMMENT '' +BEGIN + + +-- Create temporary table +CREATE TEMPORARY TABLE temp_cashier_transactions( +`transaction_date` DATE, +`transaction_type` VARCHAR(20), +`amount` DECIMAL(19,6)); + +-- Insert result set into temporary table +INSERT INTO temp_cashier_transactions +SELECT cashier_txn.txn_date AS transaction_date, +CASE +WHEN cashier_txn.txn_type = 101 + THEN 'cash_allocated' +WHEN cashier_txn.txn_type = 102 + THEN 'cash_settled' +END AS transaction_type, + cashier_txn.txn_amount AS transaction_amount +FROM m_cashier_transactions cashier_txn +LEFT JOIN m_cashiers cashier ON cashier.id = cashier_txn.cashier_id +LEFT JOIN m_tellers teller ON teller.id = cashier.teller_id +WHERE cashier.teller_id = tellerId + AND cashier_txn.cashier_id = cashierId + AND cashier_txn.currency_code = currencyCode + +UNION ALL + +SELECT savings_txn.transaction_date AS transaction_date, +CASE +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN 'cash_in' +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_savings_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +savings_txn.amount AS transaction_amount +FROM m_savings_account_transaction savings_txn +LEFT JOIN r_enum_value renum + ON savings_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'savings_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = savings_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_savings_transaction_id = savings_txn.id + OR acnttrans.to_savings_transaction_id = savings_txn.id) +LEFT JOIN m_savings_account savings ON savings_txn.savings_account_id = savings.id +LEFT JOIN m_appuser au ON savings_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE savings_txn.is_reversed = 0 + AND c.teller_id = tellerId + AND c.id = cashierId + AND savings.currency_code = currencyCode + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee', 'withdrawal', + 'Waive Charge', 'Interest Posting', 'Overdraft Interest') + + +UNION ALL + + +SELECT loan_txn.transaction_date AS transaction_date, +CASE +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN 'cash_in' +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_loan_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +loan_txn.amount AS transaction_amount +FROM m_loan_transaction loan_txn +LEFT JOIN r_enum_value renum ON loan_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'loan_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = loan_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_loan_transaction_id = loan_txn.id + OR acnttrans.to_loan_transaction_id = loan_txn.id) +LEFT JOIN m_loan loan ON loan_txn.loan_id = loan.id +LEFT JOIN m_appuser au ON loan_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE loan_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND loan.currency_code = currencyCode + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', + 'CHARGE_PAYMENT', 'DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES') + + +UNION ALL + + +SELECT client_txn.transaction_date AS transaction_date, +CASE +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN 'cash_in' +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN 'cash_out' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN CONCAT(payType.value, '_out') ELSE 'invalid' +END AS transaction_type, +client_txn.amount AS transaction_amount +FROM m_client_transaction client_txn +LEFT JOIN r_enum_value renum ON client_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'client_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = client_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_appuser au ON client_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE client_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND client_txn.currency_code = currencyCode + AND renum.enum_value IN ('PAY_CHARGE', 'WAIVE_CHARGE'); + +-- SELECT * FROM temp_cashier_transactions; + + +-- Create final temporary table one +CREATE TEMPORARY TABLE final_temp_cashier_report( +`Row Title` VARCHAR(50), +`Row Value` CHAR(50), +`Verification` VARCHAR(20)); + + +-- Insert office into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Office' AS '', +o.name AS '', '' AS '' +FROM m_office o +WHERE o.id = officeId; + + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Teller' AS '', +t.name AS '', '' AS '' +FROM m_tellers t +WHERE t.id = tellerId; + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cashier' AS '', +s.display_name AS '', '' AS '' +FROM m_cashiers c +JOIN m_tellers mt ON mt.id = c.teller_id +JOIN m_staff s ON s.id = c.staff_id +WHERE c.teller_id = tellerId +AND c.id = cashierId; + +-- Insert currency into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); + +-- Insert start date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); + +-- Insert end date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); + +-- Insert opening balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Beginning cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert ending balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Ending cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-in into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash disbursed' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-out into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash received' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash allocated into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Account Transfers' AS '', +SUM(CASE +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert other payment type into final temporary table +INSERT INTO final_temp_cashier_report +SELECT replace(transaction_type, '_', ' ') AS '', +SUM(CASE +WHEN (transaction_type LIKE '%_in') THEN amount +WHEN (transaction_type LIKE '%_out') THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions +WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') +AND transaction_date BETWEEN startDate AND endDate +GROUP BY transaction_type; + +-- SELECT * FROM temp_cashier_transactions; +SELECT * FROM final_temp_cashier_report; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS temp_cashier_transactions; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; + +END $$ +DELIMITER ; + +INSERT INTO `stretchy_report` (`report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES ('Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); + +INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES ('tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', (select id from (select id from stretchy_parameter where parameter_name='OfficeIdSelectOne') as x)); + +INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES ('cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', (select id from (select id from stretchy_parameter where parameter_name='tellerIdSelectOne') as x)); + +INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES ('currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', null); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='OfficeIdSelectOne'), 'officeId'); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='tellerIdSelectOne'), 'tellerId'); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='cashierIdSelectOne'), 'cashierId'); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='currencyCodeSelectOne'), 'currencyCode'); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='startDateSelect'), 'startDate'); + +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='endDateSelect'), 'endDate'); From 13d3bed7757b4ff91debabf18d0138f2f8d4fb3d Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Thu, 22 Sep 2016 13:29:23 +0530 Subject: [PATCH 18/25] Adding 16.09.01.RELEASE notes --- MIFOS-CHANGELOG.md | 27 +- api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- ...ier_transaction_summary_pentaho_report.sql | 1 + .../migrations/sample_data/barebones_db.sql | 1117 +++++++++++------ .../sample_data/load_sample_data.sql | 1117 +++++++++++------ 6 files changed, 1453 insertions(+), 813 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index 453d168e521..cbbf7c3751e 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -3,7 +3,7 @@ Changelog Releases =============== - +1. 22 Sep 2016 - 16.09.01.RELEASE 1. 16 Aug 2016 - 16.08.01.RELEASE 1. 27 Jun 2016 - 16.06.01.RELEASE 1. 13 May 2016 - 16.05.01.RELEASE @@ -90,6 +90,31 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.09.01.RELEASE +============= + +This release adds performance improvements. + +Platform & API +New Features & Improvements + - Fix for performance issues + - Performance issue fix for repayment template + - Loading child entites lazily + - [MIFOSX-1894] - Cashier Transaction Summary Pentaho Report + +Bugs + - [MIFOSX-2731] Combined both savings charges and penalties into charges dropdown + - [MIFOSX-2784] Including all transactions in Teller Cashier transaction list + +Community-app +New Features & Improvements + +Bugs + + - MIFOSX-2167 - Not able to select the role in edit user page + - Excluding futureSchedule while fetching the loan details + - [MIFOSX-2784] UX changes for including all transactions into the Teller Cashier transaction list + 16.08.01.RELEASE ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index effa34cae13..190a1c9bd84 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index aff05811b16..4ae4ab55c96 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. # -releaseVersion=16.08.01.RELEASE +releaseVersion=16.09.01.RELEASE buildType=BUILD diff --git a/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql index 44e17d90cb8..b51af7c50dd 100644 --- a/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql +++ b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql @@ -16,6 +16,7 @@ -- specific language governing permissions and limitations -- under the License. -- + DELIMITER $$ CREATE PROCEDURE `CashierTransactionSummary`( IN `officeId` BIGINT, diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index e0f28704032..994863961a9 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.33-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-barebone.acc_accounting_rule +-- Dumping structure for table mifostenant-default.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_account +-- Dumping structure for table mifostenant-default.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,12 +59,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_closure +-- Dumping structure for table mifostenant-default.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -86,12 +86,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -103,12 +103,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry +-- Dumping structure for table mifostenant-default.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -161,12 +161,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_product_mapping +-- Dumping structure for table mifostenant-default.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -183,12 +183,12 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_rule_tags +-- Dumping structure for table mifostenant-default.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -203,12 +203,307 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_account_number_format +-- Dumping structure for procedure mifostenant-default.CashierTransactionSummary +DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; +DELIMITER // +CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( + IN `officeId` BIGINT, + IN `tellerId` BIGINT, + IN `cashierId` BIGINT, + IN `currencyCode` TEXT, + IN `startDate` DATE, + IN `endDate` DATE + + +) +BEGIN + + +-- Create temporary table +CREATE TEMPORARY TABLE temp_cashier_transactions( +`transaction_date` DATE, +`transaction_type` VARCHAR(20), +`amount` DECIMAL(19,6)); + +-- Insert result set into temporary table +INSERT INTO temp_cashier_transactions +SELECT cashier_txn.txn_date AS transaction_date, +CASE +WHEN cashier_txn.txn_type = 101 + THEN 'cash_allocated' +WHEN cashier_txn.txn_type = 102 + THEN 'cash_settled' +END AS transaction_type, + cashier_txn.txn_amount AS transaction_amount +FROM m_cashier_transactions cashier_txn +LEFT JOIN m_cashiers cashier ON cashier.id = cashier_txn.cashier_id +LEFT JOIN m_tellers teller ON teller.id = cashier.teller_id +WHERE cashier.teller_id = tellerId + AND cashier_txn.cashier_id = cashierId + AND cashier_txn.currency_code = currencyCode + +UNION ALL + +SELECT savings_txn.transaction_date AS transaction_date, +CASE +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN 'cash_in' +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_savings_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +savings_txn.amount AS transaction_amount +FROM m_savings_account_transaction savings_txn +LEFT JOIN r_enum_value renum + ON savings_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'savings_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = savings_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_savings_transaction_id = savings_txn.id + OR acnttrans.to_savings_transaction_id = savings_txn.id) +LEFT JOIN m_savings_account savings ON savings_txn.savings_account_id = savings.id +LEFT JOIN m_appuser au ON savings_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE savings_txn.is_reversed = 0 + AND c.teller_id = tellerId + AND c.id = cashierId + AND savings.currency_code = currencyCode + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee', 'withdrawal', + 'Waive Charge', 'Interest Posting', 'Overdraft Interest') + + +UNION ALL + + +SELECT loan_txn.transaction_date AS transaction_date, +CASE +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN 'cash_in' +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_loan_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +loan_txn.amount AS transaction_amount +FROM m_loan_transaction loan_txn +LEFT JOIN r_enum_value renum ON loan_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'loan_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = loan_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_loan_transaction_id = loan_txn.id + OR acnttrans.to_loan_transaction_id = loan_txn.id) +LEFT JOIN m_loan loan ON loan_txn.loan_id = loan.id +LEFT JOIN m_appuser au ON loan_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE loan_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND loan.currency_code = currencyCode + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', + 'CHARGE_PAYMENT', 'DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES') + + +UNION ALL + + +SELECT client_txn.transaction_date AS transaction_date, +CASE +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN 'cash_in' +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN 'cash_out' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN CONCAT(payType.value, '_out') ELSE 'invalid' +END AS transaction_type, +client_txn.amount AS transaction_amount +FROM m_client_transaction client_txn +LEFT JOIN r_enum_value renum ON client_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'client_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = client_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_appuser au ON client_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE client_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND client_txn.currency_code = currencyCode + AND renum.enum_value IN ('PAY_CHARGE', 'WAIVE_CHARGE'); + +-- SELECT * FROM temp_cashier_transactions; + + +-- Create final temporary table one +CREATE TEMPORARY TABLE final_temp_cashier_report( +`Row Title` VARCHAR(50), +`Row Value` CHAR(50), +`Verification` VARCHAR(20)); + + +-- Insert office into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Office' AS '', +o.name AS '', '' AS '' +FROM m_office o +WHERE o.id = officeId; + + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Teller' AS '', +t.name AS '', '' AS '' +FROM m_tellers t +WHERE t.id = tellerId; + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cashier' AS '', +s.display_name AS '', '' AS '' +FROM m_cashiers c +JOIN m_tellers mt ON mt.id = c.teller_id +JOIN m_staff s ON s.id = c.staff_id +WHERE c.teller_id = tellerId +AND c.id = cashierId; + +-- Insert currency into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); + +-- Insert start date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); + +-- Insert end date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); + +-- Insert opening balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Beginning cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert ending balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Ending cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-in into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash disbursed' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-out into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash received' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash allocated into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Account Transfers' AS '', +SUM(CASE +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert other payment type into final temporary table +INSERT INTO final_temp_cashier_report +SELECT replace(transaction_type, '_', ' ') AS '', +SUM(CASE +WHEN (transaction_type LIKE '%_in') THEN amount +WHEN (transaction_type LIKE '%_out') THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions +WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') +AND transaction_date BETWEEN startDate AND endDate +GROUP BY transaction_type; + +-- SELECT * FROM temp_cashier_transactions; +SELECT * FROM final_temp_cashier_report; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS temp_cashier_transactions; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; + +END// +DELIMITER ; + + +-- Dumping structure for table mifostenant-default.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -218,12 +513,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_cache +-- Dumping structure for table mifostenant-default.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -231,14 +526,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_configuration +-- Dumping structure for table mifostenant-default.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -252,7 +547,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -285,7 +580,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service +-- Dumping structure for table mifostenant-default.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -294,7 +589,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -302,7 +597,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service_properties +-- Dumping structure for table mifostenant-default.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -312,7 +607,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -326,7 +621,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job +-- Dumping structure for table mifostenant-default.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -348,36 +643,36 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-default.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-16 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-16 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-08-17 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-08-17 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-08-17 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-08-17 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-08-17 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-08-17 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-08-17 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-08-17 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-08-17 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-08-17 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-08-17 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-08-17 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-08-17 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-08-16 17:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-22 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-22 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-23 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-09-23 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-23 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-23 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-09-23 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-09-23 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-09-23 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-09-23 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-09-23 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-09-23 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-09-23 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-09-23 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-09-22 13:15:00', '2016-09-22 13:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job_run_history +-- Dumping structure for table mifostenant-default.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -392,16 +687,17 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job_run_history: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.job_run_history: ~2 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES - (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); + (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL), + (2, 23, 2, '2016-09-22 13:15:00', '2016-09-22 13:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy +-- Dumping structure for table mifostenant-default.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -414,7 +710,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -468,7 +764,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-default.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -479,14 +775,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace +-- Dumping structure for table mifostenant-default.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -496,7 +792,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -509,7 +805,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_details +-- Dumping structure for table mifostenant-default.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -541,12 +837,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -570,12 +866,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -589,12 +885,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction +-- Dumping structure for table mifostenant-default.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -623,12 +919,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_address +-- Dumping structure for table mifostenant-default.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -655,12 +951,12 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser +-- Dumping structure for table mifostenant-default.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -689,7 +985,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), @@ -697,7 +993,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_previous_password +-- Dumping structure for table mifostenant-default.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -709,12 +1005,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_role +-- Dumping structure for table mifostenant-default.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -726,14 +1022,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar +-- Dumping structure for table mifostenant-default.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -757,12 +1053,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_history +-- Dumping structure for table mifostenant-default.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -784,12 +1080,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_instance +-- Dumping structure for table mifostenant-default.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -801,12 +1097,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashiers +-- Dumping structure for table mifostenant-default.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -825,12 +1121,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashier_transactions +-- Dumping structure for table mifostenant-default.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -848,12 +1144,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_charge +-- Dumping structure for table mifostenant-default.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -883,12 +1179,12 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client +-- Dumping structure for table mifostenant-default.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -960,17 +1256,17 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_address +-- Dumping structure for table mifostenant-default.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -986,12 +1282,12 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_attendance +-- Dumping structure for table mifostenant-default.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1005,12 +1301,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge +-- Dumping structure for table mifostenant-default.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1036,12 +1332,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by +-- Dumping structure for table mifostenant-default.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1055,12 +1351,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_identifier +-- Dumping structure for table mifostenant-default.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1083,12 +1379,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_non_person +-- Dumping structure for table mifostenant-default.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1104,12 +1400,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_transaction +-- Dumping structure for table mifostenant-default.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1132,12 +1428,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code +-- Dumping structure for table mifostenant-default.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1147,7 +1443,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-default.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1181,7 +1477,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code_value +-- Dumping structure for table mifostenant-default.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1198,7 +1494,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-default.m_code_value: ~12 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1, 0), @@ -1216,7 +1512,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_currency +-- Dumping structure for table mifostenant-default.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1230,7 +1526,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1399,7 +1695,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1414,12 +1710,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1436,12 +1732,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1468,12 +1764,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1484,12 +1780,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1502,12 +1798,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1529,12 +1825,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_document +-- Dumping structure for table mifostenant-default.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1550,12 +1846,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_relation +-- Dumping structure for table mifostenant-default.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1566,7 +1862,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1577,7 +1873,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access +-- Dumping structure for table mifostenant-default.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1593,12 +1889,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1612,12 +1908,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_field_configuration +-- Dumping structure for table mifostenant-default.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1630,7 +1926,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-default.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -1654,7 +1950,7 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates +-- Dumping structure for table mifostenant-default.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1669,12 +1965,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates_periods +-- Dumping structure for table mifostenant-default.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1692,12 +1988,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_fund +-- Dumping structure for table mifostenant-default.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1708,12 +2004,12 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group +-- Dumping structure for table mifostenant-default.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1749,12 +2045,12 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_client +-- Dumping structure for table mifostenant-default.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1765,12 +2061,12 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_level +-- Dumping structure for table mifostenant-default.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1784,7 +2080,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1792,7 +2088,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_roles +-- Dumping structure for table mifostenant-default.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1809,12 +2105,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor +-- Dumping structure for table mifostenant-default.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1842,12 +2138,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details +-- Dumping structure for table mifostenant-default.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1865,12 +2161,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_transaction +-- Dumping structure for table mifostenant-default.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1887,12 +2183,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday +-- Dumping structure for table mifostenant-default.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1907,12 +2203,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday_office +-- Dumping structure for table mifostenant-default.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -1924,12 +2220,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook +-- Dumping structure for table mifostenant-default.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1948,12 +2244,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_configuration +-- Dumping structure for table mifostenant-default.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1966,12 +2262,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_registered_events +-- Dumping structure for table mifostenant-default.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1983,12 +2279,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_schema +-- Dumping structure for table mifostenant-default.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2002,7 +2298,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2015,7 +2311,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_templates +-- Dumping structure for table mifostenant-default.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2023,7 +2319,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -2031,7 +2327,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_image +-- Dumping structure for table mifostenant-default.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2040,12 +2336,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_incentives +-- Dumping structure for table mifostenant-default.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2061,12 +2357,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2078,12 +2374,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_slab +-- Dumping structure for table mifostenant-default.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2101,12 +2397,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan +-- Dumping structure for table mifostenant-default.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2238,8 +2534,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2247,12 +2543,12 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2285,12 +2581,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2303,12 +2599,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging +-- Dumping structure for table mifostenant-default.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2322,12 +2618,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge +-- Dumping structure for table mifostenant-default.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2358,12 +2654,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-default.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2378,12 +2674,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_collateral +-- Dumping structure for table mifostenant-default.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2398,12 +2694,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-default.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2416,12 +2712,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_installment_charge +-- Dumping structure for table mifostenant-default.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2443,12 +2739,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2460,12 +2756,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2484,12 +2780,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2503,12 +2799,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-default.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2521,12 +2817,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details +-- Dumping structure for table mifostenant-default.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2550,12 +2846,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2595,12 +2891,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2625,12 +2921,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request +-- Dumping structure for table mifostenant-default.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2660,12 +2956,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping +-- Dumping structure for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2678,12 +2974,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_term_variations +-- Dumping structure for table mifostenant-default.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2701,12 +2997,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_topup +-- Dumping structure for table mifostenant-default.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2718,17 +3014,17 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges +-- Dumping structure for table mifostenant-default.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2741,12 +3037,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2759,12 +3055,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction +-- Dumping structure for table mifostenant-default.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2797,12 +3093,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2820,12 +3116,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2848,12 +3144,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_meeting +-- Dumping structure for table mifostenant-default.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2864,12 +3160,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_note +-- Dumping structure for table mifostenant-default.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2903,12 +3199,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office +-- Dumping structure for table mifostenant-default.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2924,14 +3220,14 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_office: ~1 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office_transaction +-- Dumping structure for table mifostenant-default.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2949,12 +3245,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_organisation_currency +-- Dumping structure for table mifostenant-default.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2967,14 +3263,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_password_validation_policy +-- Dumping structure for table mifostenant-default.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2985,7 +3281,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -2993,7 +3289,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_detail +-- Dumping structure for table mifostenant-default.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3008,12 +3304,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_type +-- Dumping structure for table mifostenant-default.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3024,12 +3320,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_permission +-- Dumping structure for table mifostenant-default.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3042,7 +3338,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_permission: ~637 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~731 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3779,7 +4075,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations +-- Dumping structure for table mifostenant-default.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3800,12 +4096,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_command_source +-- Dumping structure for table mifostenant-default.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3843,12 +4139,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan +-- Dumping structure for table mifostenant-default.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3916,12 +4212,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_charge +-- Dumping structure for table mifostenant-default.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -3932,12 +4228,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3955,12 +4251,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-default.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3978,12 +4274,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3996,12 +4292,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4027,12 +4323,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4044,12 +4340,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4065,12 +4361,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_mix +-- Dumping structure for table mifostenant-default.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4083,12 +4379,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria +-- Dumping structure for table mifostenant-default.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4105,12 +4401,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4132,12 +4428,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_history +-- Dumping structure for table mifostenant-default.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4153,12 +4449,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provision_category +-- Dumping structure for table mifostenant-default.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4168,7 +4464,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4178,7 +4474,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job +-- Dumping structure for table mifostenant-default.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4217,12 +4513,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job_configuration +-- Dumping structure for table mifostenant-default.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4232,7 +4528,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4242,7 +4538,7 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job_run_history +-- Dumping structure for table mifostenant-default.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4257,12 +4553,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role +-- Dumping structure for table mifostenant-default.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4273,14 +4569,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role_permission +-- Dumping structure for table mifostenant-default.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4292,14 +4588,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account +-- Dumping structure for table mifostenant-default.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4375,12 +4671,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge +-- Dumping structure for table mifostenant-default.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4411,12 +4707,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4430,12 +4726,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4450,12 +4746,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4473,12 +4769,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction +-- Dumping structure for table mifostenant-default.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4505,12 +4801,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4524,12 +4820,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives +-- Dumping structure for table mifostenant-default.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4545,12 +4841,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4569,12 +4865,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product +-- Dumping structure for table mifostenant-default.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4617,12 +4913,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product_charge +-- Dumping structure for table mifostenant-default.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4633,12 +4929,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4654,12 +4950,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4672,12 +4968,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account +-- Dumping structure for table mifostenant-default.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4731,12 +5027,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge +-- Dumping structure for table mifostenant-default.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4765,12 +5061,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4784,12 +5080,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details +-- Dumping structure for table mifostenant-default.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4805,12 +5101,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_transactions +-- Dumping structure for table mifostenant-default.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4827,12 +5123,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product +-- Dumping structure for table mifostenant-default.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4871,12 +5167,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_charge +-- Dumping structure for table mifostenant-default.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -4887,12 +5183,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4914,12 +5210,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_market_price +-- Dumping structure for table mifostenant-default.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4931,12 +5227,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff +-- Dumping structure for table mifostenant-default.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4962,12 +5258,12 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff_assignment_history +-- Dumping structure for table mifostenant-default.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4986,12 +5282,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_surveys +-- Dumping structure for table mifostenant-default.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5004,12 +5300,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_components +-- Dumping structure for table mifostenant-default.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5023,12 +5319,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables +-- Dumping structure for table mifostenant-default.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5043,12 +5339,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_questions +-- Dumping structure for table mifostenant-default.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5063,12 +5359,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_responses +-- Dumping structure for table mifostenant-default.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5081,12 +5377,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_scorecards +-- Dumping structure for table mifostenant-default.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5110,12 +5406,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component +-- Dumping structure for table mifostenant-default.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5141,12 +5437,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component_history +-- Dumping structure for table mifostenant-default.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5167,12 +5463,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group +-- Dumping structure for table mifostenant-default.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5188,12 +5484,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group_mappings +-- Dumping structure for table mifostenant-default.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5216,12 +5512,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tellers +-- Dumping structure for table mifostenant-default.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5243,12 +5539,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template +-- Dumping structure for table mifostenant-default.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5260,12 +5556,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_templatemappers +-- Dumping structure for table mifostenant-default.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5275,12 +5571,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers +-- Dumping structure for table mifostenant-default.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5290,12 +5586,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_working_days +-- Dumping structure for table mifostenant-default.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5305,14 +5601,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_access_token +-- Dumping structure for table mifostenant-default.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5324,12 +5620,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_client_details +-- Dumping structure for table mifostenant-default.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5346,14 +5642,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_refresh_token +-- Dumping structure for table mifostenant-default.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5361,12 +5657,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods +-- Dumping structure for table mifostenant-default.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5375,12 +5671,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5390,12 +5686,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_scores +-- Dumping structure for table mifostenant-default.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5404,7 +5700,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5430,7 +5726,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5441,7 +5737,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5454,19 +5750,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.rpt_sequence +-- Dumping structure for table mifostenant-default.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.r_enum_value +-- Dumping structure for table mifostenant-default.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5479,7 +5775,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-default.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5642,7 +5938,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.scheduler_detail +-- Dumping structure for table mifostenant-default.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5652,14 +5948,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.schema_version +-- Dumping structure for table mifostenant-default.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5679,7 +5975,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.schema_version: ~269 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~333 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -5961,6 +6257,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', -1735511516, 'root', '2015-06-03 15:26:54', 24, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1349701479, 'root', '2015-06-03 15:26:51', 122, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', -1807166173, 'root', '2015-06-03 15:26:55', 140, 1), + (333, 333, '5000', 'cashier transaction summary pentaho report', 'SQL', 'V5000__cashier_transaction_summary_pentaho_report.sql', 43596337, 'root', '2016-09-22 13:09:27', 198, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 729891777, 'root', '2015-06-03 15:26:55', 102, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 1853745947, 'root', '2015-06-03 15:26:55', 71, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', 1135041990, 'root', '2015-06-03 15:26:55', 45, 1), @@ -6017,7 +6314,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.sms_messages_outbound +-- Dumping structure for table mifostenant-default.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6036,12 +6333,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_parameter +-- Dumping structure for table mifostenant-default.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6060,9 +6357,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_parameter: ~23 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6084,11 +6381,14 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1007, 'selectCenterId', 'centerId', 'Enter Center Id', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), - (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL); + (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), + (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), + (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), + (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report +-- Dumping structure for table mifostenant-default.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6102,9 +6402,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report: ~125 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~94 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6199,11 +6499,12 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (162, 'Balance Outstanding', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), - (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1); + (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), + (166, 'Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report_parameter +-- Dumping structure for table mifostenant-default.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6216,9 +6517,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=449 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report_parameter: ~342 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6556,11 +6857,17 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (439, 164, 1, 'fromDate'), (440, 164, 2, 'toDate'), (441, 165, 1010, NULL), - (442, 165, 5, NULL); + (442, 165, 5, NULL), + (443, 166, 5, 'officeId'), + (444, 166, 1011, 'tellerId'), + (445, 166, 1012, 'cashierId'), + (446, 166, 1013, 'currencyCode'), + (447, 166, 1, 'startDate'), + (448, 166, 2, 'endDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_registered_table +-- Dumping structure for table mifostenant-default.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6569,12 +6876,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings +-- Dumping structure for table mifostenant-default.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6584,7 +6891,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 3df27888761..ac2095d2dc4 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,6 +1,6 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.33-log - MySQL Community Server (GPL) -- Server OS: Win64 -- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- @@ -10,7 +10,7 @@ /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-sampledata.acc_accounting_rule +-- Dumping structure for table mifostenant-reference.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_account +-- Dumping structure for table mifostenant-reference.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -120,7 +120,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_closure +-- Dumping structure for table mifostenant-reference.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -142,12 +142,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -159,14 +159,14 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~1 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry +-- Dumping structure for table mifostenant-reference.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -219,12 +219,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_product_mapping +-- Dumping structure for table mifostenant-reference.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -241,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -265,7 +265,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_rule_tags +-- Dumping structure for table mifostenant-reference.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -280,12 +280,307 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_account_number_format +-- Dumping structure for procedure mifostenant-reference.CashierTransactionSummary +DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; +DELIMITER // +CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( + IN `officeId` BIGINT, + IN `tellerId` BIGINT, + IN `cashierId` BIGINT, + IN `currencyCode` TEXT, + IN `startDate` DATE, + IN `endDate` DATE + + +) +BEGIN + + +-- Create temporary table +CREATE TEMPORARY TABLE temp_cashier_transactions( +`transaction_date` DATE, +`transaction_type` VARCHAR(20), +`amount` DECIMAL(19,6)); + +-- Insert result set into temporary table +INSERT INTO temp_cashier_transactions +SELECT cashier_txn.txn_date AS transaction_date, +CASE +WHEN cashier_txn.txn_type = 101 + THEN 'cash_allocated' +WHEN cashier_txn.txn_type = 102 + THEN 'cash_settled' +END AS transaction_type, + cashier_txn.txn_amount AS transaction_amount +FROM m_cashier_transactions cashier_txn +LEFT JOIN m_cashiers cashier ON cashier.id = cashier_txn.cashier_id +LEFT JOIN m_tellers teller ON teller.id = cashier.teller_id +WHERE cashier.teller_id = tellerId + AND cashier_txn.cashier_id = cashierId + AND cashier_txn.currency_code = currencyCode + +UNION ALL + +SELECT savings_txn.transaction_date AS transaction_date, +CASE +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN 'cash_in' +WHEN (((savings_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_savings_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('withdrawal', 'Waive Charge', 'Interest Posting', 'Overdraft Interest')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +savings_txn.amount AS transaction_amount +FROM m_savings_account_transaction savings_txn +LEFT JOIN r_enum_value renum + ON savings_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'savings_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = savings_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_savings_transaction_id = savings_txn.id + OR acnttrans.to_savings_transaction_id = savings_txn.id) +LEFT JOIN m_savings_account savings ON savings_txn.savings_account_id = savings.id +LEFT JOIN m_appuser au ON savings_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE savings_txn.is_reversed = 0 + AND c.teller_id = tellerId + AND c.id = cashierId + AND savings.currency_code = currencyCode + AND renum.enum_value IN ('deposit','withdrawal fee', 'Pay Charge', 'Annual Fee', 'withdrawal', + 'Waive Charge', 'Interest Posting', 'Overdraft Interest') + + +UNION ALL + + +SELECT loan_txn.transaction_date AS transaction_date, +CASE +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN 'cash_in' +WHEN (((loan_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND acnttrans.id IS NULL) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN 'cash_out' +WHEN acnttrans.id IS NOT NULL AND acnttrans.from_loan_transaction_id IS NOT NULL + THEN 'transfers' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', 'CHARGE_PAYMENT')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES')) + THEN CONCAT(payType.value, '_out') +END AS transaction_type, +loan_txn.amount AS transaction_amount +FROM m_loan_transaction loan_txn +LEFT JOIN r_enum_value renum ON loan_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'loan_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = loan_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_account_transfer_transaction acnttrans + ON (acnttrans.from_loan_transaction_id = loan_txn.id + OR acnttrans.to_loan_transaction_id = loan_txn.id) +LEFT JOIN m_loan loan ON loan_txn.loan_id = loan.id +LEFT JOIN m_appuser au ON loan_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE loan_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND loan.currency_code = currencyCode + AND renum.enum_value IN ('REPAYMENT_AT_DISBURSEMENT','REPAYMENT', 'RECOVERY_REPAYMENT', + 'CHARGE_PAYMENT', 'DISBURSEMENT', 'WAIVE_INTEREST', 'WRITEOFF', 'WAIVE_CHARGES') + + +UNION ALL + + +SELECT client_txn.transaction_date AS transaction_date, +CASE +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN 'cash_in' +WHEN ((client_txn.payment_detail_id IS NULL OR payType.is_cash_payment = 1) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN 'cash_out' +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('PAY_CHARGE')) + THEN CONCAT(payType.value, '_in') +WHEN ((payType.is_cash_payment = 0) + AND renum.enum_value IN ('WAIVE_CHARGE')) + THEN CONCAT(payType.value, '_out') ELSE 'invalid' +END AS transaction_type, +client_txn.amount AS transaction_amount +FROM m_client_transaction client_txn +LEFT JOIN r_enum_value renum ON client_txn.transaction_type_enum = renum.enum_id + AND renum.enum_name = 'client_transaction_type_enum' +LEFT JOIN m_payment_detail payDetails ON payDetails.id = client_txn.payment_detail_id +LEFT JOIN m_payment_type payType ON payType.id = payDetails.payment_type_id +LEFT JOIN m_appuser au ON client_txn.appuser_id = au.id +LEFT JOIN m_staff s ON au.staff_id = s.id +LEFT JOIN m_cashiers c ON c.staff_id = s.id +LEFT JOIN m_tellers t ON t.id = c.teller_id +WHERE client_txn.is_reversed = 0 + AND c.id = cashierId + AND c.teller_id = tellerId + AND client_txn.currency_code = currencyCode + AND renum.enum_value IN ('PAY_CHARGE', 'WAIVE_CHARGE'); + +-- SELECT * FROM temp_cashier_transactions; + + +-- Create final temporary table one +CREATE TEMPORARY TABLE final_temp_cashier_report( +`Row Title` VARCHAR(50), +`Row Value` CHAR(50), +`Verification` VARCHAR(20)); + + +-- Insert office into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Office' AS '', +o.name AS '', '' AS '' +FROM m_office o +WHERE o.id = officeId; + + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Teller' AS '', +t.name AS '', '' AS '' +FROM m_tellers t +WHERE t.id = tellerId; + +-- Insert teller into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cashier' AS '', +s.display_name AS '', '' AS '' +FROM m_cashiers c +JOIN m_tellers mt ON mt.id = c.teller_id +JOIN m_staff s ON s.id = c.staff_id +WHERE c.teller_id = tellerId +AND c.id = cashierId; + +-- Insert currency into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); + +-- Insert start date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); + +-- Insert end date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); + +-- Insert opening balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Beginning cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert ending balance into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Ending cash drawer balance' AS '', +CAST(SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +ELSE 0 +END) AS CHAR) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-in into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash disbursed' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash-out into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Total cash received' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash allocated into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', +SUM(CASE +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert cash settled into final temporary table +INSERT INTO final_temp_cashier_report +SELECT 'Account Transfers' AS '', +SUM(CASE +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions; + +-- Insert other payment type into final temporary table +INSERT INTO final_temp_cashier_report +SELECT replace(transaction_type, '_', ' ') AS '', +SUM(CASE +WHEN (transaction_type LIKE '%_in') THEN amount +WHEN (transaction_type LIKE '%_out') THEN amount +ELSE 0 +END) AS '', '' AS '' +FROM temp_cashier_transactions +WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') +AND transaction_date BETWEEN startDate AND endDate +GROUP BY transaction_type; + +-- SELECT * FROM temp_cashier_transactions; +SELECT * FROM final_temp_cashier_report; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS temp_cashier_transactions; + +-- Dropping at the end +DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; + +END// +DELIMITER ; + + +-- Dumping structure for table mifostenant-reference.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -295,12 +590,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_cache +-- Dumping structure for table mifostenant-reference.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -308,14 +603,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_configuration +-- Dumping structure for table mifostenant-reference.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -329,7 +624,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -362,7 +657,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service +-- Dumping structure for table mifostenant-reference.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -371,7 +666,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), @@ -379,7 +674,7 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service_properties +-- Dumping structure for table mifostenant-reference.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -389,7 +684,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -403,7 +698,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job +-- Dumping structure for table mifostenant-reference.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -425,36 +720,36 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-reference.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-08-16 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-08-17 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-08-16 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-08-17 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-08-17 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-08-17 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-08-17 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-08-17 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-08-17 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-08-17 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-08-17 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-08-17 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-08-17 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-08-17 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-08-17 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-08-17 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-08-17 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-08-17 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-08-17 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-08-16 17:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-09-22 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-23 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-09-22 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-09-23 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-09-23 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-09-23 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-09-23 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-09-23 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-09-23 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-09-23 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-09-23 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-09-23 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-09-23 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-09-23 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-09-23 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-09-23 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-09-22 13:15:00', '2016-09-22 13:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job_run_history +-- Dumping structure for table mifostenant-reference.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -469,9 +764,9 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job_run_history: ~19 rows (approximately) +-- Dumping data for table mifostenant-reference.job_run_history: ~20 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -492,11 +787,12 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim (16, 8, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (17, 1, 1, '2014-06-11 09:30:00', '2014-06-11 09:30:01', 'success', NULL, 'cron', NULL), (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL), - (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); + (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL), + (20, 23, 2, '2016-09-22 13:15:00', '2016-09-22 13:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy +-- Dumping structure for table mifostenant-reference.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -509,7 +805,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -563,7 +859,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -574,14 +870,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace +-- Dumping structure for table mifostenant-reference.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -591,7 +887,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -604,7 +900,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_details +-- Dumping structure for table mifostenant-reference.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -636,12 +932,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -665,12 +961,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -684,12 +980,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction +-- Dumping structure for table mifostenant-reference.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -718,12 +1014,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_address +-- Dumping structure for table mifostenant-reference.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -750,12 +1046,12 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser +-- Dumping structure for table mifostenant-reference.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -784,7 +1080,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -795,7 +1091,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password +-- Dumping structure for table mifostenant-reference.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -807,12 +1103,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_role +-- Dumping structure for table mifostenant-reference.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -824,7 +1120,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -834,7 +1130,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar +-- Dumping structure for table mifostenant-reference.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -858,12 +1154,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_history +-- Dumping structure for table mifostenant-reference.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -885,12 +1181,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_instance +-- Dumping structure for table mifostenant-reference.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -902,12 +1198,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashiers +-- Dumping structure for table mifostenant-reference.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -926,12 +1222,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashier_transactions +-- Dumping structure for table mifostenant-reference.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -949,12 +1245,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_charge +-- Dumping structure for table mifostenant-reference.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -984,14 +1280,14 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client +-- Dumping structure for table mifostenant-reference.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1063,12 +1359,12 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`, `reopened_on_date`, `reopened_by_userid`) VALUES (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -1081,7 +1377,7 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_address +-- Dumping structure for table mifostenant-reference.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1097,12 +1393,12 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_attendance +-- Dumping structure for table mifostenant-reference.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1116,12 +1412,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge +-- Dumping structure for table mifostenant-reference.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1147,12 +1443,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1166,12 +1462,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_identifier +-- Dumping structure for table mifostenant-reference.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1194,12 +1490,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_non_person +-- Dumping structure for table mifostenant-reference.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1215,12 +1511,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_transaction +-- Dumping structure for table mifostenant-reference.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1243,12 +1539,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code +-- Dumping structure for table mifostenant-reference.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1258,7 +1554,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1292,7 +1588,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code_value +-- Dumping structure for table mifostenant-reference.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1309,7 +1605,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code_value: ~26 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1, 0), @@ -1341,7 +1637,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_currency +-- Dumping structure for table mifostenant-reference.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1355,7 +1651,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1524,7 +1820,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1539,12 +1835,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1561,12 +1857,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1593,12 +1889,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1609,12 +1905,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1627,12 +1923,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1654,12 +1950,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_document +-- Dumping structure for table mifostenant-reference.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1675,12 +1971,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_relation +-- Dumping structure for table mifostenant-reference.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1691,7 +1987,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1702,7 +1998,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1718,12 +2014,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1737,12 +2033,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_field_configuration +-- Dumping structure for table mifostenant-reference.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1755,7 +2051,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -1779,7 +2075,7 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates +-- Dumping structure for table mifostenant-reference.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1794,12 +2090,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods +-- Dumping structure for table mifostenant-reference.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1817,12 +2113,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_fund +-- Dumping structure for table mifostenant-reference.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1833,14 +2129,14 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_fund: ~1 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group +-- Dumping structure for table mifostenant-reference.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1876,7 +2172,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -1886,7 +2182,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_client +-- Dumping structure for table mifostenant-reference.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -1897,7 +2193,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -1909,7 +2205,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_level +-- Dumping structure for table mifostenant-reference.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1923,7 +2219,7 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), @@ -1931,7 +2227,7 @@ INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `r /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_roles +-- Dumping structure for table mifostenant-reference.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1948,12 +2244,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor +-- Dumping structure for table mifostenant-reference.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1981,12 +2277,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details +-- Dumping structure for table mifostenant-reference.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2004,12 +2300,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction +-- Dumping structure for table mifostenant-reference.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2026,12 +2322,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday +-- Dumping structure for table mifostenant-reference.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2046,12 +2342,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday_office +-- Dumping structure for table mifostenant-reference.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -2063,12 +2359,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook +-- Dumping structure for table mifostenant-reference.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2087,12 +2383,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_configuration +-- Dumping structure for table mifostenant-reference.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2105,12 +2401,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_registered_events +-- Dumping structure for table mifostenant-reference.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2122,12 +2418,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_schema +-- Dumping structure for table mifostenant-reference.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2141,7 +2437,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2154,7 +2450,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_templates +-- Dumping structure for table mifostenant-reference.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2162,7 +2458,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), @@ -2170,7 +2466,7 @@ INSERT INTO `m_hook_templates` (`id`, `name`) VALUES /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_image +-- Dumping structure for table mifostenant-reference.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2179,12 +2475,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_incentives +-- Dumping structure for table mifostenant-reference.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2200,12 +2496,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2217,12 +2513,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab +-- Dumping structure for table mifostenant-reference.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2240,12 +2536,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan +-- Dumping structure for table mifostenant-reference.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2377,8 +2673,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2386,14 +2682,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`, `is_topup`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL, 0); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2426,12 +2722,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2444,12 +2740,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging +-- Dumping structure for table mifostenant-reference.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2463,12 +2759,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge +-- Dumping structure for table mifostenant-reference.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2499,14 +2795,14 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2521,12 +2817,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_collateral +-- Dumping structure for table mifostenant-reference.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2541,12 +2837,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2559,12 +2855,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge +-- Dumping structure for table mifostenant-reference.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2586,12 +2882,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2603,12 +2899,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2627,12 +2923,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2646,12 +2942,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2664,12 +2960,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details +-- Dumping structure for table mifostenant-reference.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2693,12 +2989,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2738,7 +3034,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -2769,7 +3065,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2794,12 +3090,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request +-- Dumping structure for table mifostenant-reference.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2829,12 +3125,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping +-- Dumping structure for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2847,12 +3143,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_term_variations +-- Dumping structure for table mifostenant-reference.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2870,12 +3166,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_topup +-- Dumping structure for table mifostenant-reference.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2887,17 +3183,17 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges +-- Dumping structure for table mifostenant-reference.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2910,12 +3206,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2928,12 +3224,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction +-- Dumping structure for table mifostenant-reference.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2966,12 +3262,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2989,12 +3285,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3017,12 +3313,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_meeting +-- Dumping structure for table mifostenant-reference.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3033,12 +3329,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_note +-- Dumping structure for table mifostenant-reference.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3072,12 +3368,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office +-- Dumping structure for table mifostenant-reference.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3093,7 +3389,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -3102,7 +3398,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office_transaction +-- Dumping structure for table mifostenant-reference.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3120,12 +3416,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_organisation_currency +-- Dumping structure for table mifostenant-reference.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3138,14 +3434,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_password_validation_policy +-- Dumping structure for table mifostenant-reference.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3156,7 +3452,7 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), @@ -3164,7 +3460,7 @@ INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `activ /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_detail +-- Dumping structure for table mifostenant-reference.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3179,12 +3475,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_type +-- Dumping structure for table mifostenant-reference.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3195,12 +3491,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_permission +-- Dumping structure for table mifostenant-reference.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3213,7 +3509,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_permission: ~713 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~731 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3950,7 +4246,7 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations +-- Dumping structure for table mifostenant-reference.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3971,12 +4267,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source +-- Dumping structure for table mifostenant-reference.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4014,7 +4310,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~71 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -4092,7 +4388,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan +-- Dumping structure for table mifostenant-reference.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4160,14 +4456,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`, `can_use_for_topup`, `sync_expected_with_disbursement_date`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL, 0, 0); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_charge +-- Dumping structure for table mifostenant-reference.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4178,14 +4474,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4203,14 +4499,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4228,12 +4524,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4246,12 +4542,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4277,12 +4573,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4294,12 +4590,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4315,12 +4611,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_mix +-- Dumping structure for table mifostenant-reference.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4333,12 +4629,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4355,12 +4651,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4382,12 +4678,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_history +-- Dumping structure for table mifostenant-reference.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4403,12 +4699,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provision_category +-- Dumping structure for table mifostenant-reference.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4418,7 +4714,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4428,7 +4724,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job +-- Dumping structure for table mifostenant-reference.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4467,12 +4763,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_configuration +-- Dumping structure for table mifostenant-reference.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4482,7 +4778,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4492,7 +4788,7 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_run_history +-- Dumping structure for table mifostenant-reference.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4507,12 +4803,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role +-- Dumping structure for table mifostenant-reference.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4523,14 +4819,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role_permission +-- Dumping structure for table mifostenant-reference.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4542,14 +4838,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account +-- Dumping structure for table mifostenant-reference.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4625,12 +4921,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge +-- Dumping structure for table mifostenant-reference.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4661,12 +4957,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4680,12 +4976,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4700,12 +4996,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4723,12 +5019,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4755,12 +5051,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4774,12 +5070,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives +-- Dumping structure for table mifostenant-reference.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4795,12 +5091,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4819,12 +5115,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product +-- Dumping structure for table mifostenant-reference.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4867,14 +5163,14 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product_charge +-- Dumping structure for table mifostenant-reference.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4885,12 +5181,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4906,12 +5202,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4924,12 +5220,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account +-- Dumping structure for table mifostenant-reference.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4983,12 +5279,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge +-- Dumping structure for table mifostenant-reference.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5017,12 +5313,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5036,12 +5332,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details +-- Dumping structure for table mifostenant-reference.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5057,12 +5353,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_transactions +-- Dumping structure for table mifostenant-reference.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5079,12 +5375,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product +-- Dumping structure for table mifostenant-reference.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5123,12 +5419,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_charge +-- Dumping structure for table mifostenant-reference.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -5139,12 +5435,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5166,12 +5462,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_market_price +-- Dumping structure for table mifostenant-reference.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5183,12 +5479,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff +-- Dumping structure for table mifostenant-reference.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5214,7 +5510,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -5223,7 +5519,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history +-- Dumping structure for table mifostenant-reference.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5242,12 +5538,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_surveys +-- Dumping structure for table mifostenant-reference.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5260,12 +5556,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_components +-- Dumping structure for table mifostenant-reference.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5279,12 +5575,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables +-- Dumping structure for table mifostenant-reference.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5299,12 +5595,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_questions +-- Dumping structure for table mifostenant-reference.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5319,12 +5615,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_responses +-- Dumping structure for table mifostenant-reference.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5337,12 +5633,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_scorecards +-- Dumping structure for table mifostenant-reference.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5366,12 +5662,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component +-- Dumping structure for table mifostenant-reference.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5397,12 +5693,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component_history +-- Dumping structure for table mifostenant-reference.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5423,12 +5719,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group +-- Dumping structure for table mifostenant-reference.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5444,12 +5740,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings +-- Dumping structure for table mifostenant-reference.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5472,12 +5768,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tellers +-- Dumping structure for table mifostenant-reference.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5499,12 +5795,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template +-- Dumping structure for table mifostenant-reference.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5516,12 +5812,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_templatemappers +-- Dumping structure for table mifostenant-reference.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5531,12 +5827,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers +-- Dumping structure for table mifostenant-reference.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5546,12 +5842,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_working_days +-- Dumping structure for table mifostenant-reference.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5561,14 +5857,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_access_token +-- Dumping structure for table mifostenant-reference.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5580,12 +5876,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_client_details +-- Dumping structure for table mifostenant-reference.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5602,14 +5898,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_refresh_token +-- Dumping structure for table mifostenant-reference.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5617,12 +5913,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods +-- Dumping structure for table mifostenant-reference.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5631,12 +5927,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5646,12 +5942,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_scores +-- Dumping structure for table mifostenant-reference.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5660,7 +5956,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5686,7 +5982,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5697,7 +5993,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5710,19 +6006,19 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.rpt_sequence +-- Dumping structure for table mifostenant-reference.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.r_enum_value +-- Dumping structure for table mifostenant-reference.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5735,7 +6031,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-reference.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5898,7 +6194,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.scheduler_detail +-- Dumping structure for table mifostenant-reference.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5908,14 +6204,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.schema_version +-- Dumping structure for table mifostenant-reference.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5935,7 +6231,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.schema_version: ~286 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~333 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -6217,6 +6513,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', 170618680, 'root', '2014-03-08 02:29:03', 176, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1171300485, 'root', '2014-03-08 02:28:39', 636, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', 188244658, 'root', '2014-03-08 02:29:05', 926, 1), + (333, 333, '5000', 'cashier transaction summary pentaho report', 'SQL', 'V5000__cashier_transaction_summary_pentaho_report.sql', 43596337, 'root', '2016-09-22 13:09:28', 78, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 2012793946, 'root', '2014-03-08 02:29:05', 602, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 961668575, 'root', '2014-03-08 02:29:06', 501, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', -230737076, 'root', '2014-03-08 02:29:06', 212, 1), @@ -6273,7 +6570,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.sms_messages_outbound +-- Dumping structure for table mifostenant-reference.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6292,12 +6589,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_parameter +-- Dumping structure for table mifostenant-reference.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6316,9 +6613,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1011 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_parameter: ~23 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6340,11 +6637,14 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1007, 'selectCenterId', 'centerId', 'Enter Center Id', 'text', 'string', 'n/a', NULL, NULL, NULL, NULL, NULL), (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), - (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL); + (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), + (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), + (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), + (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report +-- Dumping structure for table mifostenant-reference.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6358,9 +6658,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=166 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report: ~63 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~94 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6455,11 +6755,12 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (162, 'Balance Outstanding', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), - (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1); + (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), + (166, 'Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter +-- Dumping structure for table mifostenant-reference.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6472,9 +6773,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=443 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=449 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~336 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~342 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6812,11 +7113,17 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (439, 164, 1, 'fromDate'), (440, 164, 2, 'toDate'), (441, 165, 1010, NULL), - (442, 165, 5, NULL); + (442, 165, 5, NULL), + (443, 166, 5, 'officeId'), + (444, 166, 1011, 'tellerId'), + (445, 166, 1012, 'cashierId'), + (446, 166, 1013, 'currencyCode'), + (447, 166, 1, 'startDate'), + (448, 166, 2, 'endDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_registered_table +-- Dumping structure for table mifostenant-reference.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6825,12 +7132,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings +-- Dumping structure for table mifostenant-reference.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6840,7 +7147,7 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; From 49954329fa10cb123367669f73ab8c511aab2110 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Thu, 29 Sep 2016 10:28:27 +0530 Subject: [PATCH 19/25] Corrections to cashier report --- ...Cashier Transaction Summary (Pentaho).prpt | Bin 6544 -> 0 bytes ...y Teller Cash Report (Pentaho).properties} | 2 +- .../Daily Teller Cash Report (Pentaho).prpt | Bin 0 -> 6541 bytes ...000__Daily_Teller_Cash_Report_pentaho.sql} | 54 ++++++++---------- 4 files changed, 25 insertions(+), 31 deletions(-) delete mode 100644 fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt rename fineract-provider/src/main/pentahoReports/{Cashier Transaction Summary (Pentaho).properties => Daily Teller Cash Report (Pentaho).properties} (58%) create mode 100644 fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).prpt rename fineract-provider/src/main/resources/sql/migrations/core_db/{V5000__cashier_transaction_summary_pentaho_report.sql => V5000__Daily_Teller_Cash_Report_pentaho.sql} (85%) diff --git a/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).prpt deleted file mode 100644 index ef57efd21f3bde29583d55bdbea94893dde61001..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6544 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 diff --git a/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties b/fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).properties similarity index 58% rename from fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties rename to fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).properties index 0613b2261e7..30df9f86d8f 100644 --- a/fineract-provider/src/main/pentahoReports/Cashier Transaction Summary (Pentaho).properties +++ b/fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).properties @@ -1,4 +1,4 @@ -reportHeader.=Cashier Transaction Summary +reportHeader.=Daily Teller Cash Report title.=Row Title value.=Row Value verification.=Verification \ No newline at end of file diff --git a/fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Daily Teller Cash Report (Pentaho).prpt new file mode 100644 index 0000000000000000000000000000000000000000..3a91221b5d1ea988b9f1bdf573822ce972de23e7 GIT binary patch literal 6541 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 literal 0 HcmV?d00001 diff --git a/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__Daily_Teller_Cash_Report_pentaho.sql similarity index 85% rename from fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql rename to fineract-provider/src/main/resources/sql/migrations/core_db/V5000__Daily_Teller_Cash_Report_pentaho.sql index b51af7c50dd..41d118548e8 100644 --- a/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__cashier_transaction_summary_pentaho_report.sql +++ b/fineract-provider/src/main/resources/sql/migrations/core_db/V5000__Daily_Teller_Cash_Report_pentaho.sql @@ -23,10 +23,7 @@ CREATE PROCEDURE `CashierTransactionSummary`( IN `tellerId` BIGINT, IN `cashierId` BIGINT, IN `currencyCode` TEXT, - IN `startDate` DATE, - IN `endDate` DATE - - + IN `asOnDate` DATE ) LANGUAGE SQL NOT DETERMINISTIC @@ -216,20 +213,17 @@ AND c.id = cashierId; -- Insert currency into final temporary table INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); --- Insert start date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); - --- Insert end date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); +-- Insert date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('As On Date', asOnDate, ''); -- Insert opening balance into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Beginning cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -238,10 +232,10 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Ending cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -250,7 +244,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash disbursed' AS '', SUM(CASE -WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -259,7 +253,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash received' AS '', SUM(CASE -WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -267,7 +261,7 @@ FROM temp_cashier_transactions; -- Insert cash allocated into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -275,7 +269,7 @@ FROM temp_cashier_transactions; -- Insert cash settled into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', SUM(CASE -WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -284,7 +278,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Account Transfers' AS '', SUM(CASE -WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -299,7 +293,7 @@ ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') -AND transaction_date BETWEEN startDate AND endDate +AND transaction_date BETWEEN asOnDate AND asOnDate GROUP BY transaction_type; -- SELECT * FROM temp_cashier_transactions; @@ -314,7 +308,7 @@ DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; END $$ DELIMITER ; -INSERT INTO `stretchy_report` (`report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES ('Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); +INSERT INTO `stretchy_report` (`report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES ('Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES ('tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', (select id from (select id from stretchy_parameter where parameter_name='OfficeIdSelectOne') as x)); @@ -322,14 +316,14 @@ INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `param INSERT INTO `stretchy_parameter` (`parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES ('currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', null); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='OfficeIdSelectOne'), 'officeId'); +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Daily Teller Cash Report (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='OfficeIdSelectOne'), 'officeId'); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='tellerIdSelectOne'), 'tellerId'); +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Daily Teller Cash Report (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='tellerIdSelectOne'), 'tellerId'); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='cashierIdSelectOne'), 'cashierId'); +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Daily Teller Cash Report (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='cashierIdSelectOne'), 'cashierId'); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='currencyCodeSelectOne'), 'currencyCode'); +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Daily Teller Cash Report (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='currencyCodeSelectOne'), 'currencyCode'); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='startDateSelect'), 'startDate'); +INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Daily Teller Cash Report (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='asOnDate'), 'asOnDate'); -INSERT INTO stretchy_report_parameter (report_id, parameter_id, report_parameter_name) VALUES ((select sr.id From stretchy_report sr where sr.report_name='Cashier Transaction Summary (Pentaho)'),(select sp.id from stretchy_parameter sp where sp.parameter_name='endDateSelect'), 'endDate'); +INSERT INTO m_permission (grouping,code,entity_name,action_name,can_maker_checker) VALUES ('report','READ_Daily Teller Cash Report (Pentaho)','Daily Teller Cash Report (Pentaho)','READ',0); \ No newline at end of file From b40a850b5e6b74e16a0d18b78f3d88fac3a2a6d1 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Thu, 29 Sep 2016 11:55:01 +0530 Subject: [PATCH 20/25] Update sample data sql due to report corrections --- .../migrations/sample_data/barebones_db.sql | 1045 +++++++---------- .../sample_data/load_sample_data.sql | 1045 +++++++---------- 2 files changed, 856 insertions(+), 1234 deletions(-) diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 994863961a9..6b0ef76b1b2 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,16 +1,17 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.33-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 --- HeidiSQL Version: 9.3.0.4984 +-- HeidiSQL Version: 9.3.0.5117 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8mb4 */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-default.acc_accounting_rule +-- Dumping structure for table mifostenant-barebone.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +33,11 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_gl_account +-- Dumping structure for table mifostenant-barebone.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,12 +59,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_gl_closure +-- Dumping structure for table mifostenant-barebone.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -86,12 +85,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -103,12 +101,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_gl_journal_entry +-- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -161,12 +158,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_product_mapping +-- Dumping structure for table mifostenant-barebone.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -183,12 +179,11 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.acc_rule_tags +-- Dumping structure for table mifostenant-barebone.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -203,12 +198,11 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; - --- Dumping structure for procedure mifostenant-default.CashierTransactionSummary +-- Dumping structure for procedure mifostenant-barebone.CashierTransactionSummary DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( @@ -216,10 +210,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( IN `tellerId` BIGINT, IN `cashierId` BIGINT, IN `currencyCode` TEXT, - IN `startDate` DATE, - IN `endDate` DATE - - + IN `asOnDate` DATE ) BEGIN @@ -404,20 +395,17 @@ AND c.id = cashierId; -- Insert currency into final temporary table INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); --- Insert start date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); - --- Insert end date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); +-- Insert date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('As On Date', asOnDate, ''); -- Insert opening balance into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Beginning cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -426,10 +414,10 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Ending cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -438,7 +426,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash disbursed' AS '', SUM(CASE -WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -447,7 +435,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash received' AS '', SUM(CASE -WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -455,7 +443,7 @@ FROM temp_cashier_transactions; -- Insert cash allocated into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -463,7 +451,7 @@ FROM temp_cashier_transactions; -- Insert cash settled into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', SUM(CASE -WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -472,7 +460,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Account Transfers' AS '', SUM(CASE -WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -487,7 +475,7 @@ ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') -AND transaction_date BETWEEN startDate AND endDate +AND transaction_date BETWEEN asOnDate AND asOnDate GROUP BY transaction_type; -- SELECT * FROM temp_cashier_transactions; @@ -502,8 +490,7 @@ DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; END// DELIMITER ; - --- Dumping structure for table mifostenant-default.c_account_number_format +-- Dumping structure for table mifostenant-barebone.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -513,12 +500,11 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.c_cache +-- Dumping structure for table mifostenant-barebone.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -526,14 +512,13 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.c_configuration +-- Dumping structure for table mifostenant-barebone.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -547,7 +532,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -579,8 +564,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.c_external_service +-- Dumping structure for table mifostenant-barebone.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -589,15 +573,14 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.c_external_service_properties +-- Dumping structure for table mifostenant-barebone.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -607,7 +590,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -620,8 +603,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('useTLS', 'true', 2); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.job +-- Dumping structure for table mifostenant-barebone.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -643,36 +625,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-barebone.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-22 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-22 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-23 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-23 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-09-23 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-23 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-23 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-09-23 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-09-23 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-09-23 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-09-23 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-09-23 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-09-23 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-09-23 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-09-23 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-09-22 13:15:00', '2016-09-22 13:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-30 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-30 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-09-29 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-30 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-30 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-09-30 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-09-30 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-09-30 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-09-30 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-09-30 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-09-30 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-09-30 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-09-30 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-09-29 12:00:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.job_run_history +-- Dumping structure for table mifostenant-barebone.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -687,17 +668,15 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.job_run_history: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.job_run_history: ~1 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES - (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL), - (2, 23, 2, '2016-09-22 13:15:00', '2016-09-22 13:15:00', 'success', NULL, 'cron', NULL); + (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.mix_taxonomy +-- Dumping structure for table mifostenant-barebone.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -710,7 +689,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -763,8 +742,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` (48, 'WriteOffsOnGrossLoanPortfolio', 3, NULL, 2, 'The value of loans that have been recognized as uncollectible for accounting purposes. A write-off is an accounting procedure that removes the outstanding balance of the loan from the gross loan portfolio and impairment loss allowance. Thus, the write-off does not affect the net loan portfolio, total assets, or any equity account. If the impairment loss allowance is insufficient to cover the amount written off, the excess amount will result in an additional impairment loss on loans recognised in profit or loss of the period.', NULL); /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -775,14 +753,13 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.mix_xbrl_namespace +-- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -792,7 +769,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -804,8 +781,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (7, 'dc-all', 'http://www.themix.org/int/fr/ifrs/basi/2010-08-31/dc-all'); /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_account_transfer_details +-- Dumping structure for table mifostenant-barebone.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -837,12 +813,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -866,12 +841,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -885,12 +859,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_account_transfer_transaction +-- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -919,12 +892,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_address +-- Dumping structure for table mifostenant-barebone.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -951,12 +923,11 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_appuser +-- Dumping structure for table mifostenant-barebone.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -985,15 +956,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), (2, 0, 1, NULL, 'system', 'system', 'system', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'); /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_appuser_previous_password +-- Dumping structure for table mifostenant-barebone.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1005,12 +975,11 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_appuser_role +-- Dumping structure for table mifostenant-barebone.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -1022,14 +991,13 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_calendar +-- Dumping structure for table mifostenant-barebone.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1053,12 +1021,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_calendar_history +-- Dumping structure for table mifostenant-barebone.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1080,12 +1047,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_calendar_instance +-- Dumping structure for table mifostenant-barebone.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1097,12 +1063,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_cashiers +-- Dumping structure for table mifostenant-barebone.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1121,12 +1086,11 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_cashier_transactions +-- Dumping structure for table mifostenant-barebone.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1144,12 +1108,11 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_charge +-- Dumping structure for table mifostenant-barebone.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1179,12 +1142,11 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client +-- Dumping structure for table mifostenant-barebone.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1256,17 +1218,16 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_address +-- Dumping structure for table mifostenant-barebone.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1282,12 +1243,11 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_attendance +-- Dumping structure for table mifostenant-barebone.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1301,12 +1261,11 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_charge +-- Dumping structure for table mifostenant-barebone.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1332,12 +1291,11 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1351,12 +1309,11 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_identifier +-- Dumping structure for table mifostenant-barebone.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1379,12 +1336,11 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_non_person +-- Dumping structure for table mifostenant-barebone.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1400,12 +1356,11 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_client_transaction +-- Dumping structure for table mifostenant-barebone.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1428,12 +1383,11 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_code +-- Dumping structure for table mifostenant-barebone.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1443,7 +1397,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1476,8 +1430,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_code_value +-- Dumping structure for table mifostenant-barebone.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1494,7 +1447,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1, 0), @@ -1511,8 +1464,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (12, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_currency +-- Dumping structure for table mifostenant-barebone.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1526,7 +1478,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1694,8 +1646,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (163, 'ZWD', 2, NULL, NULL, 'Zimbabwe Dollar', 'currency.ZWD'); /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1710,12 +1661,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1732,12 +1682,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1764,12 +1713,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1780,12 +1728,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1798,12 +1745,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1825,12 +1771,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_document +-- Dumping structure for table mifostenant-barebone.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1846,12 +1791,11 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_entity_relation +-- Dumping structure for table mifostenant-barebone.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1862,7 +1806,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1872,8 +1816,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co (5, 5, 3, 'role_access_to_savings_products'); /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_entity_to_entity_access +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1889,12 +1832,11 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1908,12 +1850,11 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_field_configuration +-- Dumping structure for table mifostenant-barebone.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1926,7 +1867,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -1949,8 +1890,7 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_floating_rates +-- Dumping structure for table mifostenant-barebone.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1965,12 +1905,11 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_floating_rates_periods +-- Dumping structure for table mifostenant-barebone.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1988,12 +1927,11 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_fund +-- Dumping structure for table mifostenant-barebone.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2004,12 +1942,11 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_group +-- Dumping structure for table mifostenant-barebone.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2045,12 +1982,11 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_group_client +-- Dumping structure for table mifostenant-barebone.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -2061,12 +1997,11 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_group_level +-- Dumping structure for table mifostenant-barebone.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2080,15 +2015,14 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), (2, 1, 0, 'Group', 0, 1); /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_group_roles +-- Dumping structure for table mifostenant-barebone.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2105,12 +2039,11 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_guarantor +-- Dumping structure for table mifostenant-barebone.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2138,12 +2071,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_guarantor_funding_details +-- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2161,12 +2093,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_guarantor_transaction +-- Dumping structure for table mifostenant-barebone.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2183,12 +2114,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_holiday +-- Dumping structure for table mifostenant-barebone.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2203,12 +2133,11 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_holiday_office +-- Dumping structure for table mifostenant-barebone.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -2220,12 +2149,11 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_hook +-- Dumping structure for table mifostenant-barebone.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2244,12 +2172,11 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_hook_configuration +-- Dumping structure for table mifostenant-barebone.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2262,12 +2189,11 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_hook_registered_events +-- Dumping structure for table mifostenant-barebone.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2279,12 +2205,11 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_hook_schema +-- Dumping structure for table mifostenant-barebone.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2298,7 +2223,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2310,8 +2235,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name (7, 2, 'string', 'SMS Provider Account Id', NULL, 0); /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_hook_templates +-- Dumping structure for table mifostenant-barebone.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2319,15 +2243,14 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), (2, 'SMS Bridge'); /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_image +-- Dumping structure for table mifostenant-barebone.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2336,12 +2259,11 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2357,12 +2279,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2374,12 +2295,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2397,12 +2317,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan +-- Dumping structure for table mifostenant-barebone.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2534,8 +2453,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2543,12 +2462,11 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2581,12 +2499,11 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2599,12 +2516,11 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_arrears_aging +-- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2618,12 +2534,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_charge +-- Dumping structure for table mifostenant-barebone.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2654,12 +2569,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2674,12 +2588,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_collateral +-- Dumping structure for table mifostenant-barebone.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2694,12 +2607,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2712,12 +2624,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2739,12 +2650,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2756,12 +2666,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2780,12 +2689,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2799,12 +2707,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2817,12 +2724,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2846,12 +2752,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2891,12 +2796,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2921,12 +2825,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_reschedule_request +-- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2956,12 +2859,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping +-- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2974,12 +2876,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_term_variations +-- Dumping structure for table mifostenant-barebone.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2997,12 +2898,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_topup +-- Dumping structure for table mifostenant-barebone.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3014,17 +2914,16 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_tranche_charges +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3037,12 +2936,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3055,12 +2953,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_transaction +-- Dumping structure for table mifostenant-barebone.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3093,12 +2990,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3116,12 +3012,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3144,12 +3039,11 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_meeting +-- Dumping structure for table mifostenant-barebone.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3160,12 +3054,11 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_note +-- Dumping structure for table mifostenant-barebone.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3199,12 +3092,11 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_office +-- Dumping structure for table mifostenant-barebone.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3220,14 +3112,13 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_office_transaction +-- Dumping structure for table mifostenant-barebone.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3245,12 +3136,11 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_organisation_currency +-- Dumping structure for table mifostenant-barebone.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3263,14 +3153,13 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_password_validation_policy +-- Dumping structure for table mifostenant-barebone.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3281,15 +3170,14 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), (2, '^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\\s).{6,50}$', 'Password must be at least 6 characters, no more than 50 characters long, must include at least one upper case letter, one lower case letter, one numeric digit and no space', 0, 'secure'); /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_payment_detail +-- Dumping structure for table mifostenant-barebone.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3304,12 +3192,11 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_payment_type +-- Dumping structure for table mifostenant-barebone.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3320,12 +3207,11 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_permission +-- Dumping structure for table mifostenant-barebone.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3336,9 +3222,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=755 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_permission: ~731 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_permission: ~735 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4071,11 +3957,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (750, 'portfolio', 'UNDOREJECT_CLIENT', 'CLIENT', 'UNDOREJECT', 1), (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), - (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1); + (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), + (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_portfolio_account_associations +-- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4096,12 +3982,11 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_portfolio_command_source +-- Dumping structure for table mifostenant-barebone.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4139,12 +4024,11 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan +-- Dumping structure for table mifostenant-barebone.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4212,12 +4096,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_charge +-- Dumping structure for table mifostenant-barebone.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4228,12 +4111,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4251,12 +4133,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4274,12 +4155,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4292,12 +4172,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4323,12 +4202,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4340,12 +4218,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4361,12 +4238,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_product_mix +-- Dumping structure for table mifostenant-barebone.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4379,12 +4255,11 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_provisioning_criteria +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4401,12 +4276,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4428,12 +4302,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_provisioning_history +-- Dumping structure for table mifostenant-barebone.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4449,12 +4322,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_provision_category +-- Dumping structure for table mifostenant-barebone.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4464,7 +4336,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4473,8 +4345,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (4, 'LOSS', 'Principal and/or Interest overdue by y days'); /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_report_mailing_job +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4513,12 +4384,11 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_report_mailing_job_configuration +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4528,7 +4398,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4537,8 +4407,7 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (4, 'GMAIL_SMTP_PASSWORD', ''); /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_report_mailing_job_run_history +-- Dumping structure for table mifostenant-barebone.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4553,12 +4422,11 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_role +-- Dumping structure for table mifostenant-barebone.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4569,14 +4437,13 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_role_permission +-- Dumping structure for table mifostenant-barebone.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4588,14 +4455,13 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account +-- Dumping structure for table mifostenant-barebone.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4671,12 +4537,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_charge +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4707,12 +4572,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4726,12 +4590,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4746,12 +4609,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4769,12 +4631,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_transaction +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4801,12 +4662,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4820,12 +4680,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_interest_incentives +-- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4841,12 +4700,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4865,12 +4723,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_product +-- Dumping structure for table mifostenant-barebone.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4913,12 +4770,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_savings_product_charge +-- Dumping structure for table mifostenant-barebone.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4929,12 +4785,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4950,12 +4805,11 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4968,12 +4822,11 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_account +-- Dumping structure for table mifostenant-barebone.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5027,12 +4880,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_account_charge +-- Dumping structure for table mifostenant-barebone.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5061,12 +4913,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5080,12 +4931,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_account_dividend_details +-- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5101,12 +4951,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_account_transactions +-- Dumping structure for table mifostenant-barebone.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5123,12 +4972,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_product +-- Dumping structure for table mifostenant-barebone.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5167,12 +5015,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_product_charge +-- Dumping structure for table mifostenant-barebone.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -5183,12 +5030,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5210,12 +5056,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_share_product_market_price +-- Dumping structure for table mifostenant-barebone.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5227,12 +5072,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_staff +-- Dumping structure for table mifostenant-barebone.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5258,12 +5102,11 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_staff_assignment_history +-- Dumping structure for table mifostenant-barebone.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5282,12 +5125,11 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_surveys +-- Dumping structure for table mifostenant-barebone.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5300,12 +5142,11 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_survey_components +-- Dumping structure for table mifostenant-barebone.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5319,12 +5160,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_survey_lookup_tables +-- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5339,12 +5179,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_survey_questions +-- Dumping structure for table mifostenant-barebone.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5359,12 +5198,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_survey_responses +-- Dumping structure for table mifostenant-barebone.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5377,12 +5215,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_survey_scorecards +-- Dumping structure for table mifostenant-barebone.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5406,12 +5243,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_tax_component +-- Dumping structure for table mifostenant-barebone.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5437,12 +5273,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_tax_component_history +-- Dumping structure for table mifostenant-barebone.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5463,12 +5298,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_tax_group +-- Dumping structure for table mifostenant-barebone.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5484,12 +5318,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_tax_group_mappings +-- Dumping structure for table mifostenant-barebone.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5512,12 +5345,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_tellers +-- Dumping structure for table mifostenant-barebone.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5539,12 +5371,11 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_template +-- Dumping structure for table mifostenant-barebone.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5556,12 +5387,11 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5571,12 +5401,11 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_template_m_templatemappers +-- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5586,12 +5415,11 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.m_working_days +-- Dumping structure for table mifostenant-barebone.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5601,14 +5429,13 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.oauth_access_token +-- Dumping structure for table mifostenant-barebone.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5620,12 +5447,11 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.oauth_client_details +-- Dumping structure for table mifostenant-barebone.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5642,14 +5468,13 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.oauth_refresh_token +-- Dumping structure for table mifostenant-barebone.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5657,12 +5482,11 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.ppi_likelihoods +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5671,12 +5495,11 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5686,12 +5509,11 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.ppi_scores +-- Dumping structure for table mifostenant-barebone.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5700,7 +5522,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5725,8 +5547,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (20, 95, 100); /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5737,7 +5558,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5749,20 +5570,18 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s (7, 'early-repayment-strategy', 'Early Repayment Strategy', 5); /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.rpt_sequence +-- Dumping structure for table mifostenant-barebone.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.r_enum_value +-- Dumping structure for table mifostenant-barebone.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5775,7 +5594,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-barebone.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5937,8 +5756,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('transaction_type_enum', 11, 'Apply Interest', 'Apply Interest', 0); /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.scheduler_detail +-- Dumping structure for table mifostenant-barebone.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5948,14 +5766,13 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.schema_version +-- Dumping structure for table mifostenant-barebone.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5975,7 +5792,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.schema_version: ~333 rows (approximately) +-- Dumping data for table mifostenant-barebone.schema_version: ~373 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -6257,7 +6074,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', -1735511516, 'root', '2015-06-03 15:26:54', 24, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1349701479, 'root', '2015-06-03 15:26:51', 122, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', -1807166173, 'root', '2015-06-03 15:26:55', 140, 1), - (333, 333, '5000', 'cashier transaction summary pentaho report', 'SQL', 'V5000__cashier_transaction_summary_pentaho_report.sql', 43596337, 'root', '2016-09-22 13:09:27', 198, 1), + (333, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:40', 94, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 729891777, 'root', '2015-06-03 15:26:55', 102, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 1853745947, 'root', '2015-06-03 15:26:55', 71, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', 1135041990, 'root', '2015-06-03 15:26:55', 45, 1), @@ -6313,8 +6130,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -107928515, 'root', '2015-06-03 15:26:58', 325, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.sms_messages_outbound +-- Dumping structure for table mifostenant-barebone.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6333,12 +6149,11 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.stretchy_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6359,7 +6174,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_parameter: ~23 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_parameter: ~23 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6387,8 +6202,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.stretchy_report +-- Dumping structure for table mifostenant-barebone.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6404,7 +6218,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report: ~94 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report: ~125 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6500,11 +6314,10 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); + (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.stretchy_report_parameter +-- Dumping structure for table mifostenant-barebone.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6517,9 +6330,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=449 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=448 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.stretchy_report_parameter: ~342 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~341 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6862,12 +6675,10 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (444, 166, 1011, 'tellerId'), (445, 166, 1012, 'cashierId'), (446, 166, 1013, 'currencyCode'), - (447, 166, 1, 'startDate'), - (448, 166, 2, 'endDate'); + (447, 166, 1009, 'asOnDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.x_registered_table +-- Dumping structure for table mifostenant-barebone.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6876,12 +6687,11 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; - --- Dumping structure for table mifostenant-default.x_table_column_code_mappings +-- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6891,9 +6701,10 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; + /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index ac2095d2dc4..add3218eeb4 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,16 +1,17 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.6.33-log - MySQL Community Server (GPL) +-- Server version: 5.5.34-log - MySQL Community Server (GPL) -- Server OS: Win64 --- HeidiSQL Version: 9.3.0.4984 +-- HeidiSQL Version: 9.3.0.5117 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8mb4 */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-reference.acc_accounting_rule +-- Dumping structure for table mifostenant-sampledata.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -32,12 +33,11 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_gl_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -119,8 +119,7 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, (55, 'Liability Transfer (Temp)', NULL, '.', '220004-Temp', 0, 1, 1, 2, NULL, 'Temporary Liability account to track Account Transfers'); /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_gl_closure +-- Dumping structure for table mifostenant-sampledata.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -142,12 +141,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account +-- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -159,14 +157,13 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_gl_journal_entry +-- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -219,12 +216,11 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_product_mapping +-- Dumping structure for table mifostenant-sampledata.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -241,7 +237,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -264,8 +260,7 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product (18, 54, 1, 1, NULL, NULL, 12); /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.acc_rule_tags +-- Dumping structure for table mifostenant-sampledata.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -280,12 +275,11 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; - --- Dumping structure for procedure mifostenant-reference.CashierTransactionSummary +-- Dumping structure for procedure mifostenant-sampledata.CashierTransactionSummary DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( @@ -293,10 +287,7 @@ CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( IN `tellerId` BIGINT, IN `cashierId` BIGINT, IN `currencyCode` TEXT, - IN `startDate` DATE, - IN `endDate` DATE - - + IN `asOnDate` DATE ) BEGIN @@ -481,20 +472,17 @@ AND c.id = cashierId; -- Insert currency into final temporary table INSERT INTO final_temp_cashier_report VALUES ('Currency', currencyCode, ''); --- Insert start date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('Start Date', startDate, ''); - --- Insert end date into final temporary table -INSERT INTO final_temp_cashier_report VALUES ('End Date', endDate, ''); +-- Insert date into final temporary table +INSERT INTO final_temp_cashier_report VALUES ('As On Date', asOnDate, ''); -- Insert opening balance into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Beginning cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date < startDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date < startDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date < startDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date < asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date < asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date < asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -503,10 +491,10 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Ending cash drawer balance' AS '', CAST(SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_settled' AND transaction_date <= endDate) THEN (-1 * amount) -WHEN (transaction_type = 'cash_in' AND transaction_date <= endDate) THEN amount -WHEN (transaction_type = 'cash_out' AND transaction_date <= endDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_allocated' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date <= asOnDate) THEN (-1 * amount) +WHEN (transaction_type = 'cash_in' AND transaction_date <= asOnDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date <= asOnDate) THEN (-1 * amount) ELSE 0 END) AS CHAR) AS '', '' AS '' FROM temp_cashier_transactions; @@ -515,7 +503,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash disbursed' AS '', SUM(CASE -WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_out' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -524,7 +512,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Total cash received' AS '', SUM(CASE -WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_in' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -532,7 +520,7 @@ FROM temp_cashier_transactions; -- Insert cash allocated into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Allocated' AS '', SUM(CASE -WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_allocated' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -540,7 +528,7 @@ FROM temp_cashier_transactions; -- Insert cash settled into final temporary table INSERT INTO final_temp_cashier_report SELECT 'Cash Settled' AS '', SUM(CASE -WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'cash_settled' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -549,7 +537,7 @@ FROM temp_cashier_transactions; INSERT INTO final_temp_cashier_report SELECT 'Account Transfers' AS '', SUM(CASE -WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN startDate AND endDate) THEN amount +WHEN (transaction_type = 'transfers' AND transaction_date BETWEEN asOnDate AND asOnDate) THEN amount ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions; @@ -564,7 +552,7 @@ ELSE 0 END) AS '', '' AS '' FROM temp_cashier_transactions WHERE transaction_type NOT IN ('cash_allocated', 'cash_settled', 'cash_in', 'cash_out', 'transfers') -AND transaction_date BETWEEN startDate AND endDate +AND transaction_date BETWEEN asOnDate AND asOnDate GROUP BY transaction_type; -- SELECT * FROM temp_cashier_transactions; @@ -579,8 +567,7 @@ DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; END// DELIMITER ; - --- Dumping structure for table mifostenant-reference.c_account_number_format +-- Dumping structure for table mifostenant-sampledata.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -590,12 +577,11 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.c_cache +-- Dumping structure for table mifostenant-sampledata.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -603,14 +589,13 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.c_configuration +-- Dumping structure for table mifostenant-sampledata.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -624,7 +609,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -656,8 +641,7 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.c_external_service +-- Dumping structure for table mifostenant-sampledata.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -666,15 +650,14 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (1, 'S3'), (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.c_external_service_properties +-- Dumping structure for table mifostenant-sampledata.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -684,7 +667,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -697,8 +680,7 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('useTLS', 'true', 2); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.job +-- Dumping structure for table mifostenant-sampledata.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -720,36 +702,35 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job: ~23 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-09-22 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-23 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-09-22 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-09-23 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-09-23 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-09-23 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-09-23 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-09-23 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-09-23 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-09-23 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-09-23 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-09-23 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-09-23 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-09-23 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-09-23 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-09-23 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-09-23 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-09-23 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-09-23 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-09-22 13:15:00', '2016-09-22 13:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-09-29 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-30 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-09-29 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-09-29 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-09-30 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-09-29 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-09-30 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-09-30 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-09-30 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-09-30 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-09-30 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-09-30 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-09-30 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-09-30 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-09-30 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-09-30 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-09-29 12:00:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.job_run_history +-- Dumping structure for table mifostenant-sampledata.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -764,9 +745,9 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.job_run_history: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job_run_history: ~19 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -787,12 +768,10 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim (16, 8, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (17, 1, 1, '2014-06-11 09:30:00', '2014-06-11 09:30:01', 'success', NULL, 'cron', NULL), (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL), - (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL), - (20, 23, 2, '2016-09-22 13:15:00', '2016-09-22 13:15:00', 'success', NULL, 'cron', NULL); + (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.mix_taxonomy +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -805,7 +784,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -858,8 +837,7 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` (48, 'WriteOffsOnGrossLoanPortfolio', 3, NULL, 2, 'The value of loans that have been recognized as uncollectible for accounting purposes. A write-off is an accounting procedure that removes the outstanding balance of the loan from the gross loan portfolio and impairment loss allowance. Thus, the write-off does not affect the net loan portfolio, total assets, or any equity account. If the impairment loss allowance is insufficient to cover the amount written off, the excess amount will result in an additional impairment loss on loans recognised in profit or loss of the period.', NULL); /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping +-- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -870,14 +848,13 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.mix_xbrl_namespace +-- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -887,7 +864,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -899,8 +876,7 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (7, 'dc-all', 'http://www.themix.org/int/fr/ifrs/basi/2010-08-31/dc-all'); /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_account_transfer_details +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -932,12 +908,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -961,12 +936,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -980,12 +954,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_account_transfer_transaction +-- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1014,12 +987,11 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_address +-- Dumping structure for table mifostenant-sampledata.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1046,12 +1018,11 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_appuser +-- Dumping structure for table mifostenant-sampledata.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1080,7 +1051,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -1090,8 +1061,7 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` (6, 0, 1, NULL, 'system', 'system', 'system', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'); /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_appuser_previous_password +-- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1103,12 +1073,11 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_appuser_role +-- Dumping structure for table mifostenant-sampledata.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -1120,7 +1089,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -1129,8 +1098,7 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (5, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_calendar +-- Dumping structure for table mifostenant-sampledata.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1154,12 +1122,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_calendar_history +-- Dumping structure for table mifostenant-sampledata.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1181,12 +1148,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_calendar_instance +-- Dumping structure for table mifostenant-sampledata.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1198,12 +1164,11 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_cashiers +-- Dumping structure for table mifostenant-sampledata.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1222,12 +1187,11 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_cashier_transactions +-- Dumping structure for table mifostenant-sampledata.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1245,12 +1209,11 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_charge +-- Dumping structure for table mifostenant-sampledata.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1280,14 +1243,13 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client +-- Dumping structure for table mifostenant-sampledata.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1359,12 +1321,12 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`, `reopened_on_date`, `reopened_by_userid`) VALUES (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -1376,8 +1338,7 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s (8, '000000008', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Robinson', NULL, 'R', NULL, 'Robinson R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_address +-- Dumping structure for table mifostenant-sampledata.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1393,12 +1354,11 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_attendance +-- Dumping structure for table mifostenant-sampledata.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1412,12 +1372,11 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_charge +-- Dumping structure for table mifostenant-sampledata.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1443,12 +1402,11 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1462,12 +1420,11 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_identifier +-- Dumping structure for table mifostenant-sampledata.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1490,12 +1447,11 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_non_person +-- Dumping structure for table mifostenant-sampledata.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1511,12 +1467,11 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_client_transaction +-- Dumping structure for table mifostenant-sampledata.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1539,12 +1494,11 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_code +-- Dumping structure for table mifostenant-sampledata.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1554,7 +1508,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1587,8 +1541,7 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_code_value +-- Dumping structure for table mifostenant-sampledata.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1605,7 +1558,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1, 0), @@ -1636,8 +1589,7 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (27, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_currency +-- Dumping structure for table mifostenant-sampledata.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1651,7 +1603,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1819,8 +1771,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (163, 'ZWD', 2, NULL, NULL, 'Zimbabwe Dollar', 'currency.ZWD'); /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1835,12 +1786,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1857,12 +1807,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1889,12 +1838,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1905,12 +1853,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1923,12 +1870,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure +-- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1950,12 +1896,11 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_document +-- Dumping structure for table mifostenant-sampledata.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1971,12 +1916,11 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_entity_relation +-- Dumping structure for table mifostenant-sampledata.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1987,7 +1931,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1997,8 +1941,7 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co (5, 5, 3, 'role_access_to_savings_products'); /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_entity_to_entity_access +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2014,12 +1957,11 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping +-- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2033,12 +1975,11 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_field_configuration +-- Dumping structure for table mifostenant-sampledata.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2051,7 +1992,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -2074,8 +2015,7 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2090,12 +2030,11 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_floating_rates_periods +-- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2113,12 +2052,11 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_fund +-- Dumping structure for table mifostenant-sampledata.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2129,14 +2067,13 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_group +-- Dumping structure for table mifostenant-sampledata.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2172,7 +2109,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -2181,8 +2118,7 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o (4, NULL, 300, '2010-01-04', 2, 2, 2, 2, 'Santa Maria Group 2', '.2.4.', NULL, NULL, 1, '2010-01-04', 1, NULL, '000000004'); /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_group_client +-- Dumping structure for table mifostenant-sampledata.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -2193,7 +2129,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -2204,8 +2140,7 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (4, 8); /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_group_level +-- Dumping structure for table mifostenant-sampledata.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2219,15 +2154,14 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), (2, 1, 0, 'Group', 0, 1); /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_group_roles +-- Dumping structure for table mifostenant-sampledata.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2244,12 +2178,11 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_guarantor +-- Dumping structure for table mifostenant-sampledata.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2277,12 +2210,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_guarantor_funding_details +-- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2300,12 +2232,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_guarantor_transaction +-- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2322,12 +2253,11 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_holiday +-- Dumping structure for table mifostenant-sampledata.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2342,12 +2272,11 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_holiday_office +-- Dumping structure for table mifostenant-sampledata.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -2359,12 +2288,11 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_hook +-- Dumping structure for table mifostenant-sampledata.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2383,12 +2311,11 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_hook_configuration +-- Dumping structure for table mifostenant-sampledata.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2401,12 +2328,11 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_hook_registered_events +-- Dumping structure for table mifostenant-sampledata.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2418,12 +2344,11 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_hook_schema +-- Dumping structure for table mifostenant-sampledata.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2437,7 +2362,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2449,8 +2374,7 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name (7, 2, 'string', 'SMS Provider Account Id', NULL, 0); /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_hook_templates +-- Dumping structure for table mifostenant-sampledata.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2458,15 +2382,14 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), (2, 'SMS Bridge'); /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_image +-- Dumping structure for table mifostenant-sampledata.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2475,12 +2398,11 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2496,12 +2418,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2513,12 +2434,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2536,12 +2456,11 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan +-- Dumping structure for table mifostenant-sampledata.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2673,8 +2592,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2682,14 +2601,13 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`, `is_topup`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL, 0); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2722,12 +2640,11 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping +-- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2740,12 +2657,11 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_arrears_aging +-- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2759,12 +2675,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2795,14 +2710,13 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2817,12 +2731,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_collateral +-- Dumping structure for table mifostenant-sampledata.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2837,12 +2750,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail +-- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2855,12 +2767,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2882,12 +2793,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details +-- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2899,12 +2809,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2923,12 +2832,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2942,12 +2850,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance +-- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2960,12 +2867,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2989,12 +2895,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3034,7 +2939,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -3064,8 +2969,7 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, (25, 1, '2014-12-01', '2014-12-08', 25, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0); /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history +-- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3090,12 +2994,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_reschedule_request +-- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3125,12 +3028,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping +-- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3143,12 +3045,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_term_variations +-- Dumping structure for table mifostenant-sampledata.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3166,12 +3067,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_topup +-- Dumping structure for table mifostenant-sampledata.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3183,17 +3083,16 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_tranche_charges +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3206,12 +3105,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge +-- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3224,12 +3122,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_transaction +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3262,12 +3159,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping +-- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3285,12 +3181,11 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule +-- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3313,12 +3208,11 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_meeting +-- Dumping structure for table mifostenant-sampledata.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3329,12 +3223,11 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_note +-- Dumping structure for table mifostenant-sampledata.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3368,12 +3261,11 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_office +-- Dumping structure for table mifostenant-sampledata.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3389,7 +3281,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -3397,8 +3289,7 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` (3, 1, '.3.', NULL, 'Pasay', '2010-02-08'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_office_transaction +-- Dumping structure for table mifostenant-sampledata.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3416,12 +3307,11 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_organisation_currency +-- Dumping structure for table mifostenant-sampledata.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3434,14 +3324,13 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_password_validation_policy +-- Dumping structure for table mifostenant-sampledata.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3452,15 +3341,14 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), (2, '^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\\s).{6,50}$', 'Password must be at least 6 characters, no more than 50 characters long, must include at least one upper case letter, one lower case letter, one numeric digit and no space', 0, 'secure'); /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_payment_detail +-- Dumping structure for table mifostenant-sampledata.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3475,12 +3363,11 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_payment_type +-- Dumping structure for table mifostenant-sampledata.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3491,12 +3378,11 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_permission +-- Dumping structure for table mifostenant-sampledata.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3507,9 +3393,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=754 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=755 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_permission: ~731 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_permission: ~791 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4242,11 +4128,11 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (750, 'portfolio', 'UNDOREJECT_CLIENT', 'CLIENT', 'UNDOREJECT', 1), (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), - (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1); + (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), + (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_portfolio_account_associations +-- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4267,12 +4153,11 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_portfolio_command_source +-- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4310,7 +4195,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~75 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -4387,8 +4272,7 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o (72, 'DELETE', 'FINANCIALACTIVITYACCOUNT', NULL, NULL, NULL, NULL, NULL, '/organizationglaccounts/2', 2, NULL, '{}', 1, '2014-06-16 17:11:12', NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan +-- Dumping structure for table mifostenant-sampledata.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4456,14 +4340,13 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`, `can_use_for_topup`, `sync_expected_with_disbursement_date`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL, 0, 0); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_charge +-- Dumping structure for table mifostenant-sampledata.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4474,14 +4357,13 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes +-- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4499,14 +4381,13 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates +-- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4524,12 +4405,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4542,12 +4422,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details +-- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4573,12 +4452,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4590,12 +4468,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle +-- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4611,12 +4488,11 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_product_mix +-- Dumping structure for table mifostenant-sampledata.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4629,12 +4505,11 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_provisioning_criteria +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4651,12 +4526,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition +-- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4678,12 +4552,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_provisioning_history +-- Dumping structure for table mifostenant-sampledata.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4699,12 +4572,11 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_provision_category +-- Dumping structure for table mifostenant-sampledata.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4714,7 +4586,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4723,8 +4595,7 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (4, 'LOSS', 'Principal and/or Interest overdue by y days'); /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_report_mailing_job +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4763,12 +4634,11 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_report_mailing_job_configuration +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4778,7 +4648,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4787,8 +4657,7 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (4, 'GMAIL_SMTP_PASSWORD', ''); /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_report_mailing_job_run_history +-- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4803,12 +4672,11 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_role +-- Dumping structure for table mifostenant-sampledata.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4819,14 +4687,13 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_role_permission +-- Dumping structure for table mifostenant-sampledata.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4838,14 +4705,13 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account +-- Dumping structure for table mifostenant-sampledata.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4921,12 +4787,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4957,12 +4822,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4976,12 +4840,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4996,12 +4859,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab +-- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5019,12 +4881,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_transaction +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5051,12 +4912,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details +-- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5070,12 +4930,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_interest_incentives +-- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5091,12 +4950,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5115,12 +4973,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_product +-- Dumping structure for table mifostenant-sampledata.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5163,14 +5020,13 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_savings_product_charge +-- Dumping structure for table mifostenant-sampledata.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -5181,12 +5037,11 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt +-- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5202,12 +5057,11 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping +-- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5220,12 +5074,11 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_account +-- Dumping structure for table mifostenant-sampledata.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5279,12 +5132,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_account_charge +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5313,12 +5165,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by +-- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5332,12 +5183,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_account_dividend_details +-- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5353,12 +5203,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_account_transactions +-- Dumping structure for table mifostenant-sampledata.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5375,12 +5224,11 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_product +-- Dumping structure for table mifostenant-sampledata.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5419,12 +5267,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_product_charge +-- Dumping structure for table mifostenant-sampledata.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -5435,12 +5282,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out +-- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5462,12 +5308,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_share_product_market_price +-- Dumping structure for table mifostenant-sampledata.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5479,12 +5324,11 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_staff +-- Dumping structure for table mifostenant-sampledata.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5510,7 +5354,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -5518,8 +5362,7 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn (3, 1, 3, 'John', 'K', 'K, John', NULL, NULL, NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_staff_assignment_history +-- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5538,12 +5381,11 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_surveys +-- Dumping structure for table mifostenant-sampledata.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5556,12 +5398,11 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_survey_components +-- Dumping structure for table mifostenant-sampledata.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5575,12 +5416,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_survey_lookup_tables +-- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5595,12 +5435,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_survey_questions +-- Dumping structure for table mifostenant-sampledata.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5615,12 +5454,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_survey_responses +-- Dumping structure for table mifostenant-sampledata.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5633,12 +5471,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_survey_scorecards +-- Dumping structure for table mifostenant-sampledata.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5662,12 +5499,11 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_tax_component +-- Dumping structure for table mifostenant-sampledata.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5693,12 +5529,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_tax_component_history +-- Dumping structure for table mifostenant-sampledata.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5719,12 +5554,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_tax_group +-- Dumping structure for table mifostenant-sampledata.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5740,12 +5574,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_tax_group_mappings +-- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5768,12 +5601,11 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_tellers +-- Dumping structure for table mifostenant-sampledata.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5795,12 +5627,11 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_template +-- Dumping structure for table mifostenant-sampledata.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5812,12 +5643,11 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5827,12 +5657,11 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_template_m_templatemappers +-- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5842,12 +5671,11 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.m_working_days +-- Dumping structure for table mifostenant-sampledata.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5857,14 +5685,13 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.oauth_access_token +-- Dumping structure for table mifostenant-sampledata.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5876,12 +5703,11 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.oauth_client_details +-- Dumping structure for table mifostenant-sampledata.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5898,14 +5724,13 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.oauth_refresh_token +-- Dumping structure for table mifostenant-sampledata.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5913,12 +5738,11 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.ppi_likelihoods +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5927,12 +5751,11 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi +-- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5942,12 +5765,11 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.ppi_scores +-- Dumping structure for table mifostenant-sampledata.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5956,7 +5778,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5981,8 +5803,7 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (20, 95, 100); /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy +-- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5993,7 +5814,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -6005,20 +5826,18 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s (7, 'early-repayment-strategy', 'Early Repayment Strategy', 5); /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.rpt_sequence +-- Dumping structure for table mifostenant-sampledata.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.r_enum_value +-- Dumping structure for table mifostenant-sampledata.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -6031,7 +5850,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-sampledata.r_enum_value: ~157 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -6193,8 +6012,7 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('transaction_type_enum', 11, 'Apply Interest', 'Apply Interest', 0); /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.scheduler_detail +-- Dumping structure for table mifostenant-sampledata.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -6204,14 +6022,13 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.schema_version +-- Dumping structure for table mifostenant-sampledata.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -6231,7 +6048,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-reference.schema_version: ~333 rows (approximately) +-- Dumping data for table mifostenant-sampledata.schema_version: ~373 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -6513,7 +6330,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', 170618680, 'root', '2014-03-08 02:29:03', 176, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1171300485, 'root', '2014-03-08 02:28:39', 636, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', 188244658, 'root', '2014-03-08 02:29:05', 926, 1), - (333, 333, '5000', 'cashier transaction summary pentaho report', 'SQL', 'V5000__cashier_transaction_summary_pentaho_report.sql', 43596337, 'root', '2016-09-22 13:09:28', 78, 1), + (333, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:41', 69, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 2012793946, 'root', '2014-03-08 02:29:05', 602, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 961668575, 'root', '2014-03-08 02:29:06', 501, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', -230737076, 'root', '2014-03-08 02:29:06', 212, 1), @@ -6569,8 +6386,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -131804848, 'root', '2014-03-08 02:29:23', 1440, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.sms_messages_outbound +-- Dumping structure for table mifostenant-sampledata.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6589,12 +6405,11 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.stretchy_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6615,7 +6430,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_parameter: ~23 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~23 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6643,8 +6458,7 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.stretchy_report +-- Dumping structure for table mifostenant-sampledata.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6660,7 +6474,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report: ~94 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report: ~125 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6756,11 +6570,10 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Cashier Transaction Summary (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Cashier Transaction Summary', 1, 1); + (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.stretchy_report_parameter +-- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6773,9 +6586,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=449 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=448 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~342 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~341 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -7118,12 +6931,10 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (444, 166, 1011, 'tellerId'), (445, 166, 1012, 'cashierId'), (446, 166, 1013, 'currencyCode'), - (447, 166, 1, 'startDate'), - (448, 166, 2, 'endDate'); + (447, 166, 1009, 'asOnDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.x_registered_table +-- Dumping structure for table mifostenant-sampledata.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -7132,12 +6943,11 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; - --- Dumping structure for table mifostenant-reference.x_table_column_code_mappings +-- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -7147,9 +6957,10 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; + /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; From 2a2db0c20484486cd44f46c68682600c30eb5be1 Mon Sep 17 00:00:00 2001 From: Adi Narayana Raju Date: Mon, 14 Nov 2016 20:27:46 +0530 Subject: [PATCH 21/25] Preparing 16.11.01.RELEASE --- MIFOS-CHANGELOG.md | 30 ++ api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- .../migrations/sample_data/barebones_db.sql | 276 ++++++++++++++---- .../sample_data/load_sample_data.sql | 276 ++++++++++++++---- 5 files changed, 486 insertions(+), 100 deletions(-) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index cbbf7c3751e..df57fbbc76f 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -3,6 +3,7 @@ Changelog Releases =============== +1. 14 Nov 2016 - 16.11.01.RELEASE 1. 22 Sep 2016 - 16.09.01.RELEASE 1. 16 Aug 2016 - 16.08.01.RELEASE 1. 27 Jun 2016 - 16.06.01.RELEASE @@ -90,6 +91,35 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.11.01.RELEASE +============= + +This release is being made on top of first Fineract incubator release (0.4.0.incubating) which involved migration to OpenJPA instead of hibernate as JPA provider. +This release adds SMS campaign as a new major feature along with below additional enhancements. + +Platform & API +New Features & Improvements + + - Migration to OpenJPA + - SMS Campaign feature + - [FINERACT-37] - Support rescheduling repayments on holidays + - Add API to allow self service user to change their password + - Savings interest posting on specified date + +Community-app +New Features & Improvements + + - SMS Campaign feature + - UI for address module enhancement + - Savings interest posting on specified date + + Bugs + + - interest amount label in prepay loan page + - [MIFOSX-2794] - After Cancel of edit meeting page the "Next Meeting on" is not displaying date in Center general page + - [MIFOSX-2745] - GL Creation + + 16.09.01.RELEASE ============= diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index 467d6c543f3..cbb2cbf193d 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index 4ae4ab55c96..ea6d83ce537 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. # -releaseVersion=16.09.01.RELEASE +releaseVersion=16.11.01.RELEASE buildType=BUILD diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 6b0ef76b1b2..1a3ed0aeba3 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -571,11 +571,12 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service: ~3 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES + (3, 'MESSAGE_GATEWAY'), (1, 'S3'), (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; @@ -590,7 +591,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-barebone.c_external_service_properties: ~12 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -600,7 +601,11 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('password', 'support81', 2), ('host', 'smtp.gmail.com', 2), ('port', '25', 2), - ('useTLS', 'true', 2); + ('useTLS', 'true', 2), + ('host_name', 'localhost', 3), + ('port_number', '9191', 3), + ('end_point', '/', 3), + ('tenant_app_key', NULL, 3); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.job @@ -623,34 +628,37 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-barebone.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-30 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-09-29 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-30 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-09-29 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-30 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-09-30 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-09-30 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-09-30 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-09-30 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-09-30 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-09-30 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-09-30 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-09-30 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-09-30 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-09-29 12:00:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-14 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-11-15 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-15 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-15 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-11-15 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-11-15 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-11-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-11-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-11-15 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-11-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-11-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-11-15 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-11-14 20:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update Sms Outbound with campaign message', 'Update Sms Outbound with campaign message', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Update Sms Outbound with campaign message1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), + (25, 'Send messages to SMS gateway', 'Send messages to SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Send messages to SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), + (26, 'Get delivery reports from SMS gateway', 'Get delivery reports from SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Get delivery reports from SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.job_run_history @@ -1445,9 +1453,9 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( UNIQUE KEY `code_value` (`code_id`,`code_value`), KEY `FKCFCEA42640BE071Z` (`code_id`), CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code_value: ~12 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_code_value: ~13 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1, 0), @@ -1461,7 +1469,8 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (9, 6, 'Other', NULL, 0, NULL, 1, 0), (10, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1, 0), (11, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1, 0), - (12, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); + (12, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0), + (13, 13, 'Leader', 'Group Leader Role', 1, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.m_currency @@ -3222,9 +3231,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=755 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_permission: ~735 rows (approximately) +-- Dumping data for table mifostenant-barebone.m_permission: ~711 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3958,7 +3967,17 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), - (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); + (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), + (755, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), + (756, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), + (757, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), + (758, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), + (759, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), + (760, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), + (761, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), + (762, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), + (763, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), + (764, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations @@ -4653,6 +4672,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `cumulative_balance_derived` decimal(19,6) DEFAULT NULL, `created_date` datetime NOT NULL, `appuser_id` bigint(20) DEFAULT NULL, + `is_manual` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), KEY `FKSAT0000000001` (`savings_account_id`), KEY `FK_m_savings_account_transaction_m_payment_detail` (`payment_detail_id`), @@ -5426,13 +5446,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( `recurrence` varchar(100) DEFAULT NULL, `repayment_rescheduling_enum` smallint(5) DEFAULT NULL, `extend_term_daily_repayments` tinyint(1) DEFAULT '0', + `extend_term_holiday_repayment` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; -INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES - (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); +INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES + (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.oauth_access_token @@ -5594,7 +5615,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-barebone.r_enum_value: ~160 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5705,6 +5726,9 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), + ('loan_type_enum', -1, 'All', 'All', 0), + ('loan_type_enum', 1, 'Individual Loan', 'Individual Loan', 0), + ('loan_type_enum', 2, 'Group Loan', 'Group Loan', 0), ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), ('portfolio_account_type_enum', 2, 'SAVING', 'EXPENSE', 0), ('portfolio_account_type_enum', 3, 'PROVISIONING', 'PROVISIONING', 0), @@ -5792,7 +5816,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.schema_version: ~373 rows (approximately) +-- Dumping data for table mifostenant-barebone.schema_version: ~393 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -6054,6 +6078,9 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:23', 586, 1), (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:23', 198, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), + (333, 334, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-14 20:20:28', 271, 1), + (334, 335, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-14 20:20:29', 165, 1), + (335, 336, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1983831355, 'root', '2016-11-14 20:20:29', 455, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1286928230, 'root', '2015-06-03 15:26:53', 22, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2015-06-03 15:26:54', 49, 1), @@ -6074,7 +6101,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', -1735511516, 'root', '2015-06-03 15:26:54', 24, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1349701479, 'root', '2015-06-03 15:26:51', 122, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', -1807166173, 'root', '2015-06-03 15:26:55', 140, 1), - (333, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:40', 94, 1), + (336, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:40', 94, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 729891777, 'root', '2015-06-03 15:26:55', 102, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 1853745947, 'root', '2015-06-03 15:26:55', 71, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', 1135041990, 'root', '2015-06-03 15:26:55', 45, 1), @@ -6130,6 +6157,38 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -107928515, 'root', '2015-06-03 15:26:58', 325, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; +-- Dumping structure for table mifostenant-barebone.sms_campaign +DROP TABLE IF EXISTS `sms_campaign`; +CREATE TABLE IF NOT EXISTS `sms_campaign` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `campaign_name` varchar(100) NOT NULL, + `campaign_type` int(11) NOT NULL, + `campaign_trigger_type` int(11) NOT NULL, + `report_id` int(11) NOT NULL, + `provider_id` bigint(20) NOT NULL, + `param_value` text, + `status_enum` int(11) NOT NULL, + `message` text NOT NULL, + `submittedon_date` date DEFAULT NULL, + `submittedon_userid` bigint(20) DEFAULT NULL, + `approvedon_date` date DEFAULT NULL, + `approvedon_userid` bigint(20) DEFAULT NULL, + `closedon_date` date DEFAULT NULL, + `closedon_userid` bigint(20) DEFAULT NULL, + `recurrence` varchar(100) DEFAULT NULL, + `next_trigger_date` datetime DEFAULT NULL, + `last_trigger_date` datetime DEFAULT NULL, + `recurrence_start_date` datetime DEFAULT NULL, + `is_visible` tinyint(1) DEFAULT '1', + PRIMARY KEY (`id`), + KEY `report_id` (`report_id`), + CONSTRAINT `sms_campaign_ibfk_1` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-barebone.sms_campaign: ~0 rows (approximately) +/*!40000 ALTER TABLE `sms_campaign` DISABLE KEYS */; +/*!40000 ALTER TABLE `sms_campaign` ENABLE KEYS */; + -- Dumping structure for table mifostenant-barebone.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( @@ -6140,10 +6199,16 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `status_enum` int(5) NOT NULL DEFAULT '100', `mobile_no` varchar(50) NOT NULL, `message` varchar(1000) NOT NULL, + `campaign_id` bigint(20) NOT NULL, + `external_id` bigint(20) DEFAULT NULL, + `submittedon_date` date DEFAULT NULL, + `delivered_on_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `FKGROUP000000001` (`group_id`), KEY `FKCLIENT00000001` (`client_id`), KEY `FKSTAFF000000001` (`staff_id`), + KEY `FKCAMPAIGN00000001` (`campaign_id`), + CONSTRAINT `FKCAMPAIGN00000001` FOREIGN KEY (`campaign_id`) REFERENCES `sms_campaign` (`id`), CONSTRAINT `FKCLIENT00000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKGROUP000000001` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) @@ -6172,9 +6237,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1026 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_parameter: ~23 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_parameter: ~35 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6199,7 +6264,19 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), - (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); + (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL), + (1014, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1015, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1016, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1017, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1018, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1019, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1020, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1021, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), + (1022, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1023, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), + (1024, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1025, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.stretchy_report @@ -6216,9 +6293,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report: ~125 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report: ~199 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6314,7 +6391,29 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); + (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1), + (167, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), + (168, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), + (169, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan', 0, 1), + (170, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between X and Y days', 0, 1), + (171, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between X and Y days', 0, 1), + (172, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), + (173, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), + (174, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between X to Y days for clients in arrears between X and Y days', 0, 1), + (175, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Active (on-time)', 0, 1), + (176, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Overdue (arrears) between X and Y days', 0, 1), + (177, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND c.date_of_birth = CURDATE()\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), + (178, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id = 600 OR l.loan_status_id = 700)\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last X to Y days', 0, 1), + (179, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between X to Y days after the final instalment date on their loan schedule', 0, 1), + (180, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), + (181, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), + (182, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), + (183, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), + (184, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), + (185, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), + (186, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), + (187, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), + (188, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.stretchy_report_parameter @@ -6330,9 +6429,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION -) ENGINE=InnoDB AUTO_INCREMENT=448 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=527 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~341 rows (approximately) +-- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~439 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6675,7 +6774,86 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (444, 166, 1011, 'tellerId'), (445, 166, 1012, 'cashierId'), (446, 166, 1013, 'currencyCode'), - (447, 166, 1009, 'asOnDate'); + (447, 166, 1009, 'asOnDate'), + (448, 167, 5, 'officeId'), + (449, 167, 6, 'loanOfficerId'), + (450, 168, 5, 'officeId'), + (451, 168, 6, 'loanOfficerId'), + (452, 169, 5, 'officeId'), + (453, 169, 6, 'loanOfficerId'), + (454, 169, 1014, 'cycleX'), + (455, 169, 1015, 'cycleY'), + (456, 170, 5, 'officeId'), + (457, 170, 6, 'loanOfficerId'), + (458, 170, 1016, 'fromX'), + (459, 170, 1017, 'toY'), + (460, 171, 5, 'officeId'), + (461, 171, 6, 'loanOfficerId'), + (462, 171, 1016, 'fromX'), + (463, 171, 1017, 'toY'), + (464, 172, 5, 'officeId'), + (465, 172, 6, 'loanOfficerId'), + (466, 173, 5, 'officeId'), + (467, 173, 6, 'loanOfficerId'), + (468, 174, 5, 'officeId'), + (469, 174, 6, 'loanOfficerId'), + (470, 174, 1016, 'fromX'), + (471, 174, 1017, 'toY'), + (472, 174, 1018, 'overdueX'), + (473, 174, 1019, 'overdueY'), + (474, 175, 5, 'officeId'), + (475, 175, 6, 'loanOfficerId'), + (476, 175, 1016, 'fromX'), + (477, 175, 1017, 'toY'), + (478, 176, 5, 'officeId'), + (479, 176, 6, 'loanOfficerId'), + (480, 176, 1016, 'fromX'), + (481, 176, 1017, 'toY'), + (482, 176, 1018, 'overdueX'), + (483, 176, 1019, 'overdueY'), + (484, 177, 5, 'officeId'), + (485, 177, 6, 'loanOfficerId'), + (486, 178, 5, 'officeId'), + (487, 178, 6, 'loanOfficerId'), + (488, 178, 1016, 'fromX'), + (489, 178, 1017, 'toY'), + (490, 179, 5, 'officeId'), + (491, 179, 6, 'loanOfficerId'), + (492, 179, 1016, 'fromX'), + (493, 179, 1017, 'toY'), + (494, 182, 5, 'officeId'), + (495, 181, 5, 'officeId'), + (496, 180, 5, 'officeId'), + (497, 182, 6, 'loanOfficerId'), + (498, 181, 6, 'loanOfficerId'), + (499, 180, 6, 'loanOfficerId'), + (500, 182, 1020, 'loanId'), + (501, 181, 1020, 'loanId'), + (502, 182, 1021, 'clientId'), + (503, 181, 1021, 'clientId'), + (504, 182, 1022, 'groupId'), + (505, 181, 1022, 'groupId'), + (506, 182, 1023, 'loanType'), + (507, 181, 1023, 'loanType'), + (508, 180, 1023, 'loanType'), + (509, 183, 5, 'officeId'), + (510, 184, 5, 'officeId'), + (511, 183, 6, 'loanOfficerId'), + (512, 184, 6, 'loanOfficerId'), + (513, 183, 1021, 'clientId'), + (514, 184, 1021, 'clientId'), + (515, 185, 5, 'officeId'), + (516, 185, 6, 'loanOfficerId'), + (517, 185, 1024, 'savingsId'), + (518, 186, 5, 'officeId'), + (519, 186, 6, 'loanOfficerId'), + (520, 186, 1024, 'savingsId'), + (521, 187, 5, 'officeId'), + (522, 187, 6, 'loanOfficerId'), + (523, 187, 1025, 'savingsTransactionId'), + (524, 188, 5, 'officeId'), + (525, 188, 6, 'loanOfficerId'), + (526, 188, 1025, 'savingsTransactionId'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; -- Dumping structure for table mifostenant-barebone.x_registered_table diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index add3218eeb4..349573595ee 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -648,11 +648,12 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( `name` varchar(100) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `name_UNIQUE` (`name`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service: ~2 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service: ~3 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES + (3, 'MESSAGE_GATEWAY'), (1, 'S3'), (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; @@ -667,7 +668,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~8 rows (approximately) +-- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~12 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -677,7 +678,11 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('password', 'support81', 2), ('host', 'smtp.gmail.com', 2), ('port', '25', 2), - ('useTLS', 'true', 2); + ('useTLS', 'true', 2), + ('host_name', 'localhost', 3), + ('port_number', '9191', 3), + ('end_point', '/', 3), + ('tenant_app_key', NULL, 3); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.job @@ -700,34 +705,37 @@ CREATE TABLE IF NOT EXISTS `job` ( `scheduler_group` smallint(2) NOT NULL DEFAULT '0', `is_misfired` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job: ~23 rows (approximately) +-- Dumping data for table mifostenant-sampledata.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-09-29 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-09-30 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-09-29 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-09-29 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-09-30 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-09-29 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-09-30 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-09-30 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-09-30 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-09-30 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-09-30 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-09-30 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-09-30 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-09-30 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-09-30 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-09-30 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-09-30 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-09-30 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-09-30 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-09-29 12:00:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-11-14 22:00:00', 'Update loan SummaryJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Loan Arrears AgeingJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-11-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-11-15 12:00:00', 'Apply Holidays To LoansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Interest For SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-11-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-11-15 12:00:00', 'Pay Due Savings ChargesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Accounting Running BalancesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-11-15 00:00:00', 'Execute Standing InstructionJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-11-15 00:00:00', 'Apply penalty to overdue loansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-11-15 00:00:00', 'Update Non Performing AssetsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-11-15 00:02:00', 'Transfer Interest To SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-11-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-11-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-11-15 00:01:00', 'Recalculate Interest For LoansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-11-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-11-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Dividends For SharesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-11-15 00:00:00', 'Update Savings Dormant AccountsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-11-14 20:30:00', 'Execute Report Mailing JobsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update Sms Outbound with campaign message', 'Update Sms Outbound with campaign message', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Update Sms Outbound with campaign message1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), + (25, 'Send messages to SMS gateway', 'Send messages to SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Send messages to SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), + (26, 'Get delivery reports from SMS gateway', 'Get delivery reports from SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Get delivery reports from SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.job_run_history @@ -1556,9 +1564,9 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( UNIQUE KEY `code_value` (`code_id`,`code_value`), KEY `FKCFCEA42640BE071Z` (`code_id`), CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code_value: ~26 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_code_value: ~27 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1, 0), @@ -1586,7 +1594,8 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (24, 4, 'Female', NULL, 2, NULL, 1, 0), (25, 21, 'Office Access to Loan Products', NULL, 0, NULL, 1, 0), (26, 21, 'Office Access to Savings Products', NULL, 0, NULL, 1, 0), - (27, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0); + (27, 21, 'Office Access to Fees/Charges', NULL, 0, NULL, 1, 0), + (28, 13, 'Leader', 'Group Leader Role', 1, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.m_currency @@ -3393,9 +3402,9 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=755 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_permission: ~791 rows (approximately) +-- Dumping data for table mifostenant-sampledata.m_permission: ~763 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4129,7 +4138,17 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), - (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); + (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), + (755, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), + (756, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), + (757, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), + (758, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), + (759, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), + (760, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), + (761, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), + (762, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), + (763, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), + (764, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations @@ -4903,6 +4922,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `cumulative_balance_derived` decimal(19,6) DEFAULT NULL, `created_date` datetime NOT NULL, `appuser_id` bigint(20) DEFAULT NULL, + `is_manual` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), KEY `FKSAT0000000001` (`savings_account_id`), KEY `FK_m_savings_account_transaction_m_payment_detail` (`payment_detail_id`), @@ -5682,13 +5702,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( `recurrence` varchar(100) DEFAULT NULL, `repayment_rescheduling_enum` smallint(5) DEFAULT NULL, `extend_term_daily_repayments` tinyint(1) DEFAULT '0', + `extend_term_holiday_repayment` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; -INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`) VALUES - (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0); +INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES + (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.oauth_access_token @@ -5850,7 +5871,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.r_enum_value: ~157 rows (approximately) +-- Dumping data for table mifostenant-sampledata.r_enum_value: ~160 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5961,6 +5982,9 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), + ('loan_type_enum', -1, 'All', 'All', 0), + ('loan_type_enum', 1, 'Individual Loan', 'Individual Loan', 0), + ('loan_type_enum', 2, 'Group Loan', 'Group Loan', 0), ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), ('portfolio_account_type_enum', 2, 'SAVING', 'EXPENSE', 0), ('portfolio_account_type_enum', 3, 'PROVISIONING', 'PROVISIONING', 0), @@ -6048,7 +6072,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.schema_version: ~373 rows (approximately) +-- Dumping data for table mifostenant-sampledata.schema_version: ~330 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -6310,6 +6334,9 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:28', 732, 1), (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:28', 232, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), + (333, 334, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-14 20:20:30', 245, 1), + (334, 335, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-14 20:20:30', 153, 1), + (335, 336, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1983831355, 'root', '2016-11-14 20:20:31', 504, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1989718961, 'root', '2014-03-08 02:28:56', 254, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2014-03-08 02:28:57', 300, 1), @@ -6330,7 +6357,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', 170618680, 'root', '2014-03-08 02:29:03', 176, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1171300485, 'root', '2014-03-08 02:28:39', 636, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', 188244658, 'root', '2014-03-08 02:29:05', 926, 1), - (333, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:41', 69, 1), + (336, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:41', 69, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 2012793946, 'root', '2014-03-08 02:29:05', 602, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 961668575, 'root', '2014-03-08 02:29:06', 501, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', -230737076, 'root', '2014-03-08 02:29:06', 212, 1), @@ -6386,6 +6413,38 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -131804848, 'root', '2014-03-08 02:29:23', 1440, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; +-- Dumping structure for table mifostenant-sampledata.sms_campaign +DROP TABLE IF EXISTS `sms_campaign`; +CREATE TABLE IF NOT EXISTS `sms_campaign` ( + `id` bigint(20) NOT NULL AUTO_INCREMENT, + `campaign_name` varchar(100) NOT NULL, + `campaign_type` int(11) NOT NULL, + `campaign_trigger_type` int(11) NOT NULL, + `report_id` int(11) NOT NULL, + `provider_id` bigint(20) NOT NULL, + `param_value` text, + `status_enum` int(11) NOT NULL, + `message` text NOT NULL, + `submittedon_date` date DEFAULT NULL, + `submittedon_userid` bigint(20) DEFAULT NULL, + `approvedon_date` date DEFAULT NULL, + `approvedon_userid` bigint(20) DEFAULT NULL, + `closedon_date` date DEFAULT NULL, + `closedon_userid` bigint(20) DEFAULT NULL, + `recurrence` varchar(100) DEFAULT NULL, + `next_trigger_date` datetime DEFAULT NULL, + `last_trigger_date` datetime DEFAULT NULL, + `recurrence_start_date` datetime DEFAULT NULL, + `is_visible` tinyint(1) DEFAULT '1', + PRIMARY KEY (`id`), + KEY `report_id` (`report_id`), + CONSTRAINT `sms_campaign_ibfk_1` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +-- Dumping data for table mifostenant-sampledata.sms_campaign: ~0 rows (approximately) +/*!40000 ALTER TABLE `sms_campaign` DISABLE KEYS */; +/*!40000 ALTER TABLE `sms_campaign` ENABLE KEYS */; + -- Dumping structure for table mifostenant-sampledata.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( @@ -6396,10 +6455,16 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `status_enum` int(5) NOT NULL DEFAULT '100', `mobile_no` varchar(50) NOT NULL, `message` varchar(1000) NOT NULL, + `campaign_id` bigint(20) NOT NULL, + `external_id` bigint(20) DEFAULT NULL, + `submittedon_date` date DEFAULT NULL, + `delivered_on_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), KEY `FKGROUP000000001` (`group_id`), KEY `FKCLIENT00000001` (`client_id`), KEY `FKSTAFF000000001` (`staff_id`), + KEY `FKCAMPAIGN00000001` (`campaign_id`), + CONSTRAINT `FKCAMPAIGN00000001` FOREIGN KEY (`campaign_id`) REFERENCES `sms_campaign` (`id`), CONSTRAINT `FKCLIENT00000001` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`), CONSTRAINT `FKGROUP000000001` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`), CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) @@ -6428,9 +6493,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( UNIQUE KEY `name_UNIQUE` (`parameter_name`), KEY `fk_stretchy_parameter_001_idx` (`parent_id`), CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=1014 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=1026 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~23 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~35 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6455,7 +6520,19 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), - (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); + (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL), + (1014, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1015, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1016, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1017, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1018, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1019, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1020, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1021, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), + (1022, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1023, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), + (1024, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1025, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.stretchy_report @@ -6472,9 +6549,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( `use_report` tinyint(1) DEFAULT '0', PRIMARY KEY (`id`), UNIQUE KEY `report_name_UNIQUE` (`report_name`) -) ENGINE=InnoDB AUTO_INCREMENT=167 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report: ~125 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report: ~107 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6570,7 +6647,29 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); + (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1), + (167, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), + (168, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), + (169, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan', 0, 1), + (170, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between X and Y days', 0, 1), + (171, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between X and Y days', 0, 1), + (172, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), + (173, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), + (174, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between X to Y days for clients in arrears between X and Y days', 0, 1), + (175, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Active (on-time)', 0, 1), + (176, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Overdue (arrears) between X and Y days', 0, 1), + (177, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND c.date_of_birth = CURDATE()\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), + (178, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id = 600 OR l.loan_status_id = 700)\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last X to Y days', 0, 1), + (179, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between X to Y days after the final instalment date on their loan schedule', 0, 1), + (180, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), + (181, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), + (182, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), + (183, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), + (184, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), + (185, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), + (186, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), + (187, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), + (188, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter @@ -6586,9 +6685,9 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( KEY `fk_report_parameter_002_idx` (`parameter_id`), CONSTRAINT `fk_report_parameter_001` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ON DELETE CASCADE, CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=448 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=527 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~341 rows (approximately) +-- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~439 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6931,7 +7030,86 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (444, 166, 1011, 'tellerId'), (445, 166, 1012, 'cashierId'), (446, 166, 1013, 'currencyCode'), - (447, 166, 1009, 'asOnDate'); + (447, 166, 1009, 'asOnDate'), + (448, 167, 5, 'officeId'), + (449, 167, 6, 'loanOfficerId'), + (450, 168, 5, 'officeId'), + (451, 168, 6, 'loanOfficerId'), + (452, 169, 5, 'officeId'), + (453, 169, 6, 'loanOfficerId'), + (454, 169, 1014, 'cycleX'), + (455, 169, 1015, 'cycleY'), + (456, 170, 5, 'officeId'), + (457, 170, 6, 'loanOfficerId'), + (458, 170, 1016, 'fromX'), + (459, 170, 1017, 'toY'), + (460, 171, 5, 'officeId'), + (461, 171, 6, 'loanOfficerId'), + (462, 171, 1016, 'fromX'), + (463, 171, 1017, 'toY'), + (464, 172, 5, 'officeId'), + (465, 172, 6, 'loanOfficerId'), + (466, 173, 5, 'officeId'), + (467, 173, 6, 'loanOfficerId'), + (468, 174, 5, 'officeId'), + (469, 174, 6, 'loanOfficerId'), + (470, 174, 1016, 'fromX'), + (471, 174, 1017, 'toY'), + (472, 174, 1018, 'overdueX'), + (473, 174, 1019, 'overdueY'), + (474, 175, 5, 'officeId'), + (475, 175, 6, 'loanOfficerId'), + (476, 175, 1016, 'fromX'), + (477, 175, 1017, 'toY'), + (478, 176, 5, 'officeId'), + (479, 176, 6, 'loanOfficerId'), + (480, 176, 1016, 'fromX'), + (481, 176, 1017, 'toY'), + (482, 176, 1018, 'overdueX'), + (483, 176, 1019, 'overdueY'), + (484, 177, 5, 'officeId'), + (485, 177, 6, 'loanOfficerId'), + (486, 178, 5, 'officeId'), + (487, 178, 6, 'loanOfficerId'), + (488, 178, 1016, 'fromX'), + (489, 178, 1017, 'toY'), + (490, 179, 5, 'officeId'), + (491, 179, 6, 'loanOfficerId'), + (492, 179, 1016, 'fromX'), + (493, 179, 1017, 'toY'), + (494, 182, 5, 'officeId'), + (495, 181, 5, 'officeId'), + (496, 180, 5, 'officeId'), + (497, 182, 6, 'loanOfficerId'), + (498, 181, 6, 'loanOfficerId'), + (499, 180, 6, 'loanOfficerId'), + (500, 182, 1020, 'loanId'), + (501, 181, 1020, 'loanId'), + (502, 182, 1021, 'clientId'), + (503, 181, 1021, 'clientId'), + (504, 182, 1022, 'groupId'), + (505, 181, 1022, 'groupId'), + (506, 182, 1023, 'loanType'), + (507, 181, 1023, 'loanType'), + (508, 180, 1023, 'loanType'), + (509, 183, 5, 'officeId'), + (510, 184, 5, 'officeId'), + (511, 183, 6, 'loanOfficerId'), + (512, 184, 6, 'loanOfficerId'), + (513, 183, 1021, 'clientId'), + (514, 184, 1021, 'clientId'), + (515, 185, 5, 'officeId'), + (516, 185, 6, 'loanOfficerId'), + (517, 185, 1024, 'savingsId'), + (518, 186, 5, 'officeId'), + (519, 186, 6, 'loanOfficerId'), + (520, 186, 1024, 'savingsId'), + (521, 187, 5, 'officeId'), + (522, 187, 6, 'loanOfficerId'), + (523, 187, 1025, 'savingsTransactionId'), + (524, 188, 5, 'officeId'), + (525, 188, 6, 'loanOfficerId'), + (526, 188, 1025, 'savingsTransactionId'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; -- Dumping structure for table mifostenant-sampledata.x_registered_table From 156de095ddc3556f83cb0ee29f9d11db54817195 Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Fri, 18 Nov 2016 17:33:03 +0530 Subject: [PATCH 22/25] Updating barebones and sample data sql files --- .../migrations/sample_data/barebones_db.sql | 1328 +++++++++------- .../sample_data/load_sample_data.sql | 1329 ++++++++++------- 2 files changed, 1511 insertions(+), 1146 deletions(-) diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index 1a3ed0aeba3..bc6b1de9d25 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -1,17 +1,16 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.33-log - MySQL Community Server (GPL) -- Server OS: Win64 --- HeidiSQL Version: 9.3.0.5117 +-- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; +/*!40101 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-barebone.acc_accounting_rule +-- Dumping structure for table mifostenant-default.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -33,11 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_account + +-- Dumping structure for table mifostenant-default.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,11 +59,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_closure + +-- Dumping structure for table mifostenant-default.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -85,11 +86,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_financial_activity_account + +-- Dumping structure for table mifostenant-default.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -101,11 +103,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_financial_activity_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_gl_journal_entry + +-- Dumping structure for table mifostenant-default.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -158,11 +161,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_product_mapping + +-- Dumping structure for table mifostenant-default.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -179,11 +183,12 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_product_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_product_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.acc_rule_tags + +-- Dumping structure for table mifostenant-default.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -198,11 +203,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for procedure mifostenant-barebone.CashierTransactionSummary + +-- Dumping structure for procedure mifostenant-default.CashierTransactionSummary DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( @@ -490,7 +496,8 @@ DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; END// DELIMITER ; --- Dumping structure for table mifostenant-barebone.c_account_number_format + +-- Dumping structure for table mifostenant-default.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -500,11 +507,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_cache + +-- Dumping structure for table mifostenant-default.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -512,13 +520,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.c_cache: ~0 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_configuration + +-- Dumping structure for table mifostenant-default.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -532,7 +541,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-default.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -564,7 +573,8 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service + +-- Dumping structure for table mifostenant-default.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -573,7 +583,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service: ~3 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service: ~3 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (3, 'MESSAGE_GATEWAY'), @@ -581,7 +591,8 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.c_external_service_properties + +-- Dumping structure for table mifostenant-default.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -591,7 +602,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.c_external_service_properties: ~12 rows (approximately) +-- Dumping data for table mifostenant-default.c_external_service_properties: ~12 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -608,7 +619,8 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('tenant_app_key', NULL, 3); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job + +-- Dumping structure for table mifostenant-default.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -630,38 +642,39 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job: ~26 rows (approximately) +-- Dumping data for table mifostenant-default.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-14 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-15 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-11-15 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-15 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-15 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-11-15 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-11-15 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-11-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-11-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-11-15 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-11-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-11-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:14', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:43', 3, NULL, NULL, '2016-11-15 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:45', 5, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:22', 5, NULL, '2016-08-16 17:15:00', '2016-11-14 20:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (24, 'Update Sms Outbound with campaign message', 'Update Sms Outbound with campaign message', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Update Sms Outbound with campaign message1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), - (25, 'Send messages to SMS gateway', 'Send messages to SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Send messages to SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), - (26, 'Get delivery reports from SMS gateway', 'Get delivery reports from SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:29', 3, NULL, NULL, NULL, 'Get delivery reports from SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-18 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-18 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-11-19 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-19 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-19 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-11-19 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-11-19 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-11-19 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-11-19 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-11-19 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-11-19 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-11-19 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:26:49', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:26:55', 3, NULL, NULL, '2016-11-19 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:13', 5, NULL, NULL, '2016-11-18 17:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 3, NULL, NULL, '2016-11-19 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 2, NULL, NULL, '2016-11-19 05:00:00', 'Send Messages to SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 1, NULL, NULL, '2016-11-19 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.job_run_history + +-- Dumping structure for table mifostenant-default.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -676,15 +689,14 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.job_run_history: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; -INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES - (1, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy + +-- Dumping structure for table mifostenant-default.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -697,7 +709,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -750,7 +762,8 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` (48, 'WriteOffsOnGrossLoanPortfolio', 3, NULL, 2, 'The value of loans that have been recognized as uncollectible for accounting purposes. A write-off is an accounting procedure that removes the outstanding balance of the loan from the gross loan portfolio and impairment loss allowance. Thus, the write-off does not affect the net loan portfolio, total assets, or any equity account. If the impairment loss allowance is insufficient to cover the amount written off, the excess amount will result in an additional impairment loss on loans recognised in profit or loss of the period.', NULL); /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_taxonomy_mapping + +-- Dumping structure for table mifostenant-default.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -761,13 +774,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.mix_taxonomy_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.mix_xbrl_namespace + +-- Dumping structure for table mifostenant-default.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -777,7 +791,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -789,7 +803,8 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (7, 'dc-all', 'http://www.themix.org/int/fr/ifrs/basi/2010-08-31/dc-all'); /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_details + +-- Dumping structure for table mifostenant-default.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -821,11 +836,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions + +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -849,11 +865,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_standing_instructions_history + +-- Dumping structure for table mifostenant-default.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -867,11 +884,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_account_transfer_transaction + +-- Dumping structure for table mifostenant-default.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -900,11 +918,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_address + +-- Dumping structure for table mifostenant-default.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -931,11 +950,12 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser + +-- Dumping structure for table mifostenant-default.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -964,14 +984,15 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser: ~2 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2015-06-03', 0, b'0'), (2, 0, 1, NULL, 'system', 'system', 'system', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'); /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_previous_password + +-- Dumping structure for table mifostenant-default.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -983,11 +1004,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_appuser_role + +-- Dumping structure for table mifostenant-default.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -999,13 +1021,14 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_appuser_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_appuser_role: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar + +-- Dumping structure for table mifostenant-default.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1029,11 +1052,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_history + +-- Dumping structure for table mifostenant-default.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1055,11 +1079,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_calendar_instance + +-- Dumping structure for table mifostenant-default.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1071,11 +1096,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashiers + +-- Dumping structure for table mifostenant-default.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1094,11 +1120,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_cashier_transactions + +-- Dumping structure for table mifostenant-default.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1116,11 +1143,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_charge + +-- Dumping structure for table mifostenant-default.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1150,11 +1178,12 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client + +-- Dumping structure for table mifostenant-default.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1226,16 +1255,17 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_address + +-- Dumping structure for table mifostenant-default.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1251,11 +1281,12 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_attendance + +-- Dumping structure for table mifostenant-default.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1269,11 +1300,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge + +-- Dumping structure for table mifostenant-default.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1299,11 +1331,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_charge_paid_by + +-- Dumping structure for table mifostenant-default.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1317,11 +1350,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_identifier + +-- Dumping structure for table mifostenant-default.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1344,11 +1378,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_non_person + +-- Dumping structure for table mifostenant-default.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1364,11 +1399,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_client_transaction + +-- Dumping structure for table mifostenant-default.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1391,11 +1427,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code + +-- Dumping structure for table mifostenant-default.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1405,7 +1442,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-default.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1438,7 +1475,8 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_code_value + +-- Dumping structure for table mifostenant-default.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1455,7 +1493,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_code_value: ~13 rows (approximately) +-- Dumping data for table mifostenant-default.m_code_value: ~13 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport', NULL, 1, NULL, 1, 0), @@ -1473,7 +1511,8 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (13, 13, 'Leader', 'Group Leader Role', 1, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_currency + +-- Dumping structure for table mifostenant-default.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1487,7 +1526,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-default.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1655,7 +1694,8 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (163, 'ZWD', 2, NULL, NULL, 'Zimbabwe Dollar', 'currency.ZWD'); /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_on_hold_transaction + +-- Dumping structure for table mifostenant-default.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1670,11 +1710,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_recurring_detail + +-- Dumping structure for table mifostenant-default.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1691,11 +1732,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_account_term_and_preclosure + +-- Dumping structure for table mifostenant-default.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1722,11 +1764,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_interest_rate_chart + +-- Dumping structure for table mifostenant-default.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1737,11 +1780,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_recurring_detail + +-- Dumping structure for table mifostenant-default.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1754,11 +1798,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_deposit_product_term_and_preclosure + +-- Dumping structure for table mifostenant-default.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1780,11 +1825,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_document + +-- Dumping structure for table mifostenant-default.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1800,11 +1846,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_relation + +-- Dumping structure for table mifostenant-default.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1815,7 +1862,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1825,7 +1872,8 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co (5, 5, 3, 'role_access_to_savings_products'); /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_access + +-- Dumping structure for table mifostenant-default.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1841,11 +1889,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_entity_to_entity_mapping + +-- Dumping structure for table mifostenant-default.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1859,11 +1908,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_field_configuration + +-- Dumping structure for table mifostenant-default.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1876,7 +1926,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-default.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -1899,7 +1949,8 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates + +-- Dumping structure for table mifostenant-default.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1914,11 +1965,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_floating_rates_periods + +-- Dumping structure for table mifostenant-default.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1936,11 +1988,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_fund + +-- Dumping structure for table mifostenant-default.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1951,11 +2004,12 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_fund: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group + +-- Dumping structure for table mifostenant-default.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1991,11 +2045,12 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_client + +-- Dumping structure for table mifostenant-default.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -2006,11 +2061,12 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_client: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_client: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_level + +-- Dumping structure for table mifostenant-default.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2024,14 +2080,15 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), (2, 1, 0, 'Group', 0, 1); /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_group_roles + +-- Dumping structure for table mifostenant-default.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2048,11 +2105,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor + +-- Dumping structure for table mifostenant-default.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2080,11 +2138,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_funding_details + +-- Dumping structure for table mifostenant-default.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2102,11 +2161,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_guarantor_transaction + +-- Dumping structure for table mifostenant-default.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2123,11 +2183,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday + +-- Dumping structure for table mifostenant-default.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2142,11 +2203,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_holiday_office + +-- Dumping structure for table mifostenant-default.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -2158,11 +2220,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook + +-- Dumping structure for table mifostenant-default.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2181,11 +2244,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_configuration + +-- Dumping structure for table mifostenant-default.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2198,11 +2262,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_registered_events + +-- Dumping structure for table mifostenant-default.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2214,11 +2279,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_schema + +-- Dumping structure for table mifostenant-default.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2232,7 +2298,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2244,7 +2310,8 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name (7, 2, 'string', 'SMS Provider Account Id', NULL, 0); /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_hook_templates + +-- Dumping structure for table mifostenant-default.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2252,14 +2319,15 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), (2, 'SMS Bridge'); /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_image + +-- Dumping structure for table mifostenant-default.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2268,11 +2336,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_incentives + +-- Dumping structure for table mifostenant-default.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2288,11 +2357,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_chart + +-- Dumping structure for table mifostenant-default.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2304,11 +2374,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_interest_rate_slab + +-- Dumping structure for table mifostenant-default.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2326,11 +2397,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan + +-- Dumping structure for table mifostenant-default.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2462,8 +2534,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2471,11 +2543,12 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_entry + +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2508,11 +2581,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loanproduct_provisioning_mapping + +-- Dumping structure for table mifostenant-default.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2525,11 +2599,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_arrears_aging + +-- Dumping structure for table mifostenant-default.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2543,11 +2618,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge + +-- Dumping structure for table mifostenant-default.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2578,11 +2654,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_charge_paid_by + +-- Dumping structure for table mifostenant-default.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2597,11 +2674,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_collateral + +-- Dumping structure for table mifostenant-default.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2616,11 +2694,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_disbursement_detail + +-- Dumping structure for table mifostenant-default.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2633,11 +2712,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_installment_charge + +-- Dumping structure for table mifostenant-default.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2659,11 +2739,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_interest_recalculation_additional_details + +-- Dumping structure for table mifostenant-default.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2675,11 +2756,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_officer_assignment_history + +-- Dumping structure for table mifostenant-default.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2698,11 +2780,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_overdue_installment_charge + +-- Dumping structure for table mifostenant-default.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2716,11 +2799,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_paid_in_advance + +-- Dumping structure for table mifostenant-default.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2733,11 +2817,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_recalculation_details + +-- Dumping structure for table mifostenant-default.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2761,11 +2846,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule + +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2805,11 +2891,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_repayment_schedule_history + +-- Dumping structure for table mifostenant-default.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2834,11 +2921,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request + +-- Dumping structure for table mifostenant-default.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2868,11 +2956,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping + +-- Dumping structure for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2885,11 +2974,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_term_variations + +-- Dumping structure for table mifostenant-default.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2907,11 +2997,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_topup + +-- Dumping structure for table mifostenant-default.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2923,16 +3014,17 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_charges + +-- Dumping structure for table mifostenant-default.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2945,11 +3037,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_tranche_disbursement_charge + +-- Dumping structure for table mifostenant-default.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2962,11 +3055,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction + +-- Dumping structure for table mifostenant-default.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2999,11 +3093,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping + +-- Dumping structure for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3021,11 +3116,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_mandatory_savings_schedule + +-- Dumping structure for table mifostenant-default.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3048,11 +3144,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_meeting + +-- Dumping structure for table mifostenant-default.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3063,11 +3160,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_note + +-- Dumping structure for table mifostenant-default.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3101,11 +3199,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office + +-- Dumping structure for table mifostenant-default.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3121,13 +3220,14 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_office_transaction + +-- Dumping structure for table mifostenant-default.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3145,11 +3245,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_organisation_currency + +-- Dumping structure for table mifostenant-default.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3162,13 +3263,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_organisation_currency: ~0 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_password_validation_policy + +-- Dumping structure for table mifostenant-default.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3179,14 +3281,15 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-default.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), (2, '^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\\s).{6,50}$', 'Password must be at least 6 characters, no more than 50 characters long, must include at least one upper case letter, one lower case letter, one numeric digit and no space', 0, 'secure'); /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_detail + +-- Dumping structure for table mifostenant-default.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3201,11 +3304,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_payment_type + +-- Dumping structure for table mifostenant-default.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3216,11 +3320,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_permission + +-- Dumping structure for table mifostenant-default.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3233,7 +3338,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_permission: ~711 rows (approximately) +-- Dumping data for table mifostenant-default.m_permission: ~742 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -3967,20 +4072,21 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), - (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), - (755, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), - (756, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), - (757, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), - (758, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), - (759, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), - (760, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), - (761, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), - (762, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), - (763, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), - (764, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0); + (754, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), + (755, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), + (756, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), + (757, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), + (758, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), + (759, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), + (760, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), + (761, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), + (762, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), + (763, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0), + (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_account_associations + +-- Dumping structure for table mifostenant-default.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4001,11 +4107,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_portfolio_command_source + +-- Dumping structure for table mifostenant-default.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4043,11 +4150,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_portfolio_command_source: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_portfolio_command_source: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan + +-- Dumping structure for table mifostenant-default.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4115,11 +4223,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_charge + +-- Dumping structure for table mifostenant-default.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4130,11 +4239,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_configurable_attributes + +-- Dumping structure for table mifostenant-default.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4152,11 +4262,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_configurable_attributes: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_floating_rates + +-- Dumping structure for table mifostenant-default.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4174,11 +4285,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_guarantee_details + +-- Dumping structure for table mifostenant-default.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4191,11 +4303,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_recalculation_details + +-- Dumping structure for table mifostenant-default.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4221,11 +4334,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-barebone.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variable_installment_config + +-- Dumping structure for table mifostenant-default.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4237,11 +4351,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_loan_variations_borrower_cycle + +-- Dumping structure for table mifostenant-default.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4257,11 +4372,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_product_mix + +-- Dumping structure for table mifostenant-default.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4274,11 +4390,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria + +-- Dumping structure for table mifostenant-default.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4295,11 +4412,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_criteria_definition + +-- Dumping structure for table mifostenant-default.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4321,11 +4439,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provisioning_history + +-- Dumping structure for table mifostenant-default.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4341,11 +4460,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_provision_category + +-- Dumping structure for table mifostenant-default.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4355,7 +4475,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-default.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4364,7 +4484,8 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (4, 'LOSS', 'Principal and/or Interest overdue by y days'); /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job + +-- Dumping structure for table mifostenant-default.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4403,11 +4524,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job_configuration + +-- Dumping structure for table mifostenant-default.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4417,7 +4539,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4426,7 +4548,8 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (4, 'GMAIL_SMTP_PASSWORD', ''); /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_report_mailing_job_run_history + +-- Dumping structure for table mifostenant-default.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4441,11 +4564,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role + +-- Dumping structure for table mifostenant-default.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4456,13 +4580,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_role_permission + +-- Dumping structure for table mifostenant-default.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4474,13 +4599,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_role_permission: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account + +-- Dumping structure for table mifostenant-default.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4556,11 +4682,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge + +-- Dumping structure for table mifostenant-default.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4591,11 +4718,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_charge_paid_by + +-- Dumping structure for table mifostenant-default.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4609,11 +4737,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_chart + +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4628,11 +4757,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_interest_rate_slab + +-- Dumping structure for table mifostenant-default.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4650,11 +4780,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction + +-- Dumping structure for table mifostenant-default.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4682,11 +4813,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_account_transaction_tax_details + +-- Dumping structure for table mifostenant-default.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4700,11 +4832,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_interest_incentives + +-- Dumping structure for table mifostenant-default.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4720,11 +4853,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_officer_assignment_history + +-- Dumping structure for table mifostenant-default.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4743,11 +4877,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product + +-- Dumping structure for table mifostenant-default.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4790,11 +4925,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_savings_product_charge + +-- Dumping structure for table mifostenant-default.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -4805,11 +4941,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_beneficiaries_tpt + +-- Dumping structure for table mifostenant-default.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4825,11 +4962,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_selfservice_user_client_mapping + +-- Dumping structure for table mifostenant-default.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4842,11 +4980,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account + +-- Dumping structure for table mifostenant-default.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4900,11 +5039,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge + +-- Dumping structure for table mifostenant-default.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4933,16 +5073,17 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_charge_paid_by + +-- Dumping structure for table mifostenant-default.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `share_transaction_id` bigint(20) NOT NULL, - `charge_transaction_id` bigint(20) NOT NULL, + `share_transaction_id` bigint(20) DEFAULT NULL, + `charge_transaction_id` bigint(20) DEFAULT NULL, `amount` decimal(20,2) NOT NULL, PRIMARY KEY (`id`), KEY `m_share_account_transactions_charge_mapping_ibfk1` (`share_transaction_id`), @@ -4951,11 +5092,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_dividend_details + +-- Dumping structure for table mifostenant-default.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4971,11 +5113,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_account_transactions + +-- Dumping structure for table mifostenant-default.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4985,18 +5128,21 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `unit_price` decimal(10,2) DEFAULT NULL, `amount` decimal(20,2) DEFAULT NULL, `charge_amount` decimal(20,2) DEFAULT NULL, + `amount_paid` decimal(20,2) DEFAULT NULL, `status_enum` smallint(5) NOT NULL DEFAULT '300', `type_enum` smallint(5) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `m_share_account_purchased_shares_ibfk_1` (`account_id`), CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product + +-- Dumping structure for table mifostenant-default.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5035,11 +5181,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_charge + +-- Dumping structure for table mifostenant-default.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -5050,11 +5197,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_dividend_pay_out + +-- Dumping structure for table mifostenant-default.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5076,11 +5224,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_share_product_market_price + +-- Dumping structure for table mifostenant-default.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5092,11 +5241,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff + +-- Dumping structure for table mifostenant-default.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5122,11 +5272,12 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_staff_assignment_history + +-- Dumping structure for table mifostenant-default.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5145,11 +5296,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_surveys + +-- Dumping structure for table mifostenant-default.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5162,11 +5314,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_components + +-- Dumping structure for table mifostenant-default.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5180,11 +5333,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_lookup_tables + +-- Dumping structure for table mifostenant-default.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5199,11 +5353,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_questions + +-- Dumping structure for table mifostenant-default.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5218,11 +5373,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_responses + +-- Dumping structure for table mifostenant-default.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5235,11 +5391,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_survey_scorecards + +-- Dumping structure for table mifostenant-default.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5263,11 +5420,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component + +-- Dumping structure for table mifostenant-default.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5293,11 +5451,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_component_history + +-- Dumping structure for table mifostenant-default.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5318,11 +5477,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group + +-- Dumping structure for table mifostenant-default.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5338,11 +5498,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tax_group_mappings + +-- Dumping structure for table mifostenant-default.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5365,11 +5526,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_tellers + +-- Dumping structure for table mifostenant-default.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5391,11 +5553,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template + +-- Dumping structure for table mifostenant-default.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5407,11 +5570,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_templatemappers + +-- Dumping structure for table mifostenant-default.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5421,11 +5585,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_template_m_templatemappers + +-- Dumping structure for table mifostenant-default.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5435,11 +5600,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.m_working_days + +-- Dumping structure for table mifostenant-default.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5450,13 +5616,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_access_token + +-- Dumping structure for table mifostenant-default.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5468,11 +5635,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_client_details + +-- Dumping structure for table mifostenant-default.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5489,13 +5657,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_client_details: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.oauth_refresh_token + +-- Dumping structure for table mifostenant-default.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5503,11 +5672,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods + +-- Dumping structure for table mifostenant-default.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5516,11 +5686,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_likelihoods_ppi + +-- Dumping structure for table mifostenant-default.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5530,11 +5701,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ppi_scores + +-- Dumping structure for table mifostenant-default.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5543,7 +5715,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-default.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5568,7 +5740,8 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (20, 95, 100); /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.ref_loan_transaction_processing_strategy + +-- Dumping structure for table mifostenant-default.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5579,7 +5752,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-default.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5591,18 +5764,20 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s (7, 'early-repayment-strategy', 'Early Repayment Strategy', 5); /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.rpt_sequence + +-- Dumping structure for table mifostenant-default.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.r_enum_value + +-- Dumping structure for table mifostenant-default.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5615,7 +5790,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.r_enum_value: ~160 rows (approximately) +-- Dumping data for table mifostenant-default.r_enum_value: ~159 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5726,7 +5901,6 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), - ('loan_type_enum', -1, 'All', 'All', 0), ('loan_type_enum', 1, 'Individual Loan', 'Individual Loan', 0), ('loan_type_enum', 2, 'Group Loan', 'Group Loan', 0), ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), @@ -5780,7 +5954,8 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('transaction_type_enum', 11, 'Apply Interest', 'Apply Interest', 0); /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.scheduler_detail + +-- Dumping structure for table mifostenant-default.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -5790,13 +5965,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.scheduler_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.schema_version + +-- Dumping structure for table mifostenant-default.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -5816,7 +5992,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.schema_version: ~393 rows (approximately) +-- Dumping data for table mifostenant-default.schema_version: ~336 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', 1800446512, 'root', '2015-06-03 15:26:50', 919, 1), @@ -6050,37 +6226,37 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:14', 2333, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:14', 56, 1), (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:04', 73, 1), - (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', 1675224847, 'root', '2016-04-13 20:19:10', 56, 1), - (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -173690634, 'root', '2016-04-13 20:19:10', 235, 1), - (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', 1441298172, 'root', '2016-04-13 20:19:12', 1324, 1), - (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:14', 1991, 1), + (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', -172630113, 'root', '2016-11-18 17:26:37', 89, 1), + (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -637673654, 'root', '2016-11-18 17:26:38', 754, 1), + (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', -1023309693, 'root', '2016-11-18 17:26:44', 5278, 1), + (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', 1270845438, 'root', '2016-11-18 17:26:49', 5333, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 914436650, 'root', '2015-06-03 15:26:50', 14, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 255130282, 'root', '2015-06-03 15:26:53', 59, 1), - (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -244138054, 'root', '2016-05-04 20:40:42', 277, 1), - (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', -484783519, 'root', '2016-05-04 20:40:43', 356, 1), - (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 696724338, 'root', '2016-05-04 20:40:43', 137, 1), - (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:44', 376, 1), - (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:44', 160, 1), - (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:45', 1447, 1), - (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 44, 1), - (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1464801706, 'root', '2016-06-13 19:21:28', 229, 1), - (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1740162209, 'root', '2016-06-13 19:21:28', 238, 1), - (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', -630554147, 'root', '2016-06-13 19:21:29', 285, 1), + (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -490331317, 'root', '2016-11-18 17:26:50', 863, 1), + (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', 816871436, 'root', '2016-11-18 17:26:52', 1694, 1), + (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 1978862509, 'root', '2016-11-18 17:26:53', 839, 1), + (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', -533139714, 'root', '2016-11-18 17:26:55', 1425, 1), + (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', -341614071, 'root', '2016-11-18 17:26:55', 338, 1), + (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', 710584648, 'root', '2016-11-18 17:27:00', 4710, 1), + (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -2998873, 'root', '2016-11-18 17:27:00', 53, 1), + (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1950926410, 'root', '2016-11-18 17:27:01', 744, 1), + (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1869901088, 'root', '2016-11-18 17:27:02', 567, 1), + (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', 1221434865, 'root', '2016-11-18 17:27:03', 1582, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', -2072166818, 'root', '2015-06-03 15:26:53', 5, 1), - (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:29', 3, 1), - (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:29', 239, 1), - (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-08-16 17:14:19', 243, 1), - (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-08-16 17:14:21', 1084, 1), - (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-08-16 17:14:21', 127, 1), - (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-08-16 17:14:21', 220, 1), - (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-08-16 17:14:22', 303, 1), - (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-08-16 17:14:22', 390, 1), - (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:23', 586, 1), - (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:23', 198, 1), + (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', 1179078728, 'root', '2016-11-18 17:27:03', 5, 1), + (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 1236003234, 'root', '2016-11-18 17:27:04', 891, 1), + (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-11-18 17:27:05', 668, 1), + (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-11-18 17:27:09', 3657, 1), + (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-11-18 17:27:09', 179, 1), + (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-11-18 17:27:10', 856, 1), + (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-11-18 17:27:12', 1322, 1), + (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-11-18 17:27:13', 1186, 1), + (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-11-18 17:27:15', 2112, 1), + (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-11-18 17:27:17', 1028, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', -947369256, 'root', '2015-06-03 15:26:53', 2, 1), - (333, 334, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-14 20:20:28', 271, 1), - (334, 335, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-14 20:20:29', 165, 1), - (335, 336, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1983831355, 'root', '2016-11-14 20:20:29', 455, 1), + (333, 333, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-18 17:27:17', 545, 1), + (334, 334, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-18 17:27:18', 732, 1), + (335, 335, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1316831815, 'root', '2016-11-18 17:27:20', 1561, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1286928230, 'root', '2015-06-03 15:26:53', 22, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2015-06-03 15:26:54', 49, 1), @@ -6101,7 +6277,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', -1735511516, 'root', '2015-06-03 15:26:54', 24, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1349701479, 'root', '2015-06-03 15:26:51', 122, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', -1807166173, 'root', '2015-06-03 15:26:55', 140, 1), - (336, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:40', 94, 1), + (336, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:27:20', 145, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 729891777, 'root', '2015-06-03 15:26:55', 102, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 1853745947, 'root', '2015-06-03 15:26:55', 71, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', 1135041990, 'root', '2015-06-03 15:26:55', 45, 1), @@ -6157,7 +6333,8 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -107928515, 'root', '2015-06-03 15:26:58', 325, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.sms_campaign + +-- Dumping structure for table mifostenant-default.sms_campaign DROP TABLE IF EXISTS `sms_campaign`; CREATE TABLE IF NOT EXISTS `sms_campaign` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6185,11 +6362,12 @@ CREATE TABLE IF NOT EXISTS `sms_campaign` ( CONSTRAINT `sms_campaign_ibfk_1` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.sms_campaign: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.sms_campaign: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_campaign` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_campaign` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.sms_messages_outbound + +-- Dumping structure for table mifostenant-default.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6200,7 +6378,7 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `mobile_no` varchar(50) NOT NULL, `message` varchar(1000) NOT NULL, `campaign_id` bigint(20) NOT NULL, - `external_id` bigint(20) DEFAULT NULL, + `external_id` varchar(100) DEFAULT NULL, `submittedon_date` date DEFAULT NULL, `delivered_on_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), @@ -6214,11 +6392,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_parameter + +-- Dumping structure for table mifostenant-default.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6239,7 +6418,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1026 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_parameter: ~35 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_parameter: ~35 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6262,24 +6441,25 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), - (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), - (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), - (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL), - (1014, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1015, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1016, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1017, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1018, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1019, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1020, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), - (1021, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), - (1022, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), - (1023, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), - (1024, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), - (1025, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5); + (1011, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1012, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1013, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1014, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1015, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1016, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1017, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1018, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), + (1019, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1020, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), + (1021, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1022, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1023, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), + (1024, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1023), + (1025, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report + +-- Dumping structure for table mifostenant-default.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6295,7 +6475,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report: ~199 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report: ~116 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select\nconcat(repeat("..",\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.",\nc.display_name as "Name",\nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6391,32 +6571,33 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1), - (167, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), - (168, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), - (169, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan', 0, 1), - (170, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between X and Y days', 0, 1), - (171, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between X and Y days', 0, 1), - (172, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), - (173, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), - (174, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between X to Y days for clients in arrears between X and Y days', 0, 1), - (175, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Active (on-time)', 0, 1), - (176, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Overdue (arrears) between X and Y days', 0, 1), - (177, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND c.date_of_birth = CURDATE()\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), - (178, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id = 600 OR l.loan_status_id = 700)\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last X to Y days', 0, 1), - (179, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between X to Y days after the final instalment date on their loan schedule', 0, 1), - (180, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), - (181, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), - (182, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), - (183, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), - (184, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), - (185, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), - (186, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), - (187, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), - (188, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1); + (166, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), + (167, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), + (168, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan between cycleX and cycleY days', 0, 1), + (169, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between fromX and toY days', 0, 1), + (170, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${officeId}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between fromX and toY days', 0, 1), + (171, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), + (172, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), + (173, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between fromX to toY days for clients in arrears between overdueX and overdueY days', 0, 1), + (174, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last fromX to toY days for any loan with the status Active (on-time)', 0, 1), + (175, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last fromX to toY days for any loan with the status Overdue (arrears) between overdueX and overdueY days', 0, 1), + (176, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND (DAY(c.date_of_birth)=DAY(NOW())) AND (MONTH(c.date_of_birth)=MONTH(NOW()))\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), + (177, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id IN (600, 700))\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last fromX to toY days', 0, 1), + (178, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between fromX to toY days after the final instalment date on their loan schedule', 0, 1), + (179, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), + (180, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), + (181, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), + (182, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), + (183, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), + (184, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), + (185, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), + (186, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), + (187, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1), + (188, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.stretchy_report_parameter + +-- Dumping structure for table mifostenant-default.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6431,7 +6612,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=527 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.stretchy_report_parameter: ~439 rows (approximately) +-- Dumping data for table mifostenant-default.stretchy_report_parameter: ~420 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -6771,92 +6952,93 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (441, 165, 1010, NULL), (442, 165, 5, NULL), (443, 166, 5, 'officeId'), - (444, 166, 1011, 'tellerId'), - (445, 166, 1012, 'cashierId'), - (446, 166, 1013, 'currencyCode'), - (447, 166, 1009, 'asOnDate'), - (448, 167, 5, 'officeId'), - (449, 167, 6, 'loanOfficerId'), - (450, 168, 5, 'officeId'), - (451, 168, 6, 'loanOfficerId'), - (452, 169, 5, 'officeId'), - (453, 169, 6, 'loanOfficerId'), - (454, 169, 1014, 'cycleX'), - (455, 169, 1015, 'cycleY'), - (456, 170, 5, 'officeId'), - (457, 170, 6, 'loanOfficerId'), - (458, 170, 1016, 'fromX'), - (459, 170, 1017, 'toY'), - (460, 171, 5, 'officeId'), - (461, 171, 6, 'loanOfficerId'), - (462, 171, 1016, 'fromX'), - (463, 171, 1017, 'toY'), - (464, 172, 5, 'officeId'), - (465, 172, 6, 'loanOfficerId'), - (466, 173, 5, 'officeId'), - (467, 173, 6, 'loanOfficerId'), - (468, 174, 5, 'officeId'), - (469, 174, 6, 'loanOfficerId'), - (470, 174, 1016, 'fromX'), - (471, 174, 1017, 'toY'), - (472, 174, 1018, 'overdueX'), - (473, 174, 1019, 'overdueY'), - (474, 175, 5, 'officeId'), - (475, 175, 6, 'loanOfficerId'), - (476, 175, 1016, 'fromX'), - (477, 175, 1017, 'toY'), - (478, 176, 5, 'officeId'), - (479, 176, 6, 'loanOfficerId'), - (480, 176, 1016, 'fromX'), - (481, 176, 1017, 'toY'), - (482, 176, 1018, 'overdueX'), - (483, 176, 1019, 'overdueY'), - (484, 177, 5, 'officeId'), - (485, 177, 6, 'loanOfficerId'), - (486, 178, 5, 'officeId'), - (487, 178, 6, 'loanOfficerId'), - (488, 178, 1016, 'fromX'), - (489, 178, 1017, 'toY'), - (490, 179, 5, 'officeId'), - (491, 179, 6, 'loanOfficerId'), - (492, 179, 1016, 'fromX'), - (493, 179, 1017, 'toY'), - (494, 182, 5, 'officeId'), - (495, 181, 5, 'officeId'), - (496, 180, 5, 'officeId'), - (497, 182, 6, 'loanOfficerId'), - (498, 181, 6, 'loanOfficerId'), - (499, 180, 6, 'loanOfficerId'), - (500, 182, 1020, 'loanId'), - (501, 181, 1020, 'loanId'), - (502, 182, 1021, 'clientId'), - (503, 181, 1021, 'clientId'), - (504, 182, 1022, 'groupId'), - (505, 181, 1022, 'groupId'), - (506, 182, 1023, 'loanType'), - (507, 181, 1023, 'loanType'), - (508, 180, 1023, 'loanType'), - (509, 183, 5, 'officeId'), + (444, 166, 6, 'loanOfficerId'), + (445, 167, 5, 'officeId'), + (446, 167, 6, 'loanOfficerId'), + (447, 168, 5, 'officeId'), + (448, 168, 6, 'loanOfficerId'), + (449, 168, 1011, 'cycleX'), + (450, 168, 1012, 'cycleY'), + (451, 169, 5, 'officeId'), + (452, 169, 6, 'loanOfficerId'), + (453, 169, 1013, 'fromX'), + (454, 169, 1014, 'toY'), + (455, 170, 5, 'officeId'), + (456, 170, 6, 'loanOfficerId'), + (457, 170, 1013, 'fromX'), + (458, 170, 1014, 'toY'), + (459, 171, 5, 'officeId'), + (460, 171, 6, 'loanOfficerId'), + (461, 172, 5, 'officeId'), + (462, 172, 6, 'loanOfficerId'), + (463, 173, 5, 'officeId'), + (464, 173, 6, 'loanOfficerId'), + (465, 173, 1013, 'fromX'), + (466, 173, 1014, 'toY'), + (467, 173, 1015, 'overdueX'), + (468, 173, 1016, 'overdueY'), + (469, 174, 5, 'officeId'), + (470, 174, 6, 'loanOfficerId'), + (471, 174, 1013, 'fromX'), + (472, 174, 1014, 'toY'), + (473, 175, 5, 'officeId'), + (474, 175, 6, 'loanOfficerId'), + (475, 175, 1013, 'fromX'), + (476, 175, 1014, 'toY'), + (477, 175, 1015, 'overdueX'), + (478, 175, 1016, 'overdueY'), + (479, 176, 5, 'officeId'), + (480, 176, 6, 'loanOfficerId'), + (481, 177, 5, 'officeId'), + (482, 177, 6, 'loanOfficerId'), + (483, 177, 1013, 'fromX'), + (484, 177, 1014, 'toY'), + (485, 178, 5, 'officeId'), + (486, 178, 6, 'loanOfficerId'), + (487, 178, 1013, 'fromX'), + (488, 178, 1014, 'toY'), + (489, 181, 5, 'officeId'), + (490, 180, 5, 'officeId'), + (491, 179, 5, 'officeId'), + (492, 181, 6, 'loanOfficerId'), + (493, 180, 6, 'loanOfficerId'), + (494, 179, 6, 'loanOfficerId'), + (495, 181, 1017, 'loanId'), + (496, 180, 1017, 'loanId'), + (497, 181, 1018, 'clientId'), + (498, 180, 1018, 'clientId'), + (499, 181, 1019, 'groupId'), + (500, 180, 1019, 'groupId'), + (501, 181, 1020, 'loanType'), + (502, 180, 1020, 'loanType'), + (503, 179, 1020, 'loanType'), + (504, 182, 5, 'officeId'), + (505, 183, 5, 'officeId'), + (506, 182, 6, 'loanOfficerId'), + (507, 183, 6, 'loanOfficerId'), + (508, 182, 1018, 'clientId'), + (509, 183, 1018, 'clientId'), (510, 184, 5, 'officeId'), - (511, 183, 6, 'loanOfficerId'), - (512, 184, 6, 'loanOfficerId'), - (513, 183, 1021, 'clientId'), - (514, 184, 1021, 'clientId'), - (515, 185, 5, 'officeId'), - (516, 185, 6, 'loanOfficerId'), - (517, 185, 1024, 'savingsId'), - (518, 186, 5, 'officeId'), - (519, 186, 6, 'loanOfficerId'), - (520, 186, 1024, 'savingsId'), - (521, 187, 5, 'officeId'), - (522, 187, 6, 'loanOfficerId'), - (523, 187, 1025, 'savingsTransactionId'), - (524, 188, 5, 'officeId'), - (525, 188, 6, 'loanOfficerId'), - (526, 188, 1025, 'savingsTransactionId'); + (511, 184, 6, 'loanOfficerId'), + (512, 184, 1021, 'savingsId'), + (513, 185, 5, 'officeId'), + (514, 185, 6, 'loanOfficerId'), + (515, 185, 1021, 'savingsId'), + (516, 186, 5, 'officeId'), + (517, 186, 6, 'loanOfficerId'), + (518, 186, 1022, 'savingsTransactionId'), + (519, 187, 5, 'officeId'), + (520, 187, 6, 'loanOfficerId'), + (521, 187, 1022, 'savingsTransactionId'), + (522, 188, 5, 'officeId'), + (523, 188, 1023, 'tellerId'), + (524, 188, 1024, 'cashierId'), + (525, 188, 1025, 'currencyCode'), + (526, 188, 1009, 'asOnDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_registered_table + +-- Dumping structure for table mifostenant-default.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -6865,11 +7047,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-barebone.x_table_column_code_mappings + +-- Dumping structure for table mifostenant-default.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -6879,10 +7062,9 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-barebone.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-default.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; - /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 349573595ee..0484482debd 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -1,17 +1,16 @@ -- -------------------------------------------------------- -- Host: 127.0.0.1 --- Server version: 5.5.34-log - MySQL Community Server (GPL) +-- Server version: 5.6.33-log - MySQL Community Server (GPL) -- Server OS: Win64 --- HeidiSQL Version: 9.3.0.5117 +-- HeidiSQL Version: 9.3.0.4984 -- -------------------------------------------------------- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; +/*!40101 SET NAMES utf8mb4 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; --- Dumping structure for table mifostenant-sampledata.acc_accounting_rule +-- Dumping structure for table mifostenant-reference.acc_accounting_rule DROP TABLE IF EXISTS `acc_accounting_rule`; CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -33,11 +32,12 @@ CREATE TABLE IF NOT EXISTS `acc_accounting_rule` ( CONSTRAINT `FK_acc_accounting_rule_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_accounting_rule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_accounting_rule: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_accounting_rule` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_accounting_rule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_account + +-- Dumping structure for table mifostenant-reference.acc_gl_account DROP TABLE IF EXISTS `acc_gl_account`; CREATE TABLE IF NOT EXISTS `acc_gl_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -59,7 +59,7 @@ CREATE TABLE IF NOT EXISTS `acc_gl_account` ( CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_account: ~55 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_account: ~55 rows (approximately) /*!40000 ALTER TABLE `acc_gl_account` DISABLE KEYS */; INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, `disabled`, `manual_journal_entries_allowed`, `account_usage`, `classification_enum`, `tag_id`, `description`) VALUES (1, 'Deposit Accounts Portfolio', NULL, '.', '10100', 0, 1, 2, 2, NULL, NULL), @@ -119,7 +119,8 @@ INSERT INTO `acc_gl_account` (`id`, `name`, `parent_id`, `hierarchy`, `gl_code`, (55, 'Liability Transfer (Temp)', NULL, '.', '220004-Temp', 0, 1, 1, 2, NULL, 'Temporary Liability account to track Account Transfers'); /*!40000 ALTER TABLE `acc_gl_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_closure + +-- Dumping structure for table mifostenant-reference.acc_gl_closure DROP TABLE IF EXISTS `acc_gl_closure`; CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -141,11 +142,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_closure` ( CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_closure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_closure: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_closure` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_closure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_financial_activity_account + +-- Dumping structure for table mifostenant-reference.acc_gl_financial_activity_account DROP TABLE IF EXISTS `acc_gl_financial_activity_account`; CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -157,13 +159,14 @@ CREATE TABLE IF NOT EXISTS `acc_gl_financial_activity_account` ( CONSTRAINT `FK_office_mapping_acc_gl_account` FOREIGN KEY (`gl_account_id`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_financial_activity_account: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_financial_activity_account: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_financial_activity_account` DISABLE KEYS */; INSERT INTO `acc_gl_financial_activity_account` (`id`, `gl_account_id`, `financial_activity_type`) VALUES (1, 55, 200); /*!40000 ALTER TABLE `acc_gl_financial_activity_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_gl_journal_entry + +-- Dumping structure for table mifostenant-reference.acc_gl_journal_entry DROP TABLE IF EXISTS `acc_gl_journal_entry`; CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -216,11 +219,12 @@ CREATE TABLE IF NOT EXISTS `acc_gl_journal_entry` ( CONSTRAINT `FK_acc_gl_journal_entry_m_share_account_transaction` FOREIGN KEY (`share_transaction_id`) REFERENCES `m_share_account_transactions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_gl_journal_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_gl_journal_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_gl_journal_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_gl_journal_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_product_mapping + +-- Dumping structure for table mifostenant-reference.acc_product_mapping DROP TABLE IF EXISTS `acc_product_mapping`; CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -237,7 +241,7 @@ CREATE TABLE IF NOT EXISTS `acc_product_mapping` ( CONSTRAINT `FK_acc_product_mapping_m_payment_type` FOREIGN KEY (`payment_type`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.acc_product_mapping: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_product_mapping: ~18 rows (approximately) /*!40000 ALTER TABLE `acc_product_mapping` DISABLE KEYS */; INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product_type`, `payment_type`, `charge_id`, `financial_account_type`) VALUES (1, 32, 1, 1, NULL, NULL, 1), @@ -260,7 +264,8 @@ INSERT INTO `acc_product_mapping` (`id`, `gl_account_id`, `product_id`, `product (18, 54, 1, 1, NULL, NULL, 12); /*!40000 ALTER TABLE `acc_product_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.acc_rule_tags + +-- Dumping structure for table mifostenant-reference.acc_rule_tags DROP TABLE IF EXISTS `acc_rule_tags`; CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -275,11 +280,12 @@ CREATE TABLE IF NOT EXISTS `acc_rule_tags` ( CONSTRAINT `FK_m_code_value_id` FOREIGN KEY (`tag_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.acc_rule_tags: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.acc_rule_tags: ~0 rows (approximately) /*!40000 ALTER TABLE `acc_rule_tags` DISABLE KEYS */; /*!40000 ALTER TABLE `acc_rule_tags` ENABLE KEYS */; --- Dumping structure for procedure mifostenant-sampledata.CashierTransactionSummary + +-- Dumping structure for procedure mifostenant-reference.CashierTransactionSummary DROP PROCEDURE IF EXISTS `CashierTransactionSummary`; DELIMITER // CREATE DEFINER=`root`@`localhost` PROCEDURE `CashierTransactionSummary`( @@ -567,7 +573,8 @@ DROP TEMPORARY TABLE IF EXISTS final_temp_cashier_report; END// DELIMITER ; --- Dumping structure for table mifostenant-sampledata.c_account_number_format + +-- Dumping structure for table mifostenant-reference.c_account_number_format DROP TABLE IF EXISTS `c_account_number_format`; CREATE TABLE IF NOT EXISTS `c_account_number_format` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -577,11 +584,12 @@ CREATE TABLE IF NOT EXISTS `c_account_number_format` ( UNIQUE KEY `account_type_enum` (`account_type_enum`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_account_number_format: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.c_account_number_format: ~0 rows (approximately) /*!40000 ALTER TABLE `c_account_number_format` DISABLE KEYS */; /*!40000 ALTER TABLE `c_account_number_format` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_cache + +-- Dumping structure for table mifostenant-reference.c_cache DROP TABLE IF EXISTS `c_cache`; CREATE TABLE IF NOT EXISTS `c_cache` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -589,13 +597,14 @@ CREATE TABLE IF NOT EXISTS `c_cache` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_cache: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.c_cache: ~0 rows (approximately) /*!40000 ALTER TABLE `c_cache` DISABLE KEYS */; INSERT INTO `c_cache` (`id`, `cache_type_enum`) VALUES (1, 1); /*!40000 ALTER TABLE `c_cache` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_configuration + +-- Dumping structure for table mifostenant-reference.c_configuration DROP TABLE IF EXISTS `c_configuration`; CREATE TABLE IF NOT EXISTS `c_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -609,7 +618,7 @@ CREATE TABLE IF NOT EXISTS `c_configuration` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_configuration: ~27 rows (approximately) +-- Dumping data for table mifostenant-reference.c_configuration: ~27 rows (approximately) /*!40000 ALTER TABLE `c_configuration` DISABLE KEYS */; INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, `is_trap_door`, `description`) VALUES (1, 'maker-checker', NULL, NULL, 0, 0, NULL), @@ -641,7 +650,8 @@ INSERT INTO `c_configuration` (`id`, `name`, `value`, `date_value`, `enabled`, ` (32, 'Enable-Address', NULL, NULL, 0, 0, NULL); /*!40000 ALTER TABLE `c_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service + +-- Dumping structure for table mifostenant-reference.c_external_service DROP TABLE IF EXISTS `c_external_service`; CREATE TABLE IF NOT EXISTS `c_external_service` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -650,7 +660,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service` ( UNIQUE KEY `name_UNIQUE` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service: ~3 rows (approximately) /*!40000 ALTER TABLE `c_external_service` DISABLE KEYS */; INSERT INTO `c_external_service` (`id`, `name`) VALUES (3, 'MESSAGE_GATEWAY'), @@ -658,7 +668,8 @@ INSERT INTO `c_external_service` (`id`, `name`) VALUES (2, 'SMTP_Email_Account'); /*!40000 ALTER TABLE `c_external_service` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.c_external_service_properties + +-- Dumping structure for table mifostenant-reference.c_external_service_properties DROP TABLE IF EXISTS `c_external_service_properties`; CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( `name` varchar(150) NOT NULL, @@ -668,7 +679,7 @@ CREATE TABLE IF NOT EXISTS `c_external_service_properties` ( CONSTRAINT `FK_c_external_service_properties_c_external_service` FOREIGN KEY (`external_service_id`) REFERENCES `c_external_service` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.c_external_service_properties: ~12 rows (approximately) +-- Dumping data for table mifostenant-reference.c_external_service_properties: ~12 rows (approximately) /*!40000 ALTER TABLE `c_external_service_properties` DISABLE KEYS */; INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_id`) VALUES ('s3_access_key', NULL, 1), @@ -685,7 +696,8 @@ INSERT INTO `c_external_service_properties` (`name`, `value`, `external_service_ ('tenant_app_key', NULL, 3); /*!40000 ALTER TABLE `c_external_service_properties` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job + +-- Dumping structure for table mifostenant-reference.job DROP TABLE IF EXISTS `job`; CREATE TABLE IF NOT EXISTS `job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -707,38 +719,39 @@ CREATE TABLE IF NOT EXISTS `job` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job: ~26 rows (approximately) +-- Dumping data for table mifostenant-reference.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-11-14 22:00:00', 'Update loan SummaryJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Loan Arrears AgeingJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-11-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-11-15 12:00:00', 'Apply Holidays To LoansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Interest For SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-11-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-11-15 12:00:00', 'Pay Due Savings ChargesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-11-15 00:01:00', 'Update Accounting Running BalancesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-11-15 00:00:00', 'Execute Standing InstructionJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-11-15 00:00:00', 'Apply penalty to overdue loansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-11-15 00:00:00', 'Update Non Performing AssetsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-11-15 00:02:00', 'Transfer Interest To SavingsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-11-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-11-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-11-15 00:01:00', 'Recalculate Interest For LoansJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-11-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-11-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-04-13 20:19:18', 5, NULL, NULL, '2016-11-15 00:00:00', 'Post Dividends For SharesJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-05-04 20:40:48', 3, NULL, NULL, '2016-11-15 00:00:00', 'Update Savings Dormant AccountsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-05-04 20:40:50', 5, NULL, NULL, '2016-11-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-08-16 17:14:27', 5, NULL, '2016-08-16 17:15:00', '2016-11-14 20:30:00', 'Execute Report Mailing JobsJobDetail3 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (24, 'Update Sms Outbound with campaign message', 'Update Sms Outbound with campaign message', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Update Sms Outbound with campaign message1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), - (25, 'Send messages to SMS gateway', 'Send messages to SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Send messages to SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0), - (26, 'Get delivery reports from SMS gateway', 'Get delivery reports from SMS gateway', '0 0 0 1/1 * ? *', '2016-11-14 20:20:31', 3, NULL, NULL, NULL, 'Get delivery reports from SMS gateway1 _ DEFAULT', NULL, 0, 0, 1, 1, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-11-18 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-19 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-11-18 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-11-19 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-11-19 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-11-19 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-11-19 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-11-19 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-11-19 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-11-19 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-11-19 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-11-19 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-11-19 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-11-19 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-11-19 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:27:31', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:27:37', 3, NULL, NULL, '2016-11-19 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:42', 5, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:55', 5, NULL, NULL, '2016-11-18 17:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 3, NULL, NULL, '2016-11-19 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 2, NULL, NULL, '2016-11-19 05:00:00', 'Send Messages to SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 1, NULL, NULL, '2016-11-19 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.job_run_history + +-- Dumping structure for table mifostenant-reference.job_run_history DROP TABLE IF EXISTS `job_run_history`; CREATE TABLE IF NOT EXISTS `job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -753,9 +766,9 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.job_run_history: ~19 rows (approximately) +-- Dumping data for table mifostenant-reference.job_run_history: ~18 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES (1, 8, 1, '2014-03-14 12:00:00', '2014-03-14 12:00:01', 'success', NULL, 'cron', NULL), @@ -775,11 +788,11 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim (15, 5, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (16, 8, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (17, 1, 1, '2014-06-11 09:30:00', '2014-06-11 09:30:01', 'success', NULL, 'cron', NULL), - (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL), - (19, 23, 1, '2016-08-16 17:15:00', '2016-08-16 17:15:00', 'success', NULL, 'cron', NULL); + (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy + +-- Dumping structure for table mifostenant-reference.mix_taxonomy DROP TABLE IF EXISTS `mix_taxonomy`; CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -792,7 +805,7 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy: ~48 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy: ~48 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy` DISABLE KEYS */; INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, `description`, `need_mapping`) VALUES (1, 'AdministrativeExpense', 1, NULL, 3, NULL, 1), @@ -845,7 +858,8 @@ INSERT INTO `mix_taxonomy` (`id`, `name`, `namespace_id`, `dimension`, `type`, ` (48, 'WriteOffsOnGrossLoanPortfolio', 3, NULL, 2, 'The value of loans that have been recognized as uncollectible for accounting purposes. A write-off is an accounting procedure that removes the outstanding balance of the loan from the gross loan portfolio and impairment loss allowance. Thus, the write-off does not affect the net loan portfolio, total assets, or any equity account. If the impairment loss allowance is insufficient to cover the amount written off, the excess amount will result in an additional impairment loss on loans recognised in profit or loss of the period.', NULL); /*!40000 ALTER TABLE `mix_taxonomy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_taxonomy_mapping + +-- Dumping structure for table mifostenant-reference.mix_taxonomy_mapping DROP TABLE IF EXISTS `mix_taxonomy_mapping`; CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -856,13 +870,14 @@ CREATE TABLE IF NOT EXISTS `mix_taxonomy_mapping` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_taxonomy_mapping: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_taxonomy_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `mix_taxonomy_mapping` DISABLE KEYS */; INSERT INTO `mix_taxonomy_mapping` (`id`, `identifier`, `config`, `last_update_date`, `currency`) VALUES (1, 'default', NULL, NULL, ''); /*!40000 ALTER TABLE `mix_taxonomy_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.mix_xbrl_namespace + +-- Dumping structure for table mifostenant-reference.mix_xbrl_namespace DROP TABLE IF EXISTS `mix_xbrl_namespace`; CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, @@ -872,7 +887,7 @@ CREATE TABLE IF NOT EXISTS `mix_xbrl_namespace` ( UNIQUE KEY `UNQUE` (`prefix`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.mix_xbrl_namespace: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.mix_xbrl_namespace: ~7 rows (approximately) /*!40000 ALTER TABLE `mix_xbrl_namespace` DISABLE KEYS */; INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (1, 'ifrs', 'http://xbrl.iasb.org/taxonomy/2009-04-01/ifrs'), @@ -884,7 +899,8 @@ INSERT INTO `mix_xbrl_namespace` (`id`, `prefix`, `url`) VALUES (7, 'dc-all', 'http://www.themix.org/int/fr/ifrs/basi/2010-08-31/dc-all'); /*!40000 ALTER TABLE `mix_xbrl_namespace` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_details + +-- Dumping structure for table mifostenant-reference.m_account_transfer_details DROP TABLE IF EXISTS `m_account_transfer_details`; CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -916,11 +932,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_details` ( CONSTRAINT `FK_m_account_transfer_details_to_savings_account` FOREIGN KEY (`to_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions + +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions DROP TABLE IF EXISTS `m_account_transfer_standing_instructions`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -944,11 +961,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions` ( CONSTRAINT `FK_m_standing_instructions_account_transfer_details` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_standing_instructions_history + +-- Dumping structure for table mifostenant-reference.m_account_transfer_standing_instructions_history DROP TABLE IF EXISTS `m_account_transfer_standing_instructions_history`; CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -962,11 +980,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_standing_instructions_history` ( CONSTRAINT `FK_m_account_transfer_standing_instructions_m_history` FOREIGN KEY (`standing_instruction_id`) REFERENCES `m_account_transfer_standing_instructions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_standing_instructions_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_standing_instructions_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_standing_instructions_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_account_transfer_transaction + +-- Dumping structure for table mifostenant-reference.m_account_transfer_transaction DROP TABLE IF EXISTS `m_account_transfer_transaction`; CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -995,11 +1014,12 @@ CREATE TABLE IF NOT EXISTS `m_account_transfer_transaction` ( CONSTRAINT `FK_m_account_transfer_transaction_to_m_savings_transaction` FOREIGN KEY (`to_savings_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_account_transfer_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_account_transfer_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_account_transfer_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_account_transfer_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_address + +-- Dumping structure for table mifostenant-reference.m_address DROP TABLE IF EXISTS `m_address`; CREATE TABLE IF NOT EXISTS `m_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1026,11 +1046,12 @@ CREATE TABLE IF NOT EXISTS `m_address` ( CONSTRAINT `address_fields_codefk2` FOREIGN KEY (`country_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser + +-- Dumping structure for table mifostenant-reference.m_appuser DROP TABLE IF EXISTS `m_appuser`; CREATE TABLE IF NOT EXISTS `m_appuser` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1059,7 +1080,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser` ( CONSTRAINT `fk_m_appuser_002` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser: ~5 rows (approximately) /*!40000 ALTER TABLE `m_appuser` DISABLE KEYS */; INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username`, `firstname`, `lastname`, `password`, `email`, `firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`, `last_time_password_updated`, `password_never_expires`, `is_self_service_user`) VALUES (1, 0, 1, NULL, 'mifos', 'App', 'Administrator', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'), @@ -1069,7 +1090,8 @@ INSERT INTO `m_appuser` (`id`, `is_deleted`, `office_id`, `staff_id`, `username` (6, 0, 1, NULL, 'system', 'system', 'system', '5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a', 'demomfi@mifos.org', b'0', b'1', b'1', b'1', b'1', '2014-03-07', 0, b'0'); /*!40000 ALTER TABLE `m_appuser` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_previous_password + +-- Dumping structure for table mifostenant-reference.m_appuser_previous_password DROP TABLE IF EXISTS `m_appuser_previous_password`; CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1081,11 +1103,12 @@ CREATE TABLE IF NOT EXISTS `m_appuser_previous_password` ( CONSTRAINT `m_appuser_previous_password_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_appuser_previous_password: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_previous_password: ~0 rows (approximately) /*!40000 ALTER TABLE `m_appuser_previous_password` DISABLE KEYS */; /*!40000 ALTER TABLE `m_appuser_previous_password` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_appuser_role + +-- Dumping structure for table mifostenant-reference.m_appuser_role DROP TABLE IF EXISTS `m_appuser_role`; CREATE TABLE IF NOT EXISTS `m_appuser_role` ( `appuser_id` bigint(20) NOT NULL, @@ -1097,7 +1120,7 @@ CREATE TABLE IF NOT EXISTS `m_appuser_role` ( CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_appuser_role: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_appuser_role: ~4 rows (approximately) /*!40000 ALTER TABLE `m_appuser_role` DISABLE KEYS */; INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1, 1), @@ -1106,7 +1129,8 @@ INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (5, 1); /*!40000 ALTER TABLE `m_appuser_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar + +-- Dumping structure for table mifostenant-reference.m_calendar DROP TABLE IF EXISTS `m_calendar`; CREATE TABLE IF NOT EXISTS `m_calendar` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1130,11 +1154,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_history + +-- Dumping structure for table mifostenant-reference.m_calendar_history DROP TABLE IF EXISTS `m_calendar_history`; CREATE TABLE IF NOT EXISTS `m_calendar_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1156,11 +1181,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_history` ( CONSTRAINT `FK_m_calendar_m_calendar_history` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_calendar_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_calendar_instance + +-- Dumping structure for table mifostenant-reference.m_calendar_instance DROP TABLE IF EXISTS `m_calendar_instance`; CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1172,11 +1198,12 @@ CREATE TABLE IF NOT EXISTS `m_calendar_instance` ( CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_calendar_instance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_calendar_instance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_calendar_instance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_calendar_instance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashiers + +-- Dumping structure for table mifostenant-reference.m_cashiers DROP TABLE IF EXISTS `m_cashiers`; CREATE TABLE IF NOT EXISTS `m_cashiers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1195,11 +1222,12 @@ CREATE TABLE IF NOT EXISTS `m_cashiers` ( CONSTRAINT `FK_m_cashiers_m_teller` FOREIGN KEY (`teller_id`) REFERENCES `m_tellers` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashiers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashiers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashiers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashiers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_cashier_transactions + +-- Dumping structure for table mifostenant-reference.m_cashier_transactions DROP TABLE IF EXISTS `m_cashier_transactions`; CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1217,11 +1245,12 @@ CREATE TABLE IF NOT EXISTS `m_cashier_transactions` ( CONSTRAINT `FK_m_teller_transactions_m_cashiers` FOREIGN KEY (`cashier_id`) REFERENCES `m_cashiers` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_cashier_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_cashier_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_cashier_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_cashier_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_charge + +-- Dumping structure for table mifostenant-reference.m_charge DROP TABLE IF EXISTS `m_charge`; CREATE TABLE IF NOT EXISTS `m_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1251,13 +1280,14 @@ CREATE TABLE IF NOT EXISTS `m_charge` ( CONSTRAINT `FK_m_charge_m_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_charge` DISABLE KEYS */; INSERT INTO `m_charge` (`id`, `name`, `currency_code`, `charge_applies_to_enum`, `charge_time_enum`, `charge_calculation_enum`, `charge_payment_mode_enum`, `amount`, `fee_on_day`, `fee_interval`, `fee_on_month`, `is_penalty`, `is_active`, `is_deleted`, `min_cap`, `max_cap`, `fee_frequency`, `income_or_liability_account_id`, `tax_group_id`) VALUES (1, 'Processing Fee', 'USD', 1, 1, 1, 0, 500.000000, NULL, NULL, NULL, 0, 1, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client + +-- Dumping structure for table mifostenant-reference.m_client DROP TABLE IF EXISTS `m_client`; CREATE TABLE IF NOT EXISTS `m_client` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1329,12 +1359,12 @@ CREATE TABLE IF NOT EXISTS `m_client` ( CONSTRAINT `FK_m_client_m_savings_product` FOREIGN KEY (`default_savings_product`) REFERENCES `m_savings_product` (`id`), CONSTRAINT `FK_m_client_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`), CONSTRAINT `FK_m_client_substatus_m_code_value` FOREIGN KEY (`sub_status`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_client_type_m_code_value` FOREIGN KEY (`client_type_cv_id`) REFERENCES `m_code_value` (`id`), - CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`) + CONSTRAINT `FK_m_client_type_m_code_value_withdraw` FOREIGN KEY (`withdraw_reason_cv_id`) REFERENCES `m_code_value` (`id`), + CONSTRAINT `FK_m_client_type_mcode_value_reject` FOREIGN KEY (`reject_reason_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client: ~7 rows (approximately) /*!40000 ALTER TABLE `m_client` DISABLE KEYS */; INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_status`, `activation_date`, `office_joining_date`, `office_id`, `transfer_to_office_id`, `staff_id`, `firstname`, `middlename`, `lastname`, `fullname`, `display_name`, `mobile_no`, `gender_cv_id`, `date_of_birth`, `image_id`, `closure_reason_cv_id`, `closedon_date`, `updated_by`, `updated_on`, `submittedon_date`, `submittedon_userid`, `activatedon_userid`, `closedon_userid`, `default_savings_product`, `default_savings_account`, `client_type_cv_id`, `client_classification_cv_id`, `reject_reason_cv_id`, `rejectedon_date`, `rejectedon_userid`, `withdraw_reason_cv_id`, `withdrawn_on_date`, `withdraw_on_userid`, `reactivated_on_date`, `reactivated_on_userid`, `legal_form_enum`, `reopened_on_date`, `reopened_by_userid`) VALUES (1, '000000001', NULL, 300, NULL, '2014-03-07', '2014-03-07', 1, NULL, 1, 'Smith', NULL, 'R', NULL, 'Smith R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-01', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL), @@ -1346,7 +1376,8 @@ INSERT INTO `m_client` (`id`, `account_no`, `external_id`, `status_enum`, `sub_s (8, '000000008', NULL, 300, NULL, '2010-01-04', '2010-01-04', 2, NULL, 2, 'Robinson', NULL, 'R', NULL, 'Robinson R', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '2010-01-04', 1, 1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_address + +-- Dumping structure for table mifostenant-reference.m_client_address DROP TABLE IF EXISTS `m_client_address`; CREATE TABLE IF NOT EXISTS `m_client_address` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1362,11 +1393,12 @@ CREATE TABLE IF NOT EXISTS `m_client_address` ( CONSTRAINT `clientaddressfk` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_address: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_address: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_address` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_address` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_attendance + +-- Dumping structure for table mifostenant-reference.m_client_attendance DROP TABLE IF EXISTS `m_client_attendance`; CREATE TABLE IF NOT EXISTS `m_client_attendance` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1380,11 +1412,12 @@ CREATE TABLE IF NOT EXISTS `m_client_attendance` ( CONSTRAINT `FK_m_meeting_m_client_attendance` FOREIGN KEY (`meeting_id`) REFERENCES `m_meeting` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_attendance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_attendance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_attendance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_attendance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge + +-- Dumping structure for table mifostenant-reference.m_client_charge DROP TABLE IF EXISTS `m_client_charge`; CREATE TABLE IF NOT EXISTS `m_client_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1410,11 +1443,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge` ( CONSTRAINT `FK_m_client_charge_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_charge_paid_by + +-- Dumping structure for table mifostenant-reference.m_client_charge_paid_by DROP TABLE IF EXISTS `m_client_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1428,11 +1462,12 @@ CREATE TABLE IF NOT EXISTS `m_client_charge_paid_by` ( CONSTRAINT `FK_m_client_charge_paid_by_m_client_transaction` FOREIGN KEY (`client_transaction_id`) REFERENCES `m_client_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_identifier + +-- Dumping structure for table mifostenant-reference.m_client_identifier DROP TABLE IF EXISTS `m_client_identifier`; CREATE TABLE IF NOT EXISTS `m_client_identifier` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1455,11 +1490,12 @@ CREATE TABLE IF NOT EXISTS `m_client_identifier` ( CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_identifier: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_identifier: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_identifier` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_identifier` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_non_person + +-- Dumping structure for table mifostenant-reference.m_client_non_person DROP TABLE IF EXISTS `m_client_non_person`; CREATE TABLE IF NOT EXISTS `m_client_non_person` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1475,11 +1511,12 @@ CREATE TABLE IF NOT EXISTS `m_client_non_person` ( CONSTRAINT `FK_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_non_person: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_non_person: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_non_person` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_non_person` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_client_transaction + +-- Dumping structure for table mifostenant-reference.m_client_transaction DROP TABLE IF EXISTS `m_client_transaction`; CREATE TABLE IF NOT EXISTS `m_client_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1502,11 +1539,12 @@ CREATE TABLE IF NOT EXISTS `m_client_transaction` ( CONSTRAINT `FK_m_client_transaction_m_client` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_client_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_client_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_client_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_client_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code + +-- Dumping structure for table mifostenant-reference.m_code DROP TABLE IF EXISTS `m_code`; CREATE TABLE IF NOT EXISTS `m_code` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1516,7 +1554,7 @@ CREATE TABLE IF NOT EXISTS `m_code` ( UNIQUE KEY `code_name` (`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code: ~28 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code: ~28 rows (approximately) /*!40000 ALTER TABLE `m_code` DISABLE KEYS */; INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (1, 'Customer Identifier', 1), @@ -1549,7 +1587,8 @@ INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (29, 'ADDRESS_TYPE', 1); /*!40000 ALTER TABLE `m_code` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_code_value + +-- Dumping structure for table mifostenant-reference.m_code_value DROP TABLE IF EXISTS `m_code_value`; CREATE TABLE IF NOT EXISTS `m_code_value` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -1566,7 +1605,7 @@ CREATE TABLE IF NOT EXISTS `m_code_value` ( CONSTRAINT `FKCFCEA42640BE071Z` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_code_value: ~27 rows (approximately) +-- Dumping data for table mifostenant-reference.m_code_value: ~27 rows (approximately) /*!40000 ALTER TABLE `m_code_value` DISABLE KEYS */; INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, `order_position`, `code_score`, `is_active`, `is_mandatory`) VALUES (1, 1, 'Passport Id', NULL, 1, NULL, 1, 0), @@ -1598,7 +1637,8 @@ INSERT INTO `m_code_value` (`id`, `code_id`, `code_value`, `code_description`, ` (28, 13, 'Leader', 'Group Leader Role', 1, NULL, 1, 0); /*!40000 ALTER TABLE `m_code_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_currency + +-- Dumping structure for table mifostenant-reference.m_currency DROP TABLE IF EXISTS `m_currency`; CREATE TABLE IF NOT EXISTS `m_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1612,7 +1652,7 @@ CREATE TABLE IF NOT EXISTS `m_currency` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=164 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_currency: ~163 rows (approximately) +-- Dumping data for table mifostenant-reference.m_currency: ~163 rows (approximately) /*!40000 ALTER TABLE `m_currency` DISABLE KEYS */; INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `display_symbol`, `name`, `internationalized_name_code`) VALUES (1, 'AED', 2, NULL, NULL, 'UAE Dirham', 'currency.AED'), @@ -1780,7 +1820,8 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (163, 'ZWD', 2, NULL, NULL, 'Zimbabwe Dollar', 'currency.ZWD'); /*!40000 ALTER TABLE `m_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_on_hold_transaction + +-- Dumping structure for table mifostenant-reference.m_deposit_account_on_hold_transaction DROP TABLE IF EXISTS `m_deposit_account_on_hold_transaction`; CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1795,11 +1836,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_on_hold_transaction` ( CONSTRAINT `FK_deposit_on_hold_transaction_m_savings_account` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_on_hold_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_on_hold_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_on_hold_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_recurring_detail + +-- Dumping structure for table mifostenant-reference.m_deposit_account_recurring_detail DROP TABLE IF EXISTS `m_deposit_account_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1816,11 +1858,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_recurring_detail` ( CONSTRAINT `FKDARD00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_account_term_and_preclosure + +-- Dumping structure for table mifostenant-reference.m_deposit_account_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_account_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1847,11 +1890,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_account_term_and_preclosure` ( CONSTRAINT `FKDATP00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_account_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_account_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_account_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_interest_rate_chart + +-- Dumping structure for table mifostenant-reference.m_deposit_product_interest_rate_chart DROP TABLE IF EXISTS `m_deposit_product_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( `deposit_product_id` bigint(20) NOT NULL, @@ -1862,11 +1906,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_interest_rate_chart` ( CONSTRAINT `FKDPIRC00000000000002` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_recurring_detail + +-- Dumping structure for table mifostenant-reference.m_deposit_product_recurring_detail DROP TABLE IF EXISTS `m_deposit_product_recurring_detail`; CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1879,11 +1924,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_recurring_detail` ( CONSTRAINT `FKDPRD00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_recurring_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_recurring_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_recurring_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_deposit_product_term_and_preclosure + +-- Dumping structure for table mifostenant-reference.m_deposit_product_term_and_preclosure DROP TABLE IF EXISTS `m_deposit_product_term_and_preclosure`; CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1905,11 +1951,12 @@ CREATE TABLE IF NOT EXISTS `m_deposit_product_term_and_preclosure` ( CONSTRAINT `FKDPTP00000000000001` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_deposit_product_term_and_preclosure: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_deposit_product_term_and_preclosure: ~0 rows (approximately) /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` DISABLE KEYS */; /*!40000 ALTER TABLE `m_deposit_product_term_and_preclosure` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_document + +-- Dumping structure for table mifostenant-reference.m_document DROP TABLE IF EXISTS `m_document`; CREATE TABLE IF NOT EXISTS `m_document` ( `id` int(20) NOT NULL AUTO_INCREMENT, @@ -1925,11 +1972,12 @@ CREATE TABLE IF NOT EXISTS `m_document` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_document: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_document: ~0 rows (approximately) /*!40000 ALTER TABLE `m_document` DISABLE KEYS */; /*!40000 ALTER TABLE `m_document` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_relation + +-- Dumping structure for table mifostenant-reference.m_entity_relation DROP TABLE IF EXISTS `m_entity_relation`; CREATE TABLE IF NOT EXISTS `m_entity_relation` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1940,7 +1988,7 @@ CREATE TABLE IF NOT EXISTS `m_entity_relation` ( UNIQUE KEY `from_entity_type_to_entity_type_code_name` (`from_entity_type`,`to_entity_type`,`code_name`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_relation: ~5 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_relation: ~5 rows (approximately) /*!40000 ALTER TABLE `m_entity_relation` DISABLE KEYS */; INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `code_name`) VALUES (1, 1, 2, 'office_access_to_loan_products'), @@ -1950,7 +1998,8 @@ INSERT INTO `m_entity_relation` (`id`, `from_entity_type`, `to_entity_type`, `co (5, 5, 3, 'role_access_to_savings_products'); /*!40000 ALTER TABLE `m_entity_relation` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_access + +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_access DROP TABLE IF EXISTS `m_entity_to_entity_access`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1966,11 +2015,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_access` ( CONSTRAINT `FK_access_type_code_m_code_value` FOREIGN KEY (`access_type_code_value_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_access: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_access: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_access` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_access` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_entity_to_entity_mapping + +-- Dumping structure for table mifostenant-reference.m_entity_to_entity_mapping DROP TABLE IF EXISTS `m_entity_to_entity_mapping`; CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -1984,11 +2034,12 @@ CREATE TABLE IF NOT EXISTS `m_entity_to_entity_mapping` ( CONSTRAINT `FK__rel_id_m_entity_relation_id` FOREIGN KEY (`rel_id`) REFERENCES `m_entity_relation` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_entity_to_entity_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_entity_to_entity_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_entity_to_entity_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_entity_to_entity_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_field_configuration + +-- Dumping structure for table mifostenant-reference.m_field_configuration DROP TABLE IF EXISTS `m_field_configuration`; CREATE TABLE IF NOT EXISTS `m_field_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2001,7 +2052,7 @@ CREATE TABLE IF NOT EXISTS `m_field_configuration` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_field_configuration: ~18 rows (approximately) +-- Dumping data for table mifostenant-reference.m_field_configuration: ~18 rows (approximately) /*!40000 ALTER TABLE `m_field_configuration` DISABLE KEYS */; INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_enabled`, `is_mandatory`, `validation_regex`) VALUES (1, 'ADDRESS', 'CLIENT', 'addressType', 1, 0, ''), @@ -2024,7 +2075,8 @@ INSERT INTO `m_field_configuration` (`id`, `entity`, `subentity`, `field`, `is_e (18, 'ADDRESS', 'CLIENT', 'isActive', 1, 0, ''); /*!40000 ALTER TABLE `m_field_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates + +-- Dumping structure for table mifostenant-reference.m_floating_rates DROP TABLE IF EXISTS `m_floating_rates`; CREATE TABLE IF NOT EXISTS `m_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2039,11 +2091,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_floating_rates_periods + +-- Dumping structure for table mifostenant-reference.m_floating_rates_periods DROP TABLE IF EXISTS `m_floating_rates_periods`; CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2061,11 +2114,12 @@ CREATE TABLE IF NOT EXISTS `m_floating_rates_periods` ( CONSTRAINT `FK_mappings_m_floating_rates` FOREIGN KEY (`floating_rates_id`) REFERENCES `m_floating_rates` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_floating_rates_periods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_floating_rates_periods: ~0 rows (approximately) /*!40000 ALTER TABLE `m_floating_rates_periods` DISABLE KEYS */; /*!40000 ALTER TABLE `m_floating_rates_periods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_fund + +-- Dumping structure for table mifostenant-reference.m_fund DROP TABLE IF EXISTS `m_fund`; CREATE TABLE IF NOT EXISTS `m_fund` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2076,13 +2130,14 @@ CREATE TABLE IF NOT EXISTS `m_fund` ( UNIQUE KEY `fund_externalid_org` (`external_id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_fund: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_fund: ~0 rows (approximately) /*!40000 ALTER TABLE `m_fund` DISABLE KEYS */; INSERT INTO `m_fund` (`id`, `name`, `external_id`) VALUES (1, 'Loan from Central Bank', NULL); /*!40000 ALTER TABLE `m_fund` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group + +-- Dumping structure for table mifostenant-reference.m_group DROP TABLE IF EXISTS `m_group`; CREATE TABLE IF NOT EXISTS `m_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2118,7 +2173,7 @@ CREATE TABLE IF NOT EXISTS `m_group` ( CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group: ~4 rows (approximately) /*!40000 ALTER TABLE `m_group` DISABLE KEYS */; INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `office_id`, `staff_id`, `parent_id`, `level_id`, `display_name`, `hierarchy`, `closure_reason_cv_id`, `closedon_date`, `activatedon_userid`, `submittedon_date`, `submittedon_userid`, `closedon_userid`, `account_no`) VALUES (1, NULL, 300, '2010-01-02', 2, 2, NULL, 1, 'Santa Cruz', '.1.', NULL, NULL, 1, '2010-01-02', 1, NULL, '000000001'), @@ -2127,7 +2182,8 @@ INSERT INTO `m_group` (`id`, `external_id`, `status_enum`, `activation_date`, `o (4, NULL, 300, '2010-01-04', 2, 2, 2, 2, 'Santa Maria Group 2', '.2.4.', NULL, NULL, 1, '2010-01-04', 1, NULL, '000000004'); /*!40000 ALTER TABLE `m_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_client + +-- Dumping structure for table mifostenant-reference.m_group_client DROP TABLE IF EXISTS `m_group_client`; CREATE TABLE IF NOT EXISTS `m_group_client` ( `group_id` bigint(20) NOT NULL, @@ -2138,7 +2194,7 @@ CREATE TABLE IF NOT EXISTS `m_group_client` ( CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_client: ~6 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_client: ~6 rows (approximately) /*!40000 ALTER TABLE `m_group_client` DISABLE KEYS */; INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (3, 2), @@ -2149,7 +2205,8 @@ INSERT INTO `m_group_client` (`group_id`, `client_id`) VALUES (4, 8); /*!40000 ALTER TABLE `m_group_client` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_level + +-- Dumping structure for table mifostenant-reference.m_group_level DROP TABLE IF EXISTS `m_group_level`; CREATE TABLE IF NOT EXISTS `m_group_level` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -2163,14 +2220,15 @@ CREATE TABLE IF NOT EXISTS `m_group_level` ( CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_level: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_level: ~2 rows (approximately) /*!40000 ALTER TABLE `m_group_level` DISABLE KEYS */; INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) VALUES (1, NULL, 1, 'Center', 1, 0), (2, 1, 0, 'Group', 0, 1); /*!40000 ALTER TABLE `m_group_level` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_group_roles + +-- Dumping structure for table mifostenant-reference.m_group_roles DROP TABLE IF EXISTS `m_group_roles`; CREATE TABLE IF NOT EXISTS `m_group_roles` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2187,11 +2245,12 @@ CREATE TABLE IF NOT EXISTS `m_group_roles` ( CONSTRAINT `FK_grouprole_m_codevalue` FOREIGN KEY (`role_cv_id`) REFERENCES `m_code_value` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_group_roles: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_group_roles: ~0 rows (approximately) /*!40000 ALTER TABLE `m_group_roles` DISABLE KEYS */; /*!40000 ALTER TABLE `m_group_roles` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor + +-- Dumping structure for table mifostenant-reference.m_guarantor DROP TABLE IF EXISTS `m_guarantor`; CREATE TABLE IF NOT EXISTS `m_guarantor` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2219,11 +2278,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor` ( CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_funding_details + +-- Dumping structure for table mifostenant-reference.m_guarantor_funding_details DROP TABLE IF EXISTS `m_guarantor_funding_details`; CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2241,11 +2301,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_funding_details` ( CONSTRAINT `FK_m_guarantor_fund_details_m_guarantor` FOREIGN KEY (`guarantor_id`) REFERENCES `m_guarantor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_funding_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_funding_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_funding_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_funding_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_guarantor_transaction + +-- Dumping structure for table mifostenant-reference.m_guarantor_transaction DROP TABLE IF EXISTS `m_guarantor_transaction`; CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2262,11 +2323,12 @@ CREATE TABLE IF NOT EXISTS `m_guarantor_transaction` ( CONSTRAINT `FK_guarantor_transaction_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_guarantor_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_guarantor_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_guarantor_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_guarantor_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday + +-- Dumping structure for table mifostenant-reference.m_holiday DROP TABLE IF EXISTS `m_holiday`; CREATE TABLE IF NOT EXISTS `m_holiday` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2281,11 +2343,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday` ( UNIQUE KEY `holiday_name` (`name`,`from_date`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_holiday_office + +-- Dumping structure for table mifostenant-reference.m_holiday_office DROP TABLE IF EXISTS `m_holiday_office`; CREATE TABLE IF NOT EXISTS `m_holiday_office` ( `holiday_id` bigint(20) NOT NULL, @@ -2297,11 +2360,12 @@ CREATE TABLE IF NOT EXISTS `m_holiday_office` ( CONSTRAINT `m_office_id_ibfk_2` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_holiday_office: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_holiday_office: ~0 rows (approximately) /*!40000 ALTER TABLE `m_holiday_office` DISABLE KEYS */; /*!40000 ALTER TABLE `m_holiday_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook + +-- Dumping structure for table mifostenant-reference.m_hook DROP TABLE IF EXISTS `m_hook`; CREATE TABLE IF NOT EXISTS `m_hook` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2320,11 +2384,12 @@ CREATE TABLE IF NOT EXISTS `m_hook` ( CONSTRAINT `fk_ugd_template_id` FOREIGN KEY (`ugd_template_id`) REFERENCES `m_template` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_configuration + +-- Dumping structure for table mifostenant-reference.m_hook_configuration DROP TABLE IF EXISTS `m_hook_configuration`; CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2337,11 +2402,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_configuration` ( CONSTRAINT `fk_hook_id_cfg` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_configuration: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_configuration: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_configuration` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_registered_events + +-- Dumping structure for table mifostenant-reference.m_hook_registered_events DROP TABLE IF EXISTS `m_hook_registered_events`; CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2353,11 +2419,12 @@ CREATE TABLE IF NOT EXISTS `m_hook_registered_events` ( CONSTRAINT `fk_hook_idc` FOREIGN KEY (`hook_id`) REFERENCES `m_hook` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_registered_events: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_registered_events: ~0 rows (approximately) /*!40000 ALTER TABLE `m_hook_registered_events` DISABLE KEYS */; /*!40000 ALTER TABLE `m_hook_registered_events` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_schema + +-- Dumping structure for table mifostenant-reference.m_hook_schema DROP TABLE IF EXISTS `m_hook_schema`; CREATE TABLE IF NOT EXISTS `m_hook_schema` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2371,7 +2438,7 @@ CREATE TABLE IF NOT EXISTS `m_hook_schema` ( CONSTRAINT `fk_hook_template_id` FOREIGN KEY (`hook_template_id`) REFERENCES `m_hook_templates` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_schema: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_schema: ~7 rows (approximately) /*!40000 ALTER TABLE `m_hook_schema` DISABLE KEYS */; INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name`, `placeholder`, `optional`) VALUES (1, 1, 'string', 'Payload URL', NULL, 0), @@ -2383,7 +2450,8 @@ INSERT INTO `m_hook_schema` (`id`, `hook_template_id`, `field_type`, `field_name (7, 2, 'string', 'SMS Provider Account Id', NULL, 0); /*!40000 ALTER TABLE `m_hook_schema` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_hook_templates + +-- Dumping structure for table mifostenant-reference.m_hook_templates DROP TABLE IF EXISTS `m_hook_templates`; CREATE TABLE IF NOT EXISTS `m_hook_templates` ( `id` smallint(6) NOT NULL AUTO_INCREMENT, @@ -2391,14 +2459,15 @@ CREATE TABLE IF NOT EXISTS `m_hook_templates` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_hook_templates: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_hook_templates: ~2 rows (approximately) /*!40000 ALTER TABLE `m_hook_templates` DISABLE KEYS */; INSERT INTO `m_hook_templates` (`id`, `name`) VALUES (1, 'Web'), (2, 'SMS Bridge'); /*!40000 ALTER TABLE `m_hook_templates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_image + +-- Dumping structure for table mifostenant-reference.m_image DROP TABLE IF EXISTS `m_image`; CREATE TABLE IF NOT EXISTS `m_image` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2407,11 +2476,12 @@ CREATE TABLE IF NOT EXISTS `m_image` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_image: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_image: ~0 rows (approximately) /*!40000 ALTER TABLE `m_image` DISABLE KEYS */; /*!40000 ALTER TABLE `m_image` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_incentives + +-- Dumping structure for table mifostenant-reference.m_interest_incentives DROP TABLE IF EXISTS `m_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2427,11 +2497,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_incentives` ( CONSTRAINT `FK_m_interest_incentives_m_interest_rate_slab` FOREIGN KEY (`interest_rate_slab_id`) REFERENCES `m_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_chart + +-- Dumping structure for table mifostenant-reference.m_interest_rate_chart DROP TABLE IF EXISTS `m_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2443,11 +2514,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_chart` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_interest_rate_slab + +-- Dumping structure for table mifostenant-reference.m_interest_rate_slab DROP TABLE IF EXISTS `m_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2465,11 +2537,12 @@ CREATE TABLE IF NOT EXISTS `m_interest_rate_slab` ( CONSTRAINT `FKIRS00000000000001` FOREIGN KEY (`interest_rate_chart_id`) REFERENCES `m_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan + +-- Dumping structure for table mifostenant-reference.m_loan DROP TABLE IF EXISTS `m_loan`; CREATE TABLE IF NOT EXISTS `m_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2601,8 +2674,8 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `FK_closedon_userid` FOREIGN KEY (`closedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_disbursedon_userid` FOREIGN KEY (`disbursedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_loan_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`), - CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_m_loan_m_staff` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`), + CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`), CONSTRAINT `FK_rejectedon_userid` FOREIGN KEY (`rejectedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_submittedon_userid` FOREIGN KEY (`submittedon_userid`) REFERENCES `m_appuser` (`id`), CONSTRAINT `FK_withdrawnon_userid` FOREIGN KEY (`withdrawnon_userid`) REFERENCES `m_appuser` (`id`), @@ -2610,13 +2683,14 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`, `is_topup`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL, 0); /*!40000 ALTER TABLE `m_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_entry + +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_entry DROP TABLE IF EXISTS `m_loanproduct_provisioning_entry`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2649,11 +2723,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_entry` ( CONSTRAINT `m_loanproduct_provisioning_entry_ibfk_8` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_entry: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_entry: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_entry` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loanproduct_provisioning_mapping + +-- Dumping structure for table mifostenant-reference.m_loanproduct_provisioning_mapping DROP TABLE IF EXISTS `m_loanproduct_provisioning_mapping`; CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2666,11 +2741,12 @@ CREATE TABLE IF NOT EXISTS `m_loanproduct_provisioning_mapping` ( CONSTRAINT `m_loanproduct_provisioning_mapping_ibfk_2` FOREIGN KEY (`criteria_id`) REFERENCES `m_provisioning_criteria` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loanproduct_provisioning_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loanproduct_provisioning_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loanproduct_provisioning_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_arrears_aging + +-- Dumping structure for table mifostenant-reference.m_loan_arrears_aging DROP TABLE IF EXISTS `m_loan_arrears_aging`; CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( `loan_id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2684,11 +2760,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_arrears_aging` ( CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_arrears_aging: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_arrears_aging: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_arrears_aging` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_arrears_aging` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge + +-- Dumping structure for table mifostenant-reference.m_loan_charge DROP TABLE IF EXISTS `m_loan_charge`; CREATE TABLE IF NOT EXISTS `m_loan_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2719,13 +2796,14 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge` ( CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge` DISABLE KEYS */; INSERT INTO `m_loan_charge` (`id`, `loan_id`, `charge_id`, `is_penalty`, `charge_time_enum`, `due_for_collection_as_of_date`, `charge_calculation_enum`, `charge_payment_mode_enum`, `calculation_percentage`, `calculation_on_amount`, `charge_amount_or_percentage`, `amount`, `amount_paid_derived`, `amount_waived_derived`, `amount_writtenoff_derived`, `amount_outstanding_derived`, `is_paid_derived`, `waived`, `min_cap`, `max_cap`, `is_active`) VALUES (1, 1, 1, 0, 1, NULL, 1, 0, NULL, NULL, 500.000000, 500.000000, NULL, NULL, NULL, 500.000000, 0, 0, NULL, NULL, 1); /*!40000 ALTER TABLE `m_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_charge_paid_by + +-- Dumping structure for table mifostenant-reference.m_loan_charge_paid_by DROP TABLE IF EXISTS `m_loan_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2740,11 +2818,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_charge_paid_by` ( CONSTRAINT `FK__m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_collateral + +-- Dumping structure for table mifostenant-reference.m_loan_collateral DROP TABLE IF EXISTS `m_loan_collateral`; CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2759,11 +2838,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_collateral` ( CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_collateral: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_collateral: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_collateral` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_collateral` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_disbursement_detail + +-- Dumping structure for table mifostenant-reference.m_loan_disbursement_detail DROP TABLE IF EXISTS `m_loan_disbursement_detail`; CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2776,11 +2856,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_disbursement_detail` ( CONSTRAINT `FK_loan_disbursement_detail_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_disbursement_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_disbursement_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_disbursement_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_disbursement_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_installment_charge + +-- Dumping structure for table mifostenant-reference.m_loan_installment_charge DROP TABLE IF EXISTS `m_loan_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2802,11 +2883,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_installment_charge` ( CONSTRAINT `FK_loan_schedule_id_charge_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details + +-- Dumping structure for table mifostenant-reference.m_loan_interest_recalculation_additional_details DROP TABLE IF EXISTS `m_loan_interest_recalculation_additional_details`; CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2818,11 +2900,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_interest_recalculation_additional_details` ( CONSTRAINT `FK_additional_details_repayment_schedule_id` FOREIGN KEY (`loan_repayment_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_interest_recalculation_additional_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_interest_recalculation_additional_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_officer_assignment_history + +-- Dumping structure for table mifostenant-reference.m_loan_officer_assignment_history DROP TABLE IF EXISTS `m_loan_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2841,11 +2924,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_officer_assignment_history` ( CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_overdue_installment_charge + +-- Dumping structure for table mifostenant-reference.m_loan_overdue_installment_charge DROP TABLE IF EXISTS `m_loan_overdue_installment_charge`; CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2859,11 +2943,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_overdue_installment_charge` ( CONSTRAINT `FK_m_loan_overdue_installment_charge_m_loan_repayment_schedule` FOREIGN KEY (`loan_schedule_id`) REFERENCES `m_loan_repayment_schedule` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_overdue_installment_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_overdue_installment_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_overdue_installment_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_paid_in_advance + +-- Dumping structure for table mifostenant-reference.m_loan_paid_in_advance DROP TABLE IF EXISTS `m_loan_paid_in_advance`; CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( `loan_id` bigint(20) NOT NULL, @@ -2876,11 +2961,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_paid_in_advance` ( CONSTRAINT `m_loan_paid_in_advance_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_paid_in_advance: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_paid_in_advance: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_paid_in_advance` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_paid_in_advance` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_recalculation_details + +-- Dumping structure for table mifostenant-reference.m_loan_recalculation_details DROP TABLE IF EXISTS `m_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2904,11 +2990,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_recalculation_details` ( CONSTRAINT `FK_m_loan_m_loan_recalculation_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule + +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule DROP TABLE IF EXISTS `m_loan_repayment_schedule`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -2948,7 +3035,7 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule` ( CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule: ~25 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule: ~25 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule` DISABLE KEYS */; INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, `installment`, `principal_amount`, `principal_completed_derived`, `principal_writtenoff_derived`, `interest_amount`, `interest_completed_derived`, `interest_writtenoff_derived`, `interest_waived_derived`, `accrual_interest_derived`, `fee_charges_amount`, `fee_charges_completed_derived`, `fee_charges_writtenoff_derived`, `fee_charges_waived_derived`, `accrual_fee_charges_derived`, `penalty_charges_amount`, `penalty_charges_completed_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_waived_derived`, `accrual_penalty_charges_derived`, `total_paid_in_advance_derived`, `total_paid_late_derived`, `completed_derived`, `obligations_met_on_date`, `createdby_id`, `created_date`, `lastmodified_date`, `lastmodifiedby_id`, `recalculated_interest_component`) VALUES (1, 1, '2014-06-16', '2014-06-23', 1, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0), @@ -2978,7 +3065,8 @@ INSERT INTO `m_loan_repayment_schedule` (`id`, `loan_id`, `fromdate`, `duedate`, (25, 1, '2014-12-01', '2014-12-08', 25, 400.000000, NULL, NULL, 50.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, b'0', NULL, 1, '2014-06-11 09:17:45', '2014-06-11 09:17:45', 1, 0); /*!40000 ALTER TABLE `m_loan_repayment_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_repayment_schedule_history + +-- Dumping structure for table mifostenant-reference.m_loan_repayment_schedule_history DROP TABLE IF EXISTS `m_loan_repayment_schedule_history`; CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3003,11 +3091,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_repayment_schedule_history` ( CONSTRAINT `m_loan_repayment_schedule_history_ibfk_2` FOREIGN KEY (`loan_reschedule_request_id`) REFERENCES `m_loan_reschedule_request` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_repayment_schedule_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_repayment_schedule_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_repayment_schedule_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request + +-- Dumping structure for table mifostenant-reference.m_loan_reschedule_request DROP TABLE IF EXISTS `m_loan_reschedule_request`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3037,11 +3126,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request` ( CONSTRAINT `m_loan_reschedule_request_ibfk_5` FOREIGN KEY (`rejected_by_user_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_reschedule_request: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping + +-- Dumping structure for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping DROP TABLE IF EXISTS `m_loan_reschedule_request_term_variations_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3054,11 +3144,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_reschedule_request_term_variations_mapping` ( CONSTRAINT `FK__m_loan_term_variations` FOREIGN KEY (`loan_term_variations_id`) REFERENCES `m_loan_term_variations` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_reschedule_request_term_variations_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_reschedule_request_term_variations_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_term_variations + +-- Dumping structure for table mifostenant-reference.m_loan_term_variations DROP TABLE IF EXISTS `m_loan_term_variations`; CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3076,11 +3167,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_term_variations` ( CONSTRAINT `FK_loan_id_m_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_term_variations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_term_variations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_term_variations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_term_variations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_topup + +-- Dumping structure for table mifostenant-reference.m_loan_topup DROP TABLE IF EXISTS `m_loan_topup`; CREATE TABLE IF NOT EXISTS `m_loan_topup` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3092,16 +3184,17 @@ CREATE TABLE IF NOT EXISTS `m_loan_topup` ( KEY `m_loan_topup_FK_loan_id` (`loan_id`), KEY `m_loan_topup_FK_closure_loan_id` (`closure_loan_id`), KEY `m_loan_topup_FK_account_transfer_details_id` (`account_transfer_details_id`), - CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`), + CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`), CONSTRAINT `m_loan_topup_FK_closure_loan_id` FOREIGN KEY (`closure_loan_id`) REFERENCES `m_loan` (`id`), - CONSTRAINT `m_loan_topup_FK_account_transfer_details_id` FOREIGN KEY (`account_transfer_details_id`) REFERENCES `m_account_transfer_details` (`id`) + CONSTRAINT `m_loan_topup_FK_loan_id` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_topup: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_topup: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_topup` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_topup` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_charges + +-- Dumping structure for table mifostenant-reference.m_loan_tranche_charges DROP TABLE IF EXISTS `m_loan_tranche_charges`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3114,11 +3207,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_charges` ( CONSTRAINT `FK_m_loan_tranche_charges_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_charges: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_charges: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_charges` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_charges` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_tranche_disbursement_charge + +-- Dumping structure for table mifostenant-reference.m_loan_tranche_disbursement_charge DROP TABLE IF EXISTS `m_loan_tranche_disbursement_charge`; CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3131,11 +3225,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_tranche_disbursement_charge` ( CONSTRAINT `FK_m_loan_tranche_disbursement_charge_m_loan_disbursement_detail` FOREIGN KEY (`disbursement_detail_id`) REFERENCES `m_loan_disbursement_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_tranche_disbursement_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_tranche_disbursement_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_tranche_disbursement_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction + +-- Dumping structure for table mifostenant-reference.m_loan_transaction DROP TABLE IF EXISTS `m_loan_transaction`; CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3168,11 +3263,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction` ( CONSTRAINT `FK_m_loan_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping + +-- Dumping structure for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping DROP TABLE IF EXISTS `m_loan_transaction_repayment_schedule_mapping`; CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3190,11 +3286,12 @@ CREATE TABLE IF NOT EXISTS `m_loan_transaction_repayment_schedule_mapping` ( CONSTRAINT `FK_mappings_m_loan_transaction` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan_transaction_repayment_schedule_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_loan_transaction_repayment_schedule_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_mandatory_savings_schedule + +-- Dumping structure for table mifostenant-reference.m_mandatory_savings_schedule DROP TABLE IF EXISTS `m_mandatory_savings_schedule`; CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3217,11 +3314,12 @@ CREATE TABLE IF NOT EXISTS `m_mandatory_savings_schedule` ( CONSTRAINT `FKMSS0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_mandatory_savings_schedule: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_mandatory_savings_schedule: ~0 rows (approximately) /*!40000 ALTER TABLE `m_mandatory_savings_schedule` DISABLE KEYS */; /*!40000 ALTER TABLE `m_mandatory_savings_schedule` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_meeting + +-- Dumping structure for table mifostenant-reference.m_meeting DROP TABLE IF EXISTS `m_meeting`; CREATE TABLE IF NOT EXISTS `m_meeting` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3232,11 +3330,12 @@ CREATE TABLE IF NOT EXISTS `m_meeting` ( CONSTRAINT `FK_m_calendar_instance_m_meeting` FOREIGN KEY (`calendar_instance_id`) REFERENCES `m_calendar_instance` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_meeting: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_meeting: ~0 rows (approximately) /*!40000 ALTER TABLE `m_meeting` DISABLE KEYS */; /*!40000 ALTER TABLE `m_meeting` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_note + +-- Dumping structure for table mifostenant-reference.m_note DROP TABLE IF EXISTS `m_note`; CREATE TABLE IF NOT EXISTS `m_note` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3270,11 +3369,12 @@ CREATE TABLE IF NOT EXISTS `m_note` ( CONSTRAINT `FK_savings_account_id` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_note: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_note: ~0 rows (approximately) /*!40000 ALTER TABLE `m_note` DISABLE KEYS */; /*!40000 ALTER TABLE `m_note` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office + +-- Dumping structure for table mifostenant-reference.m_office DROP TABLE IF EXISTS `m_office`; CREATE TABLE IF NOT EXISTS `m_office` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3290,7 +3390,7 @@ CREATE TABLE IF NOT EXISTS `m_office` ( CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office: ~3 rows (approximately) /*!40000 ALTER TABLE `m_office` DISABLE KEYS */; INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) VALUES (1, NULL, '.', '1', 'Head Office', '2009-01-01'), @@ -3298,7 +3398,8 @@ INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, ` (3, 1, '.3.', NULL, 'Pasay', '2010-02-08'); /*!40000 ALTER TABLE `m_office` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_office_transaction + +-- Dumping structure for table mifostenant-reference.m_office_transaction DROP TABLE IF EXISTS `m_office_transaction`; CREATE TABLE IF NOT EXISTS `m_office_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3316,11 +3417,12 @@ CREATE TABLE IF NOT EXISTS `m_office_transaction` ( CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_office_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_office_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_office_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_office_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_organisation_currency + +-- Dumping structure for table mifostenant-reference.m_organisation_currency DROP TABLE IF EXISTS `m_organisation_currency`; CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3333,13 +3435,14 @@ CREATE TABLE IF NOT EXISTS `m_organisation_currency` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_organisation_currency: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_organisation_currency: ~0 rows (approximately) /*!40000 ALTER TABLE `m_organisation_currency` DISABLE KEYS */; INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof`, `name`, `display_symbol`, `internationalized_name_code`) VALUES (21, 'USD', 2, NULL, 'US Dollar', '$', 'currency.USD'); /*!40000 ALTER TABLE `m_organisation_currency` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_password_validation_policy + +-- Dumping structure for table mifostenant-reference.m_password_validation_policy DROP TABLE IF EXISTS `m_password_validation_policy`; CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3350,14 +3453,15 @@ CREATE TABLE IF NOT EXISTS `m_password_validation_policy` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_password_validation_policy: ~2 rows (approximately) +-- Dumping data for table mifostenant-reference.m_password_validation_policy: ~2 rows (approximately) /*!40000 ALTER TABLE `m_password_validation_policy` DISABLE KEYS */; INSERT INTO `m_password_validation_policy` (`id`, `regex`, `description`, `active`, `key`) VALUES (1, '^.{1,50}$', 'Password most be at least 1 character and not more that 50 characters long', 1, 'simple'), (2, '^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\\s).{6,50}$', 'Password must be at least 6 characters, no more than 50 characters long, must include at least one upper case letter, one lower case letter, one numeric digit and no space', 0, 'secure'); /*!40000 ALTER TABLE `m_password_validation_policy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_detail + +-- Dumping structure for table mifostenant-reference.m_payment_detail DROP TABLE IF EXISTS `m_payment_detail`; CREATE TABLE IF NOT EXISTS `m_payment_detail` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3372,11 +3476,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_detail` ( CONSTRAINT `FK_m_payment_detail_m_payment_type` FOREIGN KEY (`payment_type_id`) REFERENCES `m_payment_type` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_detail: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_detail` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_payment_type + +-- Dumping structure for table mifostenant-reference.m_payment_type DROP TABLE IF EXISTS `m_payment_type`; CREATE TABLE IF NOT EXISTS `m_payment_type` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -3387,11 +3492,12 @@ CREATE TABLE IF NOT EXISTS `m_payment_type` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_payment_type: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_payment_type: ~0 rows (approximately) /*!40000 ALTER TABLE `m_payment_type` DISABLE KEYS */; /*!40000 ALTER TABLE `m_payment_type` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_permission + +-- Dumping structure for table mifostenant-reference.m_permission DROP TABLE IF EXISTS `m_permission`; CREATE TABLE IF NOT EXISTS `m_permission` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -3404,7 +3510,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( UNIQUE KEY `code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_permission: ~763 rows (approximately) +-- Dumping data for table mifostenant-reference.m_permission: ~742 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES (1, 'special', 'ALL_FUNCTIONS', NULL, NULL, 0), @@ -4138,20 +4244,21 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (751, 'portfolio', 'UNDOREJECT_CLIENT_CHECKER', 'CLIENT', 'UNDOREJECT_CHECKER', 1), (752, 'portfolio', 'UNDOWITHDRAWAL_CLIENT', 'CLIENT', 'UNDOWITHDRAWAL', 1), (753, 'portfolio', 'UNDOWITHDRAWAL_CLIENT_CHECKER', 'CLIENT', 'UNDOWITHDRAWAL_CHECKER', 1), - (754, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), - (755, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), - (756, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), - (757, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), - (758, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), - (759, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), - (760, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), - (761, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), - (762, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), - (763, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), - (764, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0); + (754, 'organisation', 'READ_SMSCAMPAIGN', 'SMSCAMPAIGN', 'READ', 0), + (755, 'organisation', 'CREATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CREATE', 0), + (756, 'organisation', 'CREATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'CREATE', 0), + (757, 'organisation', 'UPDATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'UPDATE', 0), + (758, 'organisation', 'UPDATE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'UPDATE', 0), + (759, 'organisation', 'DELETE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'DELETE', 0), + (760, 'organisation', 'DELETE_SMSCAMPAIGN_CHECKER', 'SMSCAMPAIGN', 'DELETE', 0), + (761, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), + (762, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), + (763, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0), + (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_account_associations + +-- Dumping structure for table mifostenant-reference.m_portfolio_account_associations DROP TABLE IF EXISTS `m_portfolio_account_associations`; CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4172,11 +4279,12 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_account_associations` ( CONSTRAINT `linked_savings_fk` FOREIGN KEY (`linked_savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_account_associations: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_account_associations: ~0 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_account_associations` DISABLE KEYS */; /*!40000 ALTER TABLE `m_portfolio_account_associations` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_portfolio_command_source + +-- Dumping structure for table mifostenant-reference.m_portfolio_command_source DROP TABLE IF EXISTS `m_portfolio_command_source`; CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4214,7 +4322,7 @@ CREATE TABLE IF NOT EXISTS `m_portfolio_command_source` ( CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=73 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_portfolio_command_source: ~75 rows (approximately) +-- Dumping data for table mifostenant-reference.m_portfolio_command_source: ~72 rows (approximately) /*!40000 ALTER TABLE `m_portfolio_command_source` DISABLE KEYS */; INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `office_id`, `group_id`, `client_id`, `loan_id`, `savings_account_id`, `api_get_url`, `resource_id`, `subresource_id`, `command_as_json`, `maker_id`, `made_on_date`, `checker_id`, `checked_on_date`, `processing_result_enum`, `product_id`, `transaction_id`) VALUES (1, 'CREATE', 'STAFF', 1, NULL, NULL, NULL, NULL, '/staff/template', 1, NULL, '{"isLoanOfficer":true,"officeId":1,"firstname":"Aliya","lastname":"A"}', 1, '2014-03-07 19:10:05', NULL, NULL, 1, NULL, NULL), @@ -4291,7 +4399,8 @@ INSERT INTO `m_portfolio_command_source` (`id`, `action_name`, `entity_name`, `o (72, 'DELETE', 'FINANCIALACTIVITYACCOUNT', NULL, NULL, NULL, NULL, NULL, '/organizationglaccounts/2', 2, NULL, '{}', 1, '2014-06-16 17:11:12', NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_portfolio_command_source` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan + +-- Dumping structure for table mifostenant-reference.m_product_loan DROP TABLE IF EXISTS `m_product_loan`; CREATE TABLE IF NOT EXISTS `m_product_loan` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4359,13 +4468,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`, `can_use_for_topup`, `sync_expected_with_disbursement_date`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL, 0, 0); /*!40000 ALTER TABLE `m_product_loan` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_charge + +-- Dumping structure for table mifostenant-reference.m_product_loan_charge DROP TABLE IF EXISTS `m_product_loan_charge`; CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( `product_loan_id` bigint(20) NOT NULL, @@ -4376,13 +4486,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_charge` ( CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_charge: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_charge` DISABLE KEYS */; INSERT INTO `m_product_loan_charge` (`product_loan_id`, `charge_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_product_loan_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_configurable_attributes + +-- Dumping structure for table mifostenant-reference.m_product_loan_configurable_attributes DROP TABLE IF EXISTS `m_product_loan_configurable_attributes`; CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4400,13 +4511,14 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_configurable_attributes` ( CONSTRAINT `fk_m_product_loan_configurable_attributes_0001` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_configurable_attributes: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_configurable_attributes: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` DISABLE KEYS */; INSERT INTO `m_product_loan_configurable_attributes` (`id`, `loan_product_id`, `amortization_method_enum`, `interest_method_enum`, `loan_transaction_strategy_id`, `interest_calculated_in_period_enum`, `arrearstolerance_amount`, `repay_every`, `moratorium`, `grace_on_arrears_ageing`) VALUES (1, 1, 1, 1, 1, 1, 1, 1, 1, 1); /*!40000 ALTER TABLE `m_product_loan_configurable_attributes` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_floating_rates + +-- Dumping structure for table mifostenant-reference.m_product_loan_floating_rates DROP TABLE IF EXISTS `m_product_loan_floating_rates`; CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4424,11 +4536,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_floating_rates` ( CONSTRAINT `FK_mappings_m_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_floating_rates: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_floating_rates: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_floating_rates` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_floating_rates` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_guarantee_details + +-- Dumping structure for table mifostenant-reference.m_product_loan_guarantee_details DROP TABLE IF EXISTS `m_product_loan_guarantee_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4441,11 +4554,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_guarantee_details` ( CONSTRAINT `FK_guarantee_details_loan_product` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_guarantee_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_guarantee_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_guarantee_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_guarantee_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_recalculation_details + +-- Dumping structure for table mifostenant-reference.m_product_loan_recalculation_details DROP TABLE IF EXISTS `m_product_loan_recalculation_details`; CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4471,11 +4585,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_recalculation_details` ( CONSTRAINT `FK_m_product_loan_m_product_loan_recalculation_details` FOREIGN KEY (`product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.m_product_loan_recalculation_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_recalculation_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_recalculation_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_recalculation_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variable_installment_config + +-- Dumping structure for table mifostenant-reference.m_product_loan_variable_installment_config DROP TABLE IF EXISTS `m_product_loan_variable_installment_config`; CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4487,11 +4602,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variable_installment_config` ( CONSTRAINT `FK_mappings_m_variable_product_loan_id` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variable_installment_config: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variable_installment_config: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variable_installment_config` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle + +-- Dumping structure for table mifostenant-reference.m_product_loan_variations_borrower_cycle DROP TABLE IF EXISTS `m_product_loan_variations_borrower_cycle`; CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4507,11 +4623,12 @@ CREATE TABLE IF NOT EXISTS `m_product_loan_variations_borrower_cycle` ( CONSTRAINT `borrower_cycle_loan_product_FK` FOREIGN KEY (`loan_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan_variations_borrower_cycle: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_loan_variations_borrower_cycle` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_product_mix + +-- Dumping structure for table mifostenant-reference.m_product_mix DROP TABLE IF EXISTS `m_product_mix`; CREATE TABLE IF NOT EXISTS `m_product_mix` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4524,11 +4641,12 @@ CREATE TABLE IF NOT EXISTS `m_product_mix` ( CONSTRAINT `FK_m_product_mix_restricted_product_id_to_m_product_loan` FOREIGN KEY (`restricted_product_id`) REFERENCES `m_product_loan` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_product_mix: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_mix: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_mix` DISABLE KEYS */; /*!40000 ALTER TABLE `m_product_mix` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria + +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria DROP TABLE IF EXISTS `m_provisioning_criteria`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4545,11 +4663,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria` ( CONSTRAINT `m_provisioning_criteria_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_criteria_definition + +-- Dumping structure for table mifostenant-reference.m_provisioning_criteria_definition DROP TABLE IF EXISTS `m_provisioning_criteria_definition`; CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4571,11 +4690,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_criteria_definition` ( CONSTRAINT `m_provisioning_criteria_definition_ibfk_4` FOREIGN KEY (`expense_account`) REFERENCES `acc_gl_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_criteria_definition: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_criteria_definition: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_criteria_definition` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_criteria_definition` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provisioning_history + +-- Dumping structure for table mifostenant-reference.m_provisioning_history DROP TABLE IF EXISTS `m_provisioning_history`; CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4591,11 +4711,12 @@ CREATE TABLE IF NOT EXISTS `m_provisioning_history` ( CONSTRAINT `m_provisioning_history_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provisioning_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provisioning_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_provisioning_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_provisioning_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_provision_category + +-- Dumping structure for table mifostenant-reference.m_provision_category DROP TABLE IF EXISTS `m_provision_category`; CREATE TABLE IF NOT EXISTS `m_provision_category` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4605,7 +4726,7 @@ CREATE TABLE IF NOT EXISTS `m_provision_category` ( UNIQUE KEY `category_name` (`category_name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_provision_category: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_provision_category: ~4 rows (approximately) /*!40000 ALTER TABLE `m_provision_category` DISABLE KEYS */; INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (1, 'STANDARD', 'Punctual Payment without any dues'), @@ -4614,7 +4735,8 @@ INSERT INTO `m_provision_category` (`id`, `category_name`, `description`) VALUES (4, 'LOSS', 'Principal and/or Interest overdue by y days'); /*!40000 ALTER TABLE `m_provision_category` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job + +-- Dumping structure for table mifostenant-reference.m_report_mailing_job DROP TABLE IF EXISTS `m_report_mailing_job`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4653,11 +4775,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job` ( CONSTRAINT `m_report_mailing_job_ibfk_4` FOREIGN KEY (`run_as_userid`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_configuration + +-- Dumping structure for table mifostenant-reference.m_report_mailing_job_configuration DROP TABLE IF EXISTS `m_report_mailing_job_configuration`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -4667,7 +4790,7 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_configuration` ( UNIQUE KEY `unique_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job_configuration: ~4 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job_configuration: ~4 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_configuration` DISABLE KEYS */; INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (1, 'GMAIL_SMTP_SERVER', 'smtp.gmail.com'), @@ -4676,7 +4799,8 @@ INSERT INTO `m_report_mailing_job_configuration` (`id`, `name`, `value`) VALUES (4, 'GMAIL_SMTP_PASSWORD', ''); /*!40000 ALTER TABLE `m_report_mailing_job_configuration` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_report_mailing_job_run_history + +-- Dumping structure for table mifostenant-reference.m_report_mailing_job_run_history DROP TABLE IF EXISTS `m_report_mailing_job_run_history`; CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4691,11 +4815,12 @@ CREATE TABLE IF NOT EXISTS `m_report_mailing_job_run_history` ( CONSTRAINT `m_report_mailing_job_run_history_ibfk_1` FOREIGN KEY (`job_id`) REFERENCES `m_report_mailing_job` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_report_mailing_job_run_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_report_mailing_job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_report_mailing_job_run_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_report_mailing_job_run_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role + +-- Dumping structure for table mifostenant-reference.m_role DROP TABLE IF EXISTS `m_role`; CREATE TABLE IF NOT EXISTS `m_role` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4706,13 +4831,14 @@ CREATE TABLE IF NOT EXISTS `m_role` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role` DISABLE KEYS */; INSERT INTO `m_role` (`id`, `name`, `description`, `is_disabled`) VALUES (1, 'Super user', 'This role provides all application permissions.', 0); /*!40000 ALTER TABLE `m_role` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_role_permission + +-- Dumping structure for table mifostenant-reference.m_role_permission DROP TABLE IF EXISTS `m_role_permission`; CREATE TABLE IF NOT EXISTS `m_role_permission` ( `role_id` bigint(20) NOT NULL, @@ -4724,13 +4850,14 @@ CREATE TABLE IF NOT EXISTS `m_role_permission` ( CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_role_permission: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_role_permission: ~0 rows (approximately) /*!40000 ALTER TABLE `m_role_permission` DISABLE KEYS */; INSERT INTO `m_role_permission` (`role_id`, `permission_id`) VALUES (1, 1); /*!40000 ALTER TABLE `m_role_permission` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account + +-- Dumping structure for table mifostenant-reference.m_savings_account DROP TABLE IF EXISTS `m_savings_account`; CREATE TABLE IF NOT EXISTS `m_savings_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4806,11 +4933,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account` ( CONSTRAINT `FK_savings_account_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge + +-- Dumping structure for table mifostenant-reference.m_savings_account_charge DROP TABLE IF EXISTS `m_savings_account_charge`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4841,11 +4969,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge` ( CONSTRAINT `m_savings_account_charge_ibfk_2` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_charge_paid_by + +-- Dumping structure for table mifostenant-reference.m_savings_account_charge_paid_by DROP TABLE IF EXISTS `m_savings_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4859,11 +4988,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_charge_paid_by` ( CONSTRAINT `FK__m_savings_account_transaction` FOREIGN KEY (`savings_account_transaction_id`) REFERENCES `m_savings_account_transaction` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_chart + +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_chart DROP TABLE IF EXISTS `m_savings_account_interest_rate_chart`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4878,11 +5008,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_chart` ( CONSTRAINT `FKSAIRC00000000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_chart: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_chart: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_chart` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_interest_rate_slab + +-- Dumping structure for table mifostenant-reference.m_savings_account_interest_rate_slab DROP TABLE IF EXISTS `m_savings_account_interest_rate_slab`; CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4900,11 +5031,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_interest_rate_slab` ( CONSTRAINT `FKSAIRS00000000000001` FOREIGN KEY (`savings_account_interest_rate_chart_id`) REFERENCES `m_savings_account_interest_rate_chart` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_interest_rate_slab: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_interest_rate_slab: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_interest_rate_slab` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction + +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction DROP TABLE IF EXISTS `m_savings_account_transaction`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4932,11 +5064,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction` ( CONSTRAINT `FK_m_savings_account_transaction_m_payment_detail` FOREIGN KEY (`payment_detail_id`) REFERENCES `m_payment_detail` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_account_transaction_tax_details + +-- Dumping structure for table mifostenant-reference.m_savings_account_transaction_tax_details DROP TABLE IF EXISTS `m_savings_account_transaction_tax_details`; CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4950,11 +5083,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_account_transaction_tax_details` ( CONSTRAINT `FK_savings_account_transaction_tax_details_tax_component` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_account_transaction_tax_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_account_transaction_tax_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_account_transaction_tax_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_interest_incentives + +-- Dumping structure for table mifostenant-reference.m_savings_interest_incentives DROP TABLE IF EXISTS `m_savings_interest_incentives`; CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4970,11 +5104,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_interest_incentives` ( CONSTRAINT `FK_m_savings_interest_incentives_m_savings_interest_rate_slab` FOREIGN KEY (`deposit_account_interest_rate_slab_id`) REFERENCES `m_savings_account_interest_rate_slab` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_interest_incentives: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_interest_incentives: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_interest_incentives` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_interest_incentives` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_officer_assignment_history + +-- Dumping structure for table mifostenant-reference.m_savings_officer_assignment_history DROP TABLE IF EXISTS `m_savings_officer_assignment_history`; CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -4993,11 +5128,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_officer_assignment_history` ( CONSTRAINT `fk_m_savings_officer_assignment_history_0002` FOREIGN KEY (`savings_officer_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_officer_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_officer_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_officer_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_officer_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product + +-- Dumping structure for table mifostenant-reference.m_savings_product DROP TABLE IF EXISTS `m_savings_product`; CREATE TABLE IF NOT EXISTS `m_savings_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5040,13 +5176,14 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `m_savings_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_savings_product_charge + +-- Dumping structure for table mifostenant-reference.m_savings_product_charge DROP TABLE IF EXISTS `m_savings_product_charge`; CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( `savings_product_id` bigint(20) NOT NULL, @@ -5057,11 +5194,12 @@ CREATE TABLE IF NOT EXISTS `m_savings_product_charge` ( CONSTRAINT `m_savings_product_charge_ibfk_2` FOREIGN KEY (`savings_product_id`) REFERENCES `m_savings_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_savings_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_savings_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt + +-- Dumping structure for table mifostenant-reference.m_selfservice_beneficiaries_tpt DROP TABLE IF EXISTS `m_selfservice_beneficiaries_tpt`; CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5077,11 +5215,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_beneficiaries_tpt` ( UNIQUE KEY `name` (`name`,`app_user_id`,`is_active`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_beneficiaries_tpt: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_beneficiaries_tpt` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_selfservice_user_client_mapping + +-- Dumping structure for table mifostenant-reference.m_selfservice_user_client_mapping DROP TABLE IF EXISTS `m_selfservice_user_client_mapping`; CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5094,11 +5233,12 @@ CREATE TABLE IF NOT EXISTS `m_selfservice_user_client_mapping` ( CONSTRAINT `m_selfservice_client_id` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_selfservice_user_client_mapping: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_selfservice_user_client_mapping: ~0 rows (approximately) /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` DISABLE KEYS */; /*!40000 ALTER TABLE `m_selfservice_user_client_mapping` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account + +-- Dumping structure for table mifostenant-reference.m_share_account DROP TABLE IF EXISTS `m_share_account`; CREATE TABLE IF NOT EXISTS `m_share_account` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5152,11 +5292,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account` ( CONSTRAINT `m_share_account_ibfk_9` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge + +-- Dumping structure for table mifostenant-reference.m_share_account_charge DROP TABLE IF EXISTS `m_share_account_charge`; CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5185,16 +5326,17 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge` ( CONSTRAINT `m_share_account_charge_ibfk_2` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_charge_paid_by + +-- Dumping structure for table mifostenant-reference.m_share_account_charge_paid_by DROP TABLE IF EXISTS `m_share_account_charge_paid_by`; CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, - `share_transaction_id` bigint(20) NOT NULL, - `charge_transaction_id` bigint(20) NOT NULL, + `share_transaction_id` bigint(20) DEFAULT NULL, + `charge_transaction_id` bigint(20) DEFAULT NULL, `amount` decimal(20,2) NOT NULL, PRIMARY KEY (`id`), KEY `m_share_account_transactions_charge_mapping_ibfk1` (`share_transaction_id`), @@ -5203,11 +5345,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_charge_paid_by` ( CONSTRAINT `m_share_account_transactions_charge_mapping_ibfk2` FOREIGN KEY (`charge_transaction_id`) REFERENCES `m_share_account_charge` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_charge_paid_by: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_charge_paid_by: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_charge_paid_by` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_charge_paid_by` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_dividend_details + +-- Dumping structure for table mifostenant-reference.m_share_account_dividend_details DROP TABLE IF EXISTS `m_share_account_dividend_details`; CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5223,11 +5366,12 @@ CREATE TABLE IF NOT EXISTS `m_share_account_dividend_details` ( CONSTRAINT `FK_m_share_account_dividend_details_dividend_pay_out_id` FOREIGN KEY (`dividend_pay_out_id`) REFERENCES `m_share_product_dividend_pay_out` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_dividend_details: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_dividend_details: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_dividend_details` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_dividend_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_account_transactions + +-- Dumping structure for table mifostenant-reference.m_share_account_transactions DROP TABLE IF EXISTS `m_share_account_transactions`; CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5237,18 +5381,21 @@ CREATE TABLE IF NOT EXISTS `m_share_account_transactions` ( `unit_price` decimal(10,2) DEFAULT NULL, `amount` decimal(20,2) DEFAULT NULL, `charge_amount` decimal(20,2) DEFAULT NULL, + `amount_paid` decimal(20,2) DEFAULT NULL, `status_enum` smallint(5) NOT NULL DEFAULT '300', `type_enum` smallint(5) DEFAULT NULL, + `is_active` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), KEY `m_share_account_purchased_shares_ibfk_1` (`account_id`), CONSTRAINT `m_share_account_purchased_shares_ibfk_1` FOREIGN KEY (`account_id`) REFERENCES `m_share_account` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_account_transactions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_account_transactions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_account_transactions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_account_transactions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product + +-- Dumping structure for table mifostenant-reference.m_share_product DROP TABLE IF EXISTS `m_share_product`; CREATE TABLE IF NOT EXISTS `m_share_product` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5287,11 +5434,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product` ( CONSTRAINT `m_share_product_ibfk_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_charge + +-- Dumping structure for table mifostenant-reference.m_share_product_charge DROP TABLE IF EXISTS `m_share_product_charge`; CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( `product_id` bigint(20) NOT NULL, @@ -5302,11 +5450,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_charge` ( CONSTRAINT `m_share_product_charge_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_charge: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_charge: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_charge` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_charge` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_dividend_pay_out + +-- Dumping structure for table mifostenant-reference.m_share_product_dividend_pay_out DROP TABLE IF EXISTS `m_share_product_dividend_pay_out`; CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5328,11 +5477,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_dividend_pay_out` ( CONSTRAINT `FK_m_share_product_dividend_pay_out_product_id` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_dividend_pay_out: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_dividend_pay_out: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_dividend_pay_out` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_share_product_market_price + +-- Dumping structure for table mifostenant-reference.m_share_product_market_price DROP TABLE IF EXISTS `m_share_product_market_price`; CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5344,11 +5494,12 @@ CREATE TABLE IF NOT EXISTS `m_share_product_market_price` ( CONSTRAINT `m_share_product_market_price_ibfk_1` FOREIGN KEY (`product_id`) REFERENCES `m_share_product` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_share_product_market_price: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_share_product_market_price: ~0 rows (approximately) /*!40000 ALTER TABLE `m_share_product_market_price` DISABLE KEYS */; /*!40000 ALTER TABLE `m_share_product_market_price` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff + +-- Dumping structure for table mifostenant-reference.m_staff DROP TABLE IF EXISTS `m_staff`; CREATE TABLE IF NOT EXISTS `m_staff` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5374,7 +5525,7 @@ CREATE TABLE IF NOT EXISTS `m_staff` ( CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff: ~3 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff: ~3 rows (approximately) /*!40000 ALTER TABLE `m_staff` DISABLE KEYS */; INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastname`, `display_name`, `mobile_no`, `external_id`, `organisational_role_enum`, `organisational_role_parent_staff_id`, `is_active`, `joining_date`, `image_id`) VALUES (1, 1, 1, 'Aliya', 'A', 'A, Aliya', NULL, NULL, NULL, NULL, 1, NULL, NULL), @@ -5382,7 +5533,8 @@ INSERT INTO `m_staff` (`id`, `is_loan_officer`, `office_id`, `firstname`, `lastn (3, 1, 3, 'John', 'K', 'K, John', NULL, NULL, NULL, NULL, 1, NULL, NULL); /*!40000 ALTER TABLE `m_staff` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_staff_assignment_history + +-- Dumping structure for table mifostenant-reference.m_staff_assignment_history DROP TABLE IF EXISTS `m_staff_assignment_history`; CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5401,11 +5553,12 @@ CREATE TABLE IF NOT EXISTS `m_staff_assignment_history` ( CONSTRAINT `FK_m_staff_assignment_history_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_staff_assignment_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_staff_assignment_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_staff_assignment_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_staff_assignment_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_surveys + +-- Dumping structure for table mifostenant-reference.m_surveys DROP TABLE IF EXISTS `m_surveys`; CREATE TABLE IF NOT EXISTS `m_surveys` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5418,11 +5571,12 @@ CREATE TABLE IF NOT EXISTS `m_surveys` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_surveys: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_surveys: ~0 rows (approximately) /*!40000 ALTER TABLE `m_surveys` DISABLE KEYS */; /*!40000 ALTER TABLE `m_surveys` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_components + +-- Dumping structure for table mifostenant-reference.m_survey_components DROP TABLE IF EXISTS `m_survey_components`; CREATE TABLE IF NOT EXISTS `m_survey_components` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5436,11 +5590,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_components` ( CONSTRAINT `m_survey_components_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_components: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_components: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_components` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_components` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_lookup_tables + +-- Dumping structure for table mifostenant-reference.m_survey_lookup_tables DROP TABLE IF EXISTS `m_survey_lookup_tables`; CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5455,11 +5610,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_lookup_tables` ( CONSTRAINT `m_survey_lookup_tables_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_lookup_tables: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_lookup_tables: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_lookup_tables` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_lookup_tables` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_questions + +-- Dumping structure for table mifostenant-reference.m_survey_questions DROP TABLE IF EXISTS `m_survey_questions`; CREATE TABLE IF NOT EXISTS `m_survey_questions` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5474,11 +5630,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_questions` ( CONSTRAINT `m_survey_questions_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_questions: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_questions: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_questions` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_questions` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_responses + +-- Dumping structure for table mifostenant-reference.m_survey_responses DROP TABLE IF EXISTS `m_survey_responses`; CREATE TABLE IF NOT EXISTS `m_survey_responses` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5491,11 +5648,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_responses` ( CONSTRAINT `m_survey_responses_ibfk_1` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_responses: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_responses: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_responses` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_responses` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_survey_scorecards + +-- Dumping structure for table mifostenant-reference.m_survey_scorecards DROP TABLE IF EXISTS `m_survey_scorecards`; CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5519,11 +5677,12 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_survey_scorecards: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_survey_scorecards: ~0 rows (approximately) /*!40000 ALTER TABLE `m_survey_scorecards` DISABLE KEYS */; /*!40000 ALTER TABLE `m_survey_scorecards` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component + +-- Dumping structure for table mifostenant-reference.m_tax_component DROP TABLE IF EXISTS `m_tax_component`; CREATE TABLE IF NOT EXISTS `m_tax_component` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5549,11 +5708,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component` ( CONSTRAINT `FK_tax_component_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_component_history + +-- Dumping structure for table mifostenant-reference.m_tax_component_history DROP TABLE IF EXISTS `m_tax_component_history`; CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5574,11 +5734,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_component_history` ( CONSTRAINT `FK_tax_component_history_tax_component_id` FOREIGN KEY (`tax_component_id`) REFERENCES `m_tax_component` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_component_history: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_component_history: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_component_history` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_component_history` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group + +-- Dumping structure for table mifostenant-reference.m_tax_group DROP TABLE IF EXISTS `m_tax_group`; CREATE TABLE IF NOT EXISTS `m_tax_group` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5594,11 +5755,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group` ( CONSTRAINT `FK_tax_group_lastmodifiedby` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tax_group_mappings + +-- Dumping structure for table mifostenant-reference.m_tax_group_mappings DROP TABLE IF EXISTS `m_tax_group_mappings`; CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5621,11 +5783,12 @@ CREATE TABLE IF NOT EXISTS `m_tax_group_mappings` ( CONSTRAINT `FK_tax_group_mappings_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tax_group_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tax_group_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tax_group_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tax_group_mappings` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_tellers + +-- Dumping structure for table mifostenant-reference.m_tellers DROP TABLE IF EXISTS `m_tellers`; CREATE TABLE IF NOT EXISTS `m_tellers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5647,11 +5810,12 @@ CREATE TABLE IF NOT EXISTS `m_tellers` ( CONSTRAINT `FK_m_tellers_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_tellers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_tellers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_tellers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_tellers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template + +-- Dumping structure for table mifostenant-reference.m_template DROP TABLE IF EXISTS `m_template`; CREATE TABLE IF NOT EXISTS `m_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5663,11 +5827,12 @@ CREATE TABLE IF NOT EXISTS `m_template` ( UNIQUE KEY `unq_name` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_templatemappers + +-- Dumping structure for table mifostenant-reference.m_templatemappers DROP TABLE IF EXISTS `m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_templatemappers` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5677,11 +5842,12 @@ CREATE TABLE IF NOT EXISTS `m_templatemappers` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_template_m_templatemappers + +-- Dumping structure for table mifostenant-reference.m_template_m_templatemappers DROP TABLE IF EXISTS `m_template_m_templatemappers`; CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( `m_template_id` bigint(20) NOT NULL, @@ -5691,11 +5857,12 @@ CREATE TABLE IF NOT EXISTS `m_template_m_templatemappers` ( KEY `m_template_id` (`m_template_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_template_m_templatemappers: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.m_template_m_templatemappers: ~0 rows (approximately) /*!40000 ALTER TABLE `m_template_m_templatemappers` DISABLE KEYS */; /*!40000 ALTER TABLE `m_template_m_templatemappers` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.m_working_days + +-- Dumping structure for table mifostenant-reference.m_working_days DROP TABLE IF EXISTS `m_working_days`; CREATE TABLE IF NOT EXISTS `m_working_days` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5706,13 +5873,14 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); /*!40000 ALTER TABLE `m_working_days` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_access_token + +-- Dumping structure for table mifostenant-reference.oauth_access_token DROP TABLE IF EXISTS `oauth_access_token`; CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5724,11 +5892,12 @@ CREATE TABLE IF NOT EXISTS `oauth_access_token` ( `refresh_token` varchar(256) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_access_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_access_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_access_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_access_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_client_details + +-- Dumping structure for table mifostenant-reference.oauth_client_details DROP TABLE IF EXISTS `oauth_client_details`; CREATE TABLE IF NOT EXISTS `oauth_client_details` ( `client_id` varchar(128) NOT NULL, @@ -5745,13 +5914,14 @@ CREATE TABLE IF NOT EXISTS `oauth_client_details` ( PRIMARY KEY (`client_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_client_details: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_client_details: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_client_details` DISABLE KEYS */; INSERT INTO `oauth_client_details` (`client_id`, `resource_ids`, `client_secret`, `scope`, `authorized_grant_types`, `web_server_redirect_uri`, `authorities`, `access_token_validity`, `refresh_token_validity`, `additional_information`, `autoapprove`) VALUES ('community-app', NULL, '123', 'all', 'password,refresh_token', NULL, NULL, NULL, NULL, NULL, NULL); /*!40000 ALTER TABLE `oauth_client_details` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.oauth_refresh_token + +-- Dumping structure for table mifostenant-reference.oauth_refresh_token DROP TABLE IF EXISTS `oauth_refresh_token`; CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `token_id` varchar(256) DEFAULT NULL, @@ -5759,11 +5929,12 @@ CREATE TABLE IF NOT EXISTS `oauth_refresh_token` ( `authentication` blob ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.oauth_refresh_token: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.oauth_refresh_token: ~0 rows (approximately) /*!40000 ALTER TABLE `oauth_refresh_token` DISABLE KEYS */; /*!40000 ALTER TABLE `oauth_refresh_token` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods + +-- Dumping structure for table mifostenant-reference.ppi_likelihoods DROP TABLE IF EXISTS `ppi_likelihoods`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5772,11 +5943,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_likelihoods_ppi + +-- Dumping structure for table mifostenant-reference.ppi_likelihoods_ppi DROP TABLE IF EXISTS `ppi_likelihoods_ppi`; CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5786,11 +5958,12 @@ CREATE TABLE IF NOT EXISTS `ppi_likelihoods_ppi` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_likelihoods_ppi: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_likelihoods_ppi: ~0 rows (approximately) /*!40000 ALTER TABLE `ppi_likelihoods_ppi` DISABLE KEYS */; /*!40000 ALTER TABLE `ppi_likelihoods_ppi` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ppi_scores + +-- Dumping structure for table mifostenant-reference.ppi_scores DROP TABLE IF EXISTS `ppi_scores`; CREATE TABLE IF NOT EXISTS `ppi_scores` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5799,7 +5972,7 @@ CREATE TABLE IF NOT EXISTS `ppi_scores` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=21 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ppi_scores: ~20 rows (approximately) +-- Dumping data for table mifostenant-reference.ppi_scores: ~20 rows (approximately) /*!40000 ALTER TABLE `ppi_scores` DISABLE KEYS */; INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (1, 0, 4), @@ -5824,7 +5997,8 @@ INSERT INTO `ppi_scores` (`id`, `score_from`, `score_to`) VALUES (20, 95, 100); /*!40000 ALTER TABLE `ppi_scores` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.ref_loan_transaction_processing_strategy + +-- Dumping structure for table mifostenant-reference.ref_loan_transaction_processing_strategy DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`; CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -5835,7 +6009,7 @@ CREATE TABLE IF NOT EXISTS `ref_loan_transaction_processing_strategy` ( UNIQUE KEY `ltp_strategy_code` (`code`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.ref_loan_transaction_processing_strategy: ~7 rows (approximately) +-- Dumping data for table mifostenant-reference.ref_loan_transaction_processing_strategy: ~7 rows (approximately) /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` DISABLE KEYS */; INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `sort_order`) VALUES (1, 'mifos-standard-strategy', 'Penalties, Fees, Interest, Principal order', 1), @@ -5847,18 +6021,20 @@ INSERT INTO `ref_loan_transaction_processing_strategy` (`id`, `code`, `name`, `s (7, 'early-repayment-strategy', 'Early Repayment Strategy', 5); /*!40000 ALTER TABLE `ref_loan_transaction_processing_strategy` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.rpt_sequence + +-- Dumping structure for table mifostenant-reference.rpt_sequence DROP TABLE IF EXISTS `rpt_sequence`; CREATE TABLE IF NOT EXISTS `rpt_sequence` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.rpt_sequence: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.rpt_sequence: ~0 rows (approximately) /*!40000 ALTER TABLE `rpt_sequence` DISABLE KEYS */; /*!40000 ALTER TABLE `rpt_sequence` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.r_enum_value + +-- Dumping structure for table mifostenant-reference.r_enum_value DROP TABLE IF EXISTS `r_enum_value`; CREATE TABLE IF NOT EXISTS `r_enum_value` ( `enum_name` varchar(100) NOT NULL, @@ -5871,7 +6047,7 @@ CREATE TABLE IF NOT EXISTS `r_enum_value` ( UNIQUE KEY `enum_value` (`enum_name`,`enum_value`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.r_enum_value: ~160 rows (approximately) +-- Dumping data for table mifostenant-reference.r_enum_value: ~159 rows (approximately) /*!40000 ALTER TABLE `r_enum_value` DISABLE KEYS */; INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`, `enum_type`) VALUES ('account_type_type_enum', 0, 'INVALID', 'INVALID', 0), @@ -5982,7 +6158,6 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('loan_transaction_type_enum', 17, 'CHARGE_PAYMENT', 'CHARGE_PAYMENT', 0), ('loan_transaction_type_enum', 18, 'REFUND_FOR_ACTIVE_LOAN', 'REFUND_FOR_ACTIVE_LOAN', 0), ('loan_transaction_type_enum', 19, 'INCOME_POSTING', 'INCOME_POSTING', 0), - ('loan_type_enum', -1, 'All', 'All', 0), ('loan_type_enum', 1, 'Individual Loan', 'Individual Loan', 0), ('loan_type_enum', 2, 'Group Loan', 'Group Loan', 0), ('portfolio_account_type_enum', 1, 'LOAN', 'LOAN', 0), @@ -6036,7 +6211,8 @@ INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `en ('transaction_type_enum', 11, 'Apply Interest', 'Apply Interest', 0); /*!40000 ALTER TABLE `r_enum_value` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.scheduler_detail + +-- Dumping structure for table mifostenant-reference.scheduler_detail DROP TABLE IF EXISTS `scheduler_detail`; CREATE TABLE IF NOT EXISTS `scheduler_detail` ( `id` smallint(2) NOT NULL AUTO_INCREMENT, @@ -6046,13 +6222,14 @@ CREATE TABLE IF NOT EXISTS `scheduler_detail` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.scheduler_detail: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.scheduler_detail: ~0 rows (approximately) /*!40000 ALTER TABLE `scheduler_detail` DISABLE KEYS */; INSERT INTO `scheduler_detail` (`id`, `is_suspended`, `execute_misfired_jobs`, `reset_scheduler_on_bootup`) VALUES (1, 0, 1, 1); /*!40000 ALTER TABLE `scheduler_detail` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.schema_version + +-- Dumping structure for table mifostenant-reference.schema_version DROP TABLE IF EXISTS `schema_version`; CREATE TABLE IF NOT EXISTS `schema_version` ( `version_rank` int(11) NOT NULL, @@ -6072,7 +6249,7 @@ CREATE TABLE IF NOT EXISTS `schema_version` ( KEY `schema_version_s_idx` (`success`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; --- Dumping data for table mifostenant-sampledata.schema_version: ~330 rows (approximately) +-- Dumping data for table mifostenant-reference.schema_version: ~336 rows (approximately) /*!40000 ALTER TABLE `schema_version` DISABLE KEYS */; INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `description`, `type`, `script`, `checksum`, `installed_by`, `installed_on`, `execution_time`, `success`) VALUES (1, 1, '1', 'mifosplatform-core-ddl-latest', 'SQL', 'V1__mifosplatform-core-ddl-latest.sql', -1957145051, 'root', '2014-03-08 02:28:38', 10710, 1), @@ -6306,37 +6483,37 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (306, 306, '293', 'interest rate chart support for amounts', 'SQL', 'V293__interest_rate_chart_support_for_amounts.sql', -1134261995, 'root', '2016-03-09 21:33:17', 2182, 1), (307, 307, '294', 'configuration for paymnettype application forDisbursement charge', 'SQL', 'V294__configuration_for_paymnettype_application_forDisbursement_charge.sql', -1369433752, 'root', '2016-03-09 21:33:17', 34, 1), (308, 308, '295', 'configuration for interest charged date same as disbursal date', 'SQL', 'V295__configuration_for_interest_charged_date_same_as_disbursal_date.sql', 772901568, 'root', '2016-03-23 15:15:05', 58, 1), - (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', 1675224847, 'root', '2016-04-13 20:19:15', 25, 1), - (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -173690634, 'root', '2016-04-13 20:19:15', 145, 1), - (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', 1441298172, 'root', '2016-04-13 20:19:17', 1491, 1), - (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', -985543868, 'root', '2016-04-13 20:19:18', 1249, 1), + (309, 309, '296', 'skip repayment on first-day of month', 'SQL', 'V296__skip_repayment_on first-day_of_month.sql', -172630113, 'root', '2016-11-18 17:27:21', 68, 1), + (310, 310, '297', 'Adding Meeting Time column', 'SQL', 'V297__Adding_Meeting_Time_column.sql', -637673654, 'root', '2016-11-18 17:27:21', 676, 1), + (311, 311, '298', 'savings interest tax', 'SQL', 'V298__savings_interest_tax.sql', -1023309693, 'root', '2016-11-18 17:27:26', 4553, 1), + (312, 312, '299', 'share products', 'SQL', 'V299__share_products.sql', 1270845438, 'root', '2016-11-18 17:27:31', 5174, 1), (3, 3, '3', 'mifosx-permissions-and-authorisation-utf8', 'SQL', 'V3__mifosx-permissions-and-authorisation-utf8.sql', 1922951887, 'root', '2014-03-08 02:28:38', 110, 1), (30, 30, '30', 'add-referenceNumber-to-acc gl journal entry', 'SQL', 'V30__add-referenceNumber-to-acc_gl_journal_entry.sql', 2079970797, 'root', '2014-03-08 02:28:55', 327, 1), - (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -244138054, 'root', '2016-05-04 20:40:46', 198, 1), - (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', -484783519, 'root', '2016-05-04 20:40:47', 713, 1), - (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 696724338, 'root', '2016-05-04 20:40:48', 246, 1), - (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', 2066326069, 'root', '2016-05-04 20:40:48', 372, 1), - (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', 1313975379, 'root', '2016-05-04 20:40:48', 136, 1), - (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', -2096038246, 'root', '2016-05-04 20:40:50', 1220, 1), - (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -321983911, 'root', '2016-05-13 15:34:20', 22, 1), - (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1464801706, 'root', '2016-06-13 19:21:30', 200, 1), - (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1740162209, 'root', '2016-06-13 19:21:30', 317, 1), - (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', -630554147, 'root', '2016-06-13 19:21:31', 360, 1), + (313, 313, '300', 'configuration for allow changing of emi amount', 'SQL', 'V300__configuration_for_allow_changing_of_emi_amount.sql', -490331317, 'root', '2016-11-18 17:27:32', 885, 1), + (314, 314, '301', 'recurring moratorium principal periods', 'SQL', 'V301__recurring_moratorium_principal_periods.sql', 816871436, 'root', '2016-11-18 17:27:35', 2015, 1), + (315, 315, '302', 'add status to client identifier', 'SQL', 'V302__add_status_to_client_identifier.sql', 1978862509, 'root', '2016-11-18 17:27:35', 791, 1), + (316, 316, '303', 'Savings Account Dormancy', 'SQL', 'V303__Savings_Account_Dormancy.sql', -533139714, 'root', '2016-11-18 17:27:37', 1317, 1), + (317, 317, '304', 'customer self service third party transfers', 'SQL', 'V304__customer_self_service_third_party_transfers.sql', -341614071, 'root', '2016-11-18 17:27:37', 400, 1), + (318, 318, '305', 'compounding and rest frequency nth day freq and insertion script for accrual job', 'SQL', 'V305__compounding_and_rest_frequency_nth_day_freq_and_insertion_script_for_accrual_job.sql', 710584648, 'root', '2016-11-18 17:27:42', 4304, 1), + (319, 319, '306', 'add domancy tracking job to savings group', 'SQL', 'V306__add_domancy_tracking_job_to_savings_group.sql', -2998873, 'root', '2016-11-18 17:27:42', 26, 1), + (320, 320, '307', 'add share notes', 'SQL', 'V307__add_share_notes.sql', -1950926410, 'root', '2016-11-18 17:27:43', 654, 1), + (321, 321, '308', 'add interest recalculation in savings account', 'SQL', 'V308__add_interest_recalculation_in_savings_account.sql', 1869901088, 'root', '2016-11-18 17:27:44', 671, 1), + (322, 322, '309', 'add loan write off reason code', 'SQL', 'V309__add_loan_write_off_reason_code.sql', 1221434865, 'root', '2016-11-18 17:27:45', 1647, 1), (31, 31, '31', 'drop-autopostings', 'SQL', 'V31__drop-autopostings.sql', 630501407, 'root', '2014-03-08 02:28:55', 39, 1), - (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', -906927086, 'root', '2016-06-13 19:21:31', 0, 1), - (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 285313879, 'root', '2016-06-13 19:21:31', 300, 1), - (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-08-16 17:14:24', 266, 1), - (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-08-16 17:14:25', 1135, 1), - (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-08-16 17:14:25', 119, 1), - (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-08-16 17:14:26', 177, 1), - (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-08-16 17:14:26', 341, 1), - (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-08-16 17:14:27', 460, 1), - (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-08-16 17:14:28', 732, 1), - (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-08-16 17:14:28', 232, 1), + (323, 323, '310', 'copy data from entitytoentityaccess to entitytoentitymapping', 'SQL', 'V310__copy_data_from_entitytoentityaccess_to_entitytoentitymapping.sql', 1179078728, 'root', '2016-11-18 17:27:45', 7, 1), + (324, 324, '311', 'foreclosure details', 'SQL', 'V311__foreclosure_details.sql', 1236003234, 'root', '2016-11-18 17:27:47', 1056, 1), + (325, 325, '312', 'add is mandatory to code value', 'SQL', 'V312__add_is_mandatory_to_code_value.sql', -1943949742, 'root', '2016-11-18 17:27:47', 686, 1), + (326, 326, '313', 'multi rescheduling script', 'SQL', 'V313__multi_rescheduling_script.sql', -1003845274, 'root', '2016-11-18 17:27:51', 3280, 1), + (327, 327, '314', 'updating r enum table', 'SQL', 'V314__updating_r_enum_table.sql', 780881263, 'root', '2016-11-18 17:27:51', 116, 1), + (328, 328, '315', 'add sync expected with disbursement date in m product loan', 'SQL', 'V315__add_sync_expected_with_disbursement_date_in_m_product_loan.sql', 553617808, 'root', '2016-11-18 17:27:52', 992, 1), + (329, 329, '316', 'address module tables metadat', 'SQL', 'V316__address_module_tables_metadat.sql', -776128404, 'root', '2016-11-18 17:27:53', 1185, 1), + (330, 330, '317', 'report mailing job module', 'SQL', 'V317__report_mailing_job_module.sql', -1917516805, 'root', '2016-11-18 17:27:55', 1028, 1), + (331, 331, '318', 'topuploan', 'SQL', 'V318__topuploan.sql', 590465441, 'root', '2016-11-18 17:27:57', 2091, 1), + (332, 332, '319', 'client undoreject', 'SQL', 'V319__client_undoreject.sql', -1615618857, 'root', '2016-11-18 17:27:58', 1431, 1), (32, 32, '32', 'associate-disassociate-clients-from-group-permissions', 'SQL', 'V32__associate-disassociate-clients-from-group-permissions.sql', 765311507, 'root', '2014-03-08 02:28:55', 29, 1), - (333, 334, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-14 20:20:30', 245, 1), - (334, 335, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-14 20:20:30', 153, 1), - (335, 336, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1983831355, 'root', '2016-11-14 20:20:31', 504, 1), + (333, 333, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-18 17:27:59', 421, 1), + (334, 334, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-18 17:28:00', 648, 1), + (335, 335, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1316831815, 'root', '2016-11-18 17:28:01', 1439, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1989718961, 'root', '2014-03-08 02:28:56', 254, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2014-03-08 02:28:57', 300, 1), @@ -6357,7 +6534,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', 170618680, 'root', '2014-03-08 02:29:03', 176, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1171300485, 'root', '2014-03-08 02:28:39', 636, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', 188244658, 'root', '2014-03-08 02:29:05', 926, 1), - (336, 333, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-09-29 11:48:41', 69, 1), + (336, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:28:01', 54, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 2012793946, 'root', '2014-03-08 02:29:05', 602, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 961668575, 'root', '2014-03-08 02:29:06', 501, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', -230737076, 'root', '2014-03-08 02:29:06', 212, 1), @@ -6413,7 +6590,8 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (99, 99, '98', 'added currency roundof for multipleof', 'SQL', 'V98__added_currency_roundof_for_multipleof.sql', -131804848, 'root', '2014-03-08 02:29:23', 1440, 1); /*!40000 ALTER TABLE `schema_version` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.sms_campaign + +-- Dumping structure for table mifostenant-reference.sms_campaign DROP TABLE IF EXISTS `sms_campaign`; CREATE TABLE IF NOT EXISTS `sms_campaign` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6441,11 +6619,12 @@ CREATE TABLE IF NOT EXISTS `sms_campaign` ( CONSTRAINT `sms_campaign_ibfk_1` FOREIGN KEY (`report_id`) REFERENCES `stretchy_report` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.sms_campaign: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.sms_campaign: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_campaign` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_campaign` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.sms_messages_outbound + +-- Dumping structure for table mifostenant-reference.sms_messages_outbound DROP TABLE IF EXISTS `sms_messages_outbound`; CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, @@ -6456,7 +6635,7 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( `mobile_no` varchar(50) NOT NULL, `message` varchar(1000) NOT NULL, `campaign_id` bigint(20) NOT NULL, - `external_id` bigint(20) DEFAULT NULL, + `external_id` varchar(100) DEFAULT NULL, `submittedon_date` date DEFAULT NULL, `delivered_on_date` datetime DEFAULT NULL, PRIMARY KEY (`id`), @@ -6470,11 +6649,12 @@ CREATE TABLE IF NOT EXISTS `sms_messages_outbound` ( CONSTRAINT `FKSTAFF000000001` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.sms_messages_outbound: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.sms_messages_outbound: ~0 rows (approximately) /*!40000 ALTER TABLE `sms_messages_outbound` DISABLE KEYS */; /*!40000 ALTER TABLE `sms_messages_outbound` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_parameter + +-- Dumping structure for table mifostenant-reference.stretchy_parameter DROP TABLE IF EXISTS `stretchy_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6495,7 +6675,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_parameter` ( CONSTRAINT `fk_stretchy_parameter_001` FOREIGN KEY (`parent_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1026 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_parameter: ~35 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_parameter: ~35 rows (approximately) /*!40000 ALTER TABLE `stretchy_parameter` DISABLE KEYS */; INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, `parameter_label`, `parameter_displayType`, `parameter_FormatType`, `parameter_default`, `special`, `selectOne`, `selectAll`, `parameter_sql`, `parent_id`) VALUES (1, 'startDateSelect', 'startDate', 'startDate', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), @@ -6518,24 +6698,25 @@ INSERT INTO `stretchy_parameter` (`id`, `parameter_name`, `parameter_variable`, (1008, 'SelectGLAccountNO', 'GLAccountNO', 'GLAccountNO', 'select', 'number', '0', NULL, NULL, NULL, 'select id aid,name aname\r\nfrom acc_gl_account', NULL), (1009, 'asOnDate', 'asOn', 'As On', 'date', 'date', 'today', NULL, NULL, NULL, NULL, NULL), (1010, 'SavingsAccountSubStatus', 'subStatus', 'SavingsAccountDormancyStatus', 'select', 'number', '100', NULL, NULL, NULL, 'select * from\r\n(select 100 as id, "Inactive" as name union all\r\nselect 200 as id, "Dormant" as name union all \r\nselect 300 as id, "Escheat" as name) x\r\norder by x.`id`', NULL), - (1011, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), - (1012, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1011), - (1013, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL), - (1014, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1015, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1016, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1017, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1018, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1019, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), - (1020, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), - (1021, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), - (1022, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), - (1023, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), - (1024, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), - (1025, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5); + (1011, 'cycleXSelect', 'cycleX', 'Cycle X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1012, 'cycleYSelect', 'cycleY', 'Cycle Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1013, 'fromXSelect', 'fromX', 'From X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1014, 'toYSelect', 'toY', 'To Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1015, 'overdueXSelect', 'overdueX', 'Overdue X Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1016, 'overdueYSelect', 'overdueY', 'Overdue Y Number', 'text', 'number', 'n/a', NULL, NULL, NULL, NULL, NULL), + (1017, 'DefaultLoan', 'loanId', 'Loan', 'none', 'number', '-1', NULL, NULL, 'Y', 'select ml.id \nfrom m_loan ml \nleft join m_client mc on mc.id = ml.client_id \nleft join m_office mo on mo.id = mc.office_id \nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1018, 'DefaultClient', 'clientId', 'Client', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mc.id \nfrom m_client mc\n left join m_office on mc.office_id = mo.id\n where mo.id = ${officeId} or ${officeId} = -1', 5), + (1019, 'DefaultGroup', 'groupId', 'Group', 'none', 'number', '-1', NULL, NULL, 'Y', 'select mg.id \nfrom m_group mg\nleft join m_office mo on mg.office_id = mo.id\nwhere mo.id = ${officeId} or ${officeId} = -1', 5), + (1020, 'SelectLoanType', 'loanType', 'Loan Type', 'select', 'number', '-1', NULL, NULL, 'Y', 'select\nenum_id as id,\nenum_value as value\nfrom r_enum_value\nwhere enum_name = \'loan_type_enum\'', NULL), + (1021, 'DefaultSavings', 'savingsId', 'Savings', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1022, 'DefaultSavingsTransactionId', 'savingsTransactionId', 'Savings Transaction', 'none', 'number', '-1', NULL, NULL, 'Y', NULL, 5), + (1023, 'tellerIdSelectOne', 'tellerId', 'Teller', 'select', 'number', '0', NULL, 'Y', 'N', 'select id, name from m_tellers where office_id = ${officeId}', 5), + (1024, 'cashierIdSelectOne', 'cashierId', 'Cashier', 'select', 'number', '0', NULL, 'Y', 'N', 'select c.id, s.display_name from m_cashiers as c left join m_staff as s on c.staff_id = s.id where c.teller_id = ${tellerId}', 1023), + (1025, 'currencyCodeSelectOne', 'currencyCode', 'Currency', 'select', 'string', '0', NULL, 'Y', 'N', 'select `code`, `name` from m_organisation_currency order by `code`', NULL); /*!40000 ALTER TABLE `stretchy_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report + +-- Dumping structure for table mifostenant-reference.stretchy_report DROP TABLE IF EXISTS `stretchy_report`; CREATE TABLE IF NOT EXISTS `stretchy_report` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6551,7 +6732,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report` ( UNIQUE KEY `report_name_UNIQUE` (`report_name`) ) ENGINE=InnoDB AUTO_INCREMENT=189 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report: ~107 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report: ~116 rows (approximately) /*!40000 ALTER TABLE `stretchy_report` DISABLE KEYS */; INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subtype`, `report_category`, `report_sql`, `description`, `core_report`, `use_report`) VALUES (1, 'Client Listing', 'Table', NULL, 'Client', 'select \nconcat(repeat("..", \n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\n c.account_no as "Client Account No.", \nc.display_name as "Name", \nr.enum_message_property as "Status",\nc.activation_date as "Activation", c.external_id as "External Id"\nfrom m_office o \njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\njoin m_client c on c.office_id = ounder.id\nleft join r_enum_value r on r.enum_name = \'status_enum\' and r.enum_id = c.status_enum\nwhere o.id = ${officeId}\norder by ounder.hierarchy, c.account_no', 'Individual Client Report\r\n\r\nLists the small number of defined fields on the client table. Would expect to copy this \n\nreport and add any \'one to one\' additional data for specific tenant needs.\r\n\r\nCan be run for any size MFI but you\'d expect it only to be run within a branch for \n\nlarger ones. Depending on how many columns are displayed, there is probably is a limit of about 20/50k clients returned for html display (export to excel doesn\'t \n\nhave that client browser/memory impact).', 1, 1), @@ -6647,32 +6828,33 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1), - (167, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), - (168, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), - (169, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan', 0, 1), - (170, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between X and Y days', 0, 1), - (171, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between X and Y days', 0, 1), - (172, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), - (173, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), - (174, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between X to Y days for clients in arrears between X and Y days', 0, 1), - (175, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Active (on-time)', 0, 1), - (176, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last X to Y days for any loan with the status Overdue (arrears) between X and Y days', 0, 1), - (177, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND c.date_of_birth = CURDATE()\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), - (178, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id = 600 OR l.loan_status_id = 700)\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last X to Y days', 0, 1), - (179, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between X to Y days after the final instalment date on their loan schedule', 0, 1), - (180, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), - (181, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), - (182, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), - (183, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), - (184, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), - (185, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), - (186, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), - (187, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), - (188, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1); + (166, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), + (167, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), + (168, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan between cycleX and cycleY days', 0, 1), + (169, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between fromX and toY days', 0, 1), + (170, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${officeId}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between fromX and toY days', 0, 1), + (171, 'Dormant Prospects', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\no.id AS "officeNumber", \r\nTIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) AS "dormant"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL AND (TIMESTAMPDIFF(MONTH, c.activation_date, CURDATE()) > 3)\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All individuals who have not yet received a loan but were also entered into the system more than 3 months', 0, 1), + (172, 'Active group leaders', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_group g ON g.office_id = ounder.id\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN m_group_client gc ON gc.group_id = g.id AND gc.client_id = c.id\r\nLEFT JOIN m_group_roles gr ON gr.group_id = g.id AND gr.client_id = c.id\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_code_value cv ON cv.id = gr.role_cv_id\r\nLEFT JOIN m_code code ON code.id = cv.code_id\r\nWHERE o.id = ${officeId} AND g.status_enum = 300 AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND code.code_name = \'GROUPROLE\' AND cv.code_value = \'Leader\'\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All active group chairmen', 0, 1), + (173, 'Loan payments due (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_loan_repayment_schedule ls ON ls.loan_id = ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) \r\nAND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY})\r\nAND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Loan Payments Due between fromX to toY days for clients in arrears between overdueX and overdueY days', 0, 1), + (174, 'Loan payments received (Active Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2 AND laa.loan_id IS NULL\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last fromX to toY days for any loan with the status Active (on-time)', 0, 1), + (175, 'Loan payments received (Overdue Loans)', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nml.id AS "loanId", \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountNumber",\r\nSUM(lt.amount) AS "repaymentAmount"\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nINNER JOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nINNER JOIN m_appuser au ON au.id = lt.appuser_id\r\nLEFT JOIN m_payment_detail mpd ON mpd.id=lt.payment_detail_id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), lt.transaction_date) BETWEEN ${fromX} AND ${toY}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${overdueX} AND ${overdueY}) AND lt.is_reversed=0 AND lt.transaction_type_enum=2\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'Payments received in the last fromX to toY days for any loan with the status Overdue (arrears) between overdueX and overdueY days', 0, 1), + (176, 'Happy Birthday', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber", \r\nc.date_of_birth AS "dateOfBirth",\r\nIF(c.date_of_birth IS NULL, 0, CEIL(DATEDIFF (NOW(), c.date_of_birth)/365)) AS "age"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_staff ms ON ms.id = c.staff_id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND c.date_of_birth IS NOT NULL AND (DAY(c.date_of_birth)=DAY(NOW())) AND (MONTH(c.date_of_birth)=MONTH(NOW()))\r\nORDER BY ounder.hierarchy, c.account_no', 'This sends a message to all clients with the status Active on their Birthday', 0, 1), + (177, 'Loan fully repaid', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\no.id AS "officeNumber",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\nls.duedate AS "dueDate",\r\nlaa.total_overdue_derived AS "totalDue",\r\ngp.display_name AS "groupName",\r\nl.total_repayment_derived AS "totalFullyPaid"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND \r\n(DATEDIFF(CURDATE(), l.closedon_date) BETWEEN ${fromX} AND ${toY})\r\n AND (l.loan_status_id IN (600, 700))\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All loans that have been fully repaid (Closed or Overpaid) in the last fromX to toY days', 0, 1), + (178, 'Loan outstanding after final instalment date', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\no.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_loan_arrears_aging laa ON laa.loan_id = l.id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND l.expected_maturedon_date < CURDATE() \r\nAND (DATEDIFF(CURDATE(), l.expected_maturedon_date) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All active loans (with an outstanding balance) between fromX to toY days after the final instalment date on their loan schedule', 0, 1), + (179, 'Loan Repayment', 'SMS', 'Triggered', NULL, 'select ml.id as loanId,mc.id, mc.firstname, ifnull(mc.middlename,\'\') as middlename, mc.lastname, mc.display_name as FullName, mobile_no as mobileNo, mc.group_name as GroupName, round(ml.principal_amount, ml.currency_digits) as LoanAmount, round(ml.`total_outstanding_derived`, ml.currency_digits) as LoanOutstanding,\nml.`account_no` as LoanAccountId, round(mlt.amountPaid, ml.currency_digits) as repaymentAmount\nFROM m_office mo\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\nAND ounder.hierarchy like CONCAT(\'.\', \'%\')\nLEFT JOIN (\n select \n ml.id as loanId, \n ifnull(mc.id,mc2.id) as id, \n ifnull(mc.firstname,mc2.firstname) as firstname, \n ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, \n ifnull(mc.lastname,mc2.lastname) as lastname, \n ifnull(mc.display_name,mc2.display_name) as display_name, \n ifnull(mc.status_enum,mc2.status_enum) as status_enum,\n ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no,\n ifnull(mg.office_id,mc2.office_id) as office_id,\n ifnull(mg.staff_id,mc2.staff_id) as staff_id,\n mg.id as group_id, \nmg.display_name as group_name\n from\n m_loan ml\n left join m_group mg on mg.id = ml.group_id\n left join m_group_client mgc on mgc.group_id = mg.id\n left join m_client mc on mc.id = mgc.client_id\n left join m_client mc2 on mc2.id = ml.client_id\n order by loanId\n ) mc on mc.office_id = ounder.id\nright join m_loan as ml on mc.loanId = ml.id\nright join(\nselect mlt.amount as amountPaid,mlt.id,mlt.loan_id\nfrom m_loan_transaction mlt\nwhere mlt.is_reversed = 0 \ngroup by mlt.loan_id\n) as mlt on mlt.loan_id = ml.id\nright join m_loan_repayment_schedule as mls1 on ml.id = mls1.loan_id and mls1.`completed_derived` = 0\nand mls1.installment = (SELECT MIN(installment) from m_loan_repayment_schedule where loan_id = ml.id and duedate <= CURDATE() and completed_derived=0)\nwhere mc.status_enum = 300 and mobile_no is not null and ml.`loan_status_id` = 300\nand (mo.id = ${officeId} or ${officeId} = -1)\nand (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)\nand (ml.loan_type_enum = ${loanType} or ${loanType} = -1)\nand ml.id in (select mla.loan_id from m_loan_arrears_aging mla)\ngroup by ml.id', 'Loan Repayment', 0, 0), + (180, 'Loan Approved', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1)and (ml.id = ${loanId} or ${loanId} = -1)and (mc.id = ${clientId} or ${clientId} = -1)and (mc.group_id = ${groupId} or ${groupId} = -1)and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of approved loan', 0, 0), + (181, 'Loan Rejected', 'SMS', 'Triggered', NULL, 'SELECT mc.id, mc.firstname, mc.middlename as middlename, mc.lastname, mc.display_name as FullName, mc.mobile_no as mobileNo, mc.group_name as GroupName, mo.name as officename, ml.id as loanId, ml.account_no as accountnumber, ml.principal_amount_proposed as loanamount, ml.annual_nominal_interest_rate as annualinterestrate FROM m_office mo JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy like CONCAT(\'.\', \'%\') LEFT JOIN ( select ml.id as loanId, ifnull(mc.id,mc2.id) as id, ifnull(mc.firstname,mc2.firstname) as firstname, ifnull(mc.middlename,ifnull(mc2.middlename,(\'\'))) as middlename, ifnull(mc.lastname,mc2.lastname) as lastname, ifnull(mc.display_name,mc2.display_name) as display_name, ifnull(mc.status_enum,mc2.status_enum) as status_enum, ifnull(mc.mobile_no,mc2.mobile_no) as mobile_no, ifnull(mg.office_id,mc2.office_id) as office_id, ifnull(mg.staff_id,mc2.staff_id) as staff_id, mg.id as group_id, mg.display_name as group_name from m_loan ml left join m_group mg on mg.id = ml.group_id left join m_group_client mgc on mgc.group_id = mg.id left join m_client mc on mc.id = mgc.client_id left join m_client mc2 on mc2.id = ml.client_id order by loanId ) mc on mc.office_id = ounder.id left join m_loan ml on ml.id = mc.loanId WHERE mc.status_enum = 300 and mc.mobile_no is not null and (mo.id = ${officeId} or ${officeId} = -1) and (mc.staff_id = ${loanOfficerId} or ${loanOfficerId} = -1) and (ml.id = ${loanId} or ${loanId} = -1) and (mc.id = ${clientId} or ${clientId} = -1) and (mc.group_id = ${groupId} or ${groupId} = -1) and (ml.loan_type_enum = ${loanType} or ${loanType} = -1)', 'Loan and client data of rejected loan', 0, 0), + (182, 'Client Rejected', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Rejection', 0, 1), + (183, 'Client Activated', 'SMS', 'Triggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.id = ${clientId} AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})', 'Client Activation', 0, 1), + (184, 'Savings Rejected', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Rejected', 0, 1), + (185, 'Savings Activated', 'SMS', 'Triggered', 'Savings', 'SELECT \r\nc.id AS "id",\r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo",\r\ns.account_no AS "savingsAccountNo",\r\nounder.id AS "officeNumber",\r\nounder.name AS "officeName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_savings_account s ON s.client_id = c.id\r\nJOIN m_savings_product sp ON sp.id = s.product_id\r\nLEFT JOIN m_staff st ON st.id = s.field_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = s.currency_code\r\nWHERE o.id = ${officeId} AND (IFNULL(s.field_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND s.id = ${savingsId}', 'Savings Activation', 0, 1), + (186, 'Savings Deposit', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS depositAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Deposit', 0, 1), + (187, 'Savings Withdrawal', 'SMS', 'Triggered', NULL, 'SELECT sc.savingsId AS savingsId, sc.id AS clientId, sc.firstname, IFNULL(sc.middlename,\'\') AS middlename, sc.lastname, sc.display_name AS FullName, sc.mobile_no AS mobileNo,\r\nms.`account_no` AS savingsAccountNo, ROUND(mst.amountPaid, ms.currency_digits) AS withdrawAmount, ms.account_balance_derived AS balance, \r\nmst.transactionDate AS transactionDate\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\') AND ounder.hierarchy LIKE CONCAT(\'.\', \'%\')\r\nLEFT JOIN (\r\nSELECT \r\n sa.id AS savingsId, mc.id AS id, mc.firstname AS firstname, mc.middlename AS middlename, mc.lastname AS lastname, \r\n mc.display_name AS display_name, mc.status_enum AS status_enum, \r\n mc.mobile_no AS mobile_no, mc.office_id AS office_id, \r\n mc.staff_id AS staff_id\r\nFROM\r\nm_savings_account sa\r\nLEFT JOIN m_client mc ON mc.id = sa.client_id\r\nORDER BY savingsId) sc ON sc.office_id = ounder.id\r\nRIGHT JOIN m_savings_account AS ms ON sc.savingsId = ms.id\r\nRIGHT JOIN(\r\nSELECT st.amount AS amountPaid, st.id, st.savings_account_id, st.id AS savingsTransactionId, st.transaction_date AS transactionDate\r\nFROM m_savings_account_transaction st\r\nWHERE st.is_reversed = 0\r\nGROUP BY st.savings_account_id\r\n) AS mst ON mst.savings_account_id = ms.id\r\nWHERE sc.mobile_no IS NOT NULL AND (mo.id = ${officeId} OR ${officeId} = -1) AND (sc.staff_id = ${loanOfficerId} OR ${loanOfficerId} = -1) AND mst.savingsTransactionId = ${savingsTransactionId}', 'Savings Withdrawal', 0, 1), + (188, 'Daily Teller Cash Report (Pentaho)', 'Pentaho', NULL, NULL, NULL, 'Daily Teller Cash Report', 1, 1); /*!40000 ALTER TABLE `stretchy_report` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.stretchy_report_parameter + +-- Dumping structure for table mifostenant-reference.stretchy_report_parameter DROP TABLE IF EXISTS `stretchy_report_parameter`; CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( `id` int(11) NOT NULL AUTO_INCREMENT, @@ -6687,7 +6869,7 @@ CREATE TABLE IF NOT EXISTS `stretchy_report_parameter` ( CONSTRAINT `fk_report_parameter_002` FOREIGN KEY (`parameter_id`) REFERENCES `stretchy_parameter` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=527 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.stretchy_report_parameter: ~439 rows (approximately) +-- Dumping data for table mifostenant-reference.stretchy_report_parameter: ~420 rows (approximately) /*!40000 ALTER TABLE `stretchy_report_parameter` DISABLE KEYS */; INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `report_parameter_name`) VALUES (1, 1, 5, NULL), @@ -7027,92 +7209,93 @@ INSERT INTO `stretchy_report_parameter` (`id`, `report_id`, `parameter_id`, `rep (441, 165, 1010, NULL), (442, 165, 5, NULL), (443, 166, 5, 'officeId'), - (444, 166, 1011, 'tellerId'), - (445, 166, 1012, 'cashierId'), - (446, 166, 1013, 'currencyCode'), - (447, 166, 1009, 'asOnDate'), - (448, 167, 5, 'officeId'), - (449, 167, 6, 'loanOfficerId'), - (450, 168, 5, 'officeId'), - (451, 168, 6, 'loanOfficerId'), - (452, 169, 5, 'officeId'), - (453, 169, 6, 'loanOfficerId'), - (454, 169, 1014, 'cycleX'), - (455, 169, 1015, 'cycleY'), - (456, 170, 5, 'officeId'), - (457, 170, 6, 'loanOfficerId'), - (458, 170, 1016, 'fromX'), - (459, 170, 1017, 'toY'), - (460, 171, 5, 'officeId'), - (461, 171, 6, 'loanOfficerId'), - (462, 171, 1016, 'fromX'), - (463, 171, 1017, 'toY'), - (464, 172, 5, 'officeId'), - (465, 172, 6, 'loanOfficerId'), - (466, 173, 5, 'officeId'), - (467, 173, 6, 'loanOfficerId'), - (468, 174, 5, 'officeId'), - (469, 174, 6, 'loanOfficerId'), - (470, 174, 1016, 'fromX'), - (471, 174, 1017, 'toY'), - (472, 174, 1018, 'overdueX'), - (473, 174, 1019, 'overdueY'), - (474, 175, 5, 'officeId'), - (475, 175, 6, 'loanOfficerId'), - (476, 175, 1016, 'fromX'), - (477, 175, 1017, 'toY'), - (478, 176, 5, 'officeId'), - (479, 176, 6, 'loanOfficerId'), - (480, 176, 1016, 'fromX'), - (481, 176, 1017, 'toY'), - (482, 176, 1018, 'overdueX'), - (483, 176, 1019, 'overdueY'), - (484, 177, 5, 'officeId'), - (485, 177, 6, 'loanOfficerId'), - (486, 178, 5, 'officeId'), - (487, 178, 6, 'loanOfficerId'), - (488, 178, 1016, 'fromX'), - (489, 178, 1017, 'toY'), - (490, 179, 5, 'officeId'), - (491, 179, 6, 'loanOfficerId'), - (492, 179, 1016, 'fromX'), - (493, 179, 1017, 'toY'), - (494, 182, 5, 'officeId'), - (495, 181, 5, 'officeId'), - (496, 180, 5, 'officeId'), - (497, 182, 6, 'loanOfficerId'), - (498, 181, 6, 'loanOfficerId'), - (499, 180, 6, 'loanOfficerId'), - (500, 182, 1020, 'loanId'), - (501, 181, 1020, 'loanId'), - (502, 182, 1021, 'clientId'), - (503, 181, 1021, 'clientId'), - (504, 182, 1022, 'groupId'), - (505, 181, 1022, 'groupId'), - (506, 182, 1023, 'loanType'), - (507, 181, 1023, 'loanType'), - (508, 180, 1023, 'loanType'), - (509, 183, 5, 'officeId'), + (444, 166, 6, 'loanOfficerId'), + (445, 167, 5, 'officeId'), + (446, 167, 6, 'loanOfficerId'), + (447, 168, 5, 'officeId'), + (448, 168, 6, 'loanOfficerId'), + (449, 168, 1011, 'cycleX'), + (450, 168, 1012, 'cycleY'), + (451, 169, 5, 'officeId'), + (452, 169, 6, 'loanOfficerId'), + (453, 169, 1013, 'fromX'), + (454, 169, 1014, 'toY'), + (455, 170, 5, 'officeId'), + (456, 170, 6, 'loanOfficerId'), + (457, 170, 1013, 'fromX'), + (458, 170, 1014, 'toY'), + (459, 171, 5, 'officeId'), + (460, 171, 6, 'loanOfficerId'), + (461, 172, 5, 'officeId'), + (462, 172, 6, 'loanOfficerId'), + (463, 173, 5, 'officeId'), + (464, 173, 6, 'loanOfficerId'), + (465, 173, 1013, 'fromX'), + (466, 173, 1014, 'toY'), + (467, 173, 1015, 'overdueX'), + (468, 173, 1016, 'overdueY'), + (469, 174, 5, 'officeId'), + (470, 174, 6, 'loanOfficerId'), + (471, 174, 1013, 'fromX'), + (472, 174, 1014, 'toY'), + (473, 175, 5, 'officeId'), + (474, 175, 6, 'loanOfficerId'), + (475, 175, 1013, 'fromX'), + (476, 175, 1014, 'toY'), + (477, 175, 1015, 'overdueX'), + (478, 175, 1016, 'overdueY'), + (479, 176, 5, 'officeId'), + (480, 176, 6, 'loanOfficerId'), + (481, 177, 5, 'officeId'), + (482, 177, 6, 'loanOfficerId'), + (483, 177, 1013, 'fromX'), + (484, 177, 1014, 'toY'), + (485, 178, 5, 'officeId'), + (486, 178, 6, 'loanOfficerId'), + (487, 178, 1013, 'fromX'), + (488, 178, 1014, 'toY'), + (489, 181, 5, 'officeId'), + (490, 180, 5, 'officeId'), + (491, 179, 5, 'officeId'), + (492, 181, 6, 'loanOfficerId'), + (493, 180, 6, 'loanOfficerId'), + (494, 179, 6, 'loanOfficerId'), + (495, 181, 1017, 'loanId'), + (496, 180, 1017, 'loanId'), + (497, 181, 1018, 'clientId'), + (498, 180, 1018, 'clientId'), + (499, 181, 1019, 'groupId'), + (500, 180, 1019, 'groupId'), + (501, 181, 1020, 'loanType'), + (502, 180, 1020, 'loanType'), + (503, 179, 1020, 'loanType'), + (504, 182, 5, 'officeId'), + (505, 183, 5, 'officeId'), + (506, 182, 6, 'loanOfficerId'), + (507, 183, 6, 'loanOfficerId'), + (508, 182, 1018, 'clientId'), + (509, 183, 1018, 'clientId'), (510, 184, 5, 'officeId'), - (511, 183, 6, 'loanOfficerId'), - (512, 184, 6, 'loanOfficerId'), - (513, 183, 1021, 'clientId'), - (514, 184, 1021, 'clientId'), - (515, 185, 5, 'officeId'), - (516, 185, 6, 'loanOfficerId'), - (517, 185, 1024, 'savingsId'), - (518, 186, 5, 'officeId'), - (519, 186, 6, 'loanOfficerId'), - (520, 186, 1024, 'savingsId'), - (521, 187, 5, 'officeId'), - (522, 187, 6, 'loanOfficerId'), - (523, 187, 1025, 'savingsTransactionId'), - (524, 188, 5, 'officeId'), - (525, 188, 6, 'loanOfficerId'), - (526, 188, 1025, 'savingsTransactionId'); + (511, 184, 6, 'loanOfficerId'), + (512, 184, 1021, 'savingsId'), + (513, 185, 5, 'officeId'), + (514, 185, 6, 'loanOfficerId'), + (515, 185, 1021, 'savingsId'), + (516, 186, 5, 'officeId'), + (517, 186, 6, 'loanOfficerId'), + (518, 186, 1022, 'savingsTransactionId'), + (519, 187, 5, 'officeId'), + (520, 187, 6, 'loanOfficerId'), + (521, 187, 1022, 'savingsTransactionId'), + (522, 188, 5, 'officeId'), + (523, 188, 1023, 'tellerId'), + (524, 188, 1024, 'cashierId'), + (525, 188, 1025, 'currencyCode'), + (526, 188, 1009, 'asOnDate'); /*!40000 ALTER TABLE `stretchy_report_parameter` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_registered_table + +-- Dumping structure for table mifostenant-reference.x_registered_table DROP TABLE IF EXISTS `x_registered_table`; CREATE TABLE IF NOT EXISTS `x_registered_table` ( `registered_table_name` varchar(50) NOT NULL, @@ -7121,11 +7304,12 @@ CREATE TABLE IF NOT EXISTS `x_registered_table` ( PRIMARY KEY (`registered_table_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_registered_table: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_registered_table: ~0 rows (approximately) /*!40000 ALTER TABLE `x_registered_table` DISABLE KEYS */; /*!40000 ALTER TABLE `x_registered_table` ENABLE KEYS */; --- Dumping structure for table mifostenant-sampledata.x_table_column_code_mappings + +-- Dumping structure for table mifostenant-reference.x_table_column_code_mappings DROP TABLE IF EXISTS `x_table_column_code_mappings`; CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( `column_alias_name` varchar(50) NOT NULL, @@ -7135,10 +7319,9 @@ CREATE TABLE IF NOT EXISTS `x_table_column_code_mappings` ( CONSTRAINT `FK_x_code_id` FOREIGN KEY (`code_id`) REFERENCES `m_code` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-sampledata.x_table_column_code_mappings: ~0 rows (approximately) +-- Dumping data for table mifostenant-reference.x_table_column_code_mappings: ~0 rows (approximately) /*!40000 ALTER TABLE `x_table_column_code_mappings` DISABLE KEYS */; /*!40000 ALTER TABLE `x_table_column_code_mappings` ENABLE KEYS */; - /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; /*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; From 28d8673737bf972f508fbde8477d2ea73e9a48d2 Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Wed, 14 Dec 2016 10:37:21 +0530 Subject: [PATCH 23/25] Updating change log --- MIFOS-CHANGELOG.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/MIFOS-CHANGELOG.md b/MIFOS-CHANGELOG.md index df57fbbc76f..52e20f18c7a 100644 --- a/MIFOS-CHANGELOG.md +++ b/MIFOS-CHANGELOG.md @@ -3,6 +3,7 @@ Changelog Releases =============== +1. 14 Dec 2016 - 16.12.01.RELEASE 1. 14 Nov 2016 - 16.11.01.RELEASE 1. 22 Sep 2016 - 16.09.01.RELEASE 1. 16 Aug 2016 - 16.08.01.RELEASE @@ -91,6 +92,38 @@ Releases 1. 05 April 2013 - 0.11.1.beta 1. 05 April 2013 - 0.11.0.beta +16.12.01.RELEASE +================ + +This release adds Workflow as a new major feature along with below additional enhancements. + +Platform & API +New Features & Improvements + + - Workflow implementation for clients, loans, savings + - [MIFOSX-2799] - Better E-mail for new user + - [FINERACT-245] - Introduce RAT checks + - [FINERACT-266] - Handling License issues for both source and + binary distributions + - Update the README File + +Bugs + + - [FINERACT-267] - Installment Fee fix on Foreclosure + - [FINERACT-288] - Client's Image Uploaded Not Showing on UI in Amazon S3 + - Fix for resolving scorecards, and replacing dead fk relation + - [FINERACT-260] - Validation need to be added if the client charge is applied before client activation date + +Community-app +New Features & Improvements + + - Workflow UI for clients, loans, savings + - Localisation updates from https://translatewiki.net + + Bugs + + - [MIFOSX-2753] - Improvements in "Add Client Identifier" page + 16.11.01.RELEASE ============= From ca9b7c06d8933ee72beef26a1aaa9ab90c7e6717 Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Wed, 14 Dec 2016 10:56:51 +0530 Subject: [PATCH 24/25] Updating release version --- api-docs/apiLive.htm | 2 +- fineract-provider/gradle.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm index cbb2cbf193d..4f7d65969eb 100644 --- a/api-docs/apiLive.htm +++ b/api-docs/apiLive.htm @@ -90,7 +90,7 @@
- +

Overview

diff --git a/fineract-provider/gradle.properties b/fineract-provider/gradle.properties index ea6d83ce537..e72a8387ebe 100644 --- a/fineract-provider/gradle.properties +++ b/fineract-provider/gradle.properties @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. # -releaseVersion=16.11.01.RELEASE +releaseVersion=16.12.01.RELEASE buildType=BUILD From 82f13ff40b6c45764160b447248c31415a6ade79 Mon Sep 17 00:00:00 2001 From: Nazeer Hussain Shaik Date: Wed, 14 Dec 2016 11:33:05 +0530 Subject: [PATCH 25/25] Updating barebones and sample data for 16.12.01.RELEASE --- .../migrations/sample_data/barebones_db.sql | 71 +++++++------- .../sample_data/load_sample_data.sql | 96 ++++++++++--------- 2 files changed, 90 insertions(+), 77 deletions(-) diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql index bc6b1de9d25..7a85682de09 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/barebones_db.sql @@ -645,32 +645,32 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-default.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-18 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-18 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-11-19 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-11-19 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-19 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-11-19 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-11-19 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-11-19 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-11-19 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-11-19 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-11-19 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-11-19 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-11-19 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:26:49', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:26:55', 3, NULL, NULL, '2016-11-19 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:00', 5, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:13', 5, NULL, NULL, '2016-11-18 17:30:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 3, NULL, NULL, '2016-11-19 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), - (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 2, NULL, NULL, '2016-11-19 05:00:00', 'Send Messages to SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), - (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 1, NULL, NULL, '2016-11-19 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-12-14 22:00:00', 'Update loan SummaryJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-12-15 00:01:00', 'Update Loan Arrears AgeingJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-12-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-12-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2015-06-03 02:56:57', 5, NULL, NULL, '2016-12-14 12:00:00', 'Apply Holidays To LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2015-06-03 02:56:58', 5, NULL, NULL, '2016-12-15 00:00:00', 'Post Interest For SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-12-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, NULL, '2016-12-14 12:00:00', 'Pay Due Savings ChargesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2015-06-03 02:57:00', 5, NULL, NULL, '2016-12-15 00:01:00', 'Update Accounting Running BalancesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-12-15 00:00:00', 'Execute Standing InstructionJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2015-06-03 02:57:04', 3, NULL, NULL, '2016-12-15 00:01:00', 'Add Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 5, NULL, NULL, '2016-12-15 00:00:00', 'Apply penalty to overdue loansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2015-06-03 02:57:04', 6, NULL, NULL, '2016-12-15 00:00:00', 'Update Non Performing AssetsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2015-06-03 02:57:05', 4, NULL, NULL, '2016-12-15 00:02:00', 'Transfer Interest To SavingsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2015-06-03 02:57:05', 5, NULL, NULL, '2016-12-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2015-06-03 02:57:06', 2, NULL, NULL, '2016-12-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2015-06-03 02:57:07', 4, NULL, NULL, '2016-12-15 00:01:00', 'Recalculate Interest For LoansJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-06-03 02:57:12', 5, NULL, NULL, '2016-12-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:53', 5, NULL, NULL, '2016-12-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:26:49', 5, NULL, NULL, '2016-12-15 00:00:00', 'Post Dividends For SharesJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:26:55', 3, NULL, NULL, '2016-12-15 00:00:00', 'Update Savings Dormant AccountsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:00', 5, NULL, NULL, '2016-12-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:13', 5, NULL, '2016-12-14 11:30:00', '2016-12-14 11:45:00', 'Execute Report Mailing JobsJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 3, NULL, NULL, '2016-12-15 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 2, NULL, NULL, '2016-12-15 05:00:00', 'Send Messages to SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:27:19', 1, NULL, NULL, '2016-12-15 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail1 _ DEFAULT', NULL, 1, 0, 1, 4, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -689,10 +689,12 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-default.job_run_history: ~0 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; +INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_time`, `status`, `error_message`, `trigger_type`, `error_log`) VALUES + (1, 23, 1, '2016-12-14 11:30:00', '2016-12-14 11:30:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; @@ -3336,7 +3338,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=768 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-default.m_permission: ~742 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; @@ -4082,7 +4084,10 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (761, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), (762, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), (763, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0), - (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); + (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), + (765, 'datatable', 'READ_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'READ', 0), + (766, 'datatable', 'CREATE_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'CREATE', 0), + (767, 'datatable', 'DELETE_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'DELETE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -5416,7 +5421,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_2` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_3` FOREIGN KEY (`response_id`) REFERENCES `m_survey_responses` (`id`), - CONSTRAINT `m_survey_scorecards_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `m_appusers` (`id`), + CONSTRAINT `m_survey_scorecards_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -5616,7 +5621,7 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-default.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-default.m_working_days: ~0 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); @@ -6257,6 +6262,8 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (333, 333, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-18 17:27:17', 545, 1), (334, 334, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-18 17:27:18', 732, 1), (335, 335, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1316831815, 'root', '2016-11-18 17:27:20', 1561, 1), + (336, 337, '323', 'spm replace dead fk with exisiting one', 'SQL', 'V323__spm_replace_dead_fk_with_exisiting_one.sql', 656055500, 'root', '2016-12-14 11:21:55', 576, 1), + (337, 338, '324', 'datatable checks', 'SQL', 'V324__datatable_checks.sql', -142308095, 'root', '2016-12-14 11:21:55', 676, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -1599579296, 'root', '2015-06-03 15:26:53', 23, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1286928230, 'root', '2015-06-03 15:26:53', 22, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2015-06-03 15:26:54', 49, 1), @@ -6277,7 +6284,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', -1735511516, 'root', '2015-06-03 15:26:54', 24, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1349701479, 'root', '2015-06-03 15:26:51', 122, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', -1807166173, 'root', '2015-06-03 15:26:55', 140, 1), - (336, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:27:20', 145, 1), + (338, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:27:20', 145, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 729891777, 'root', '2015-06-03 15:26:55', 102, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 1853745947, 'root', '2015-06-03 15:26:55', 71, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', 1135041990, 'root', '2015-06-03 15:26:55', 45, 1), diff --git a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql index 0484482debd..704558dcae8 100644 --- a/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql +++ b/fineract-provider/src/main/resources/sql/migrations/sample_data/load_sample_data.sql @@ -722,32 +722,32 @@ CREATE TABLE IF NOT EXISTS `job` ( -- Dumping data for table mifostenant-reference.job: ~26 rows (approximately) /*!40000 ALTER TABLE `job` DISABLE KEYS */; INSERT INTO `job` (`id`, `name`, `display_name`, `cron_expression`, `create_time`, `task_priority`, `group_name`, `previous_run_start_time`, `next_run_time`, `job_key`, `initializing_errorlog`, `is_active`, `currently_running`, `updates_allowed`, `scheduler_group`, `is_misfired`) VALUES - (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-11-18 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-11-19 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-11-18 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-11-19 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-11-19 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-11-19 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-11-19 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-11-19 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-11-19 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-11-19 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-11-19 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-11-19 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-11-19 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-11-19 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-11-19 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-11-19 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:27:31', 5, NULL, NULL, '2016-11-19 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:27:37', 3, NULL, NULL, '2016-11-19 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), - (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:42', 5, NULL, NULL, '2016-11-19 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), - (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:55', 5, NULL, NULL, '2016-11-18 17:30:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), - (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 3, NULL, NULL, '2016-11-19 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), - (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 2, NULL, NULL, '2016-11-19 05:00:00', 'Send Messages to SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), - (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 1, NULL, NULL, '2016-11-19 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0); + (1, 'Update loan Summary', 'Update loan Summary', '0 0 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:30:00', '2016-12-14 22:00:00', 'Update loan SummaryJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (2, 'Update Loan Arrears Ageing', 'Update Loan Arrears Ageing', '0 1 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-12-15 00:01:00', 'Update Loan Arrears AgeingJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (3, 'Update Loan Paid In Advance', 'Update Loan Paid In Advance', '0 5 0 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, NULL, '2016-12-15 00:05:00', 'Update Loan Paid In AdvanceJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (4, 'Apply Annual Fee For Savings', 'Apply Annual Fee For Savings', '0 20 22 1/1 * ? *', '2014-03-07 18:29:14', 5, NULL, '2014-06-11 09:50:00', '2016-12-14 22:20:00', 'Apply Annual Fee For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (5, 'Apply Holidays To Loans', 'Apply Holidays To Loans', '0 0 12 * * ?', '2014-03-07 18:29:14', 5, NULL, '2014-03-24 12:00:04', '2016-12-14 12:00:00', 'Apply Holidays To LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (6, 'Post Interest For Savings', 'Post Interest For Savings', '0 0 0 1/1 * ? *', '2014-03-07 18:29:21', 5, NULL, NULL, '2016-12-15 00:00:00', 'Post Interest For SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (7, 'Transfer Fee For Loans From Savings', 'Transfer Fee For Loans From Savings', '0 1 0 1/1 * ? *', '2014-03-07 18:29:32', 5, NULL, NULL, '2016-12-15 00:01:00', 'Transfer Fee For Loans From SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (8, 'Pay Due Savings Charges', 'Pay Due Savings Charges', '0 0 12 * * ?', '2013-09-23 00:00:00', 5, NULL, '2014-03-24 12:00:04', '2016-12-14 12:00:00', 'Pay Due Savings ChargesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (9, 'Update Accounting Running Balances', 'Update Accounting Running Balances', '0 1 0 1/1 * ? *', '2014-03-07 18:29:37', 5, NULL, NULL, '2016-12-15 00:01:00', 'Update Accounting Running BalancesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (10, 'Execute Standing Instruction', 'Execute Standing Instruction', '0 0 0 1/1 * ? *', '2014-05-01 16:10:35', 5, NULL, NULL, '2016-12-15 00:00:00', 'Execute Standing InstructionJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (11, 'Add Accrual Transactions', 'Add Accrual Transactions', '0 1 0 1/1 * ? *', '2014-05-01 16:10:36', 3, NULL, NULL, '2016-12-15 00:01:00', 'Add Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (12, 'Apply penalty to overdue loans', 'Apply penalty to overdue loans', '0 0 0 1/1 * ? *', '2014-05-01 16:10:36', 5, NULL, NULL, '2016-12-15 00:00:00', 'Apply penalty to overdue loansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (13, 'Update Non Performing Assets', 'Update Non Performing Assets', '0 0 0 1/1 * ? *', '2014-05-01 16:10:41', 6, NULL, NULL, '2016-12-15 00:00:00', 'Update Non Performing AssetsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (14, 'Transfer Interest To Savings', 'Transfer Interest To Savings', '0 2 0 1/1 * ? *', '2014-06-11 09:09:15', 4, NULL, NULL, '2016-12-15 00:02:00', 'Transfer Interest To SavingsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (15, 'Update Deposit Accounts Maturity details', 'Update Deposit Accounts Maturity details', '0 0 0 1/1 * ? *', '2014-06-11 09:09:15', 5, NULL, NULL, '2016-12-15 00:00:00', 'Update Deposit Accounts Maturity detailsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (16, 'Add Periodic Accrual Transactions', 'Add Periodic Accrual Transactions', '0 2 0 1/1 * ? *', '2014-10-14 16:19:45', 2, NULL, NULL, '2016-12-15 00:02:00', 'Add Periodic Accrual TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (17, 'Recalculate Interest For Loans', 'Recalculate Interest For Loans', '0 1 0 1/1 * ? *', '2014-10-14 16:19:55', 4, NULL, NULL, '2016-12-15 00:01:00', 'Recalculate Interest For LoansJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (18, 'Generate Mandatory Savings Schedule', 'Generate Mandatory Savings Schedule', '0 5 0 1/1 * ? *', '2015-04-16 02:28:43', 5, NULL, NULL, '2016-12-15 00:05:00', 'Generate Mandatory Savings ScheduleJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (19, 'Generate Loan Loss Provisioning', 'Generate Loan Loss Provisioning', '0 0 0 1/1 * ? *', '2015-10-20 19:57:58', 5, NULL, NULL, '2016-12-15 00:00:00', 'Generate Loan Loss ProvisioningJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (20, 'Post Dividends For Shares', 'Post Dividends For Shares', '0 0 0 1/1 * ? *', '2016-11-18 17:27:31', 5, NULL, NULL, '2016-12-15 00:00:00', 'Post Dividends For SharesJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (21, 'Update Savings Dormant Accounts', 'Update Savings Dormant Accounts', '0 0 0 1/1 * ? *', '2016-11-18 17:27:37', 3, NULL, NULL, '2016-12-15 00:00:00', 'Update Savings Dormant AccountsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 1, 0), + (22, 'Add Accrual Transactions For Loans With Income Posted As Transactions', 'Add Accrual Transactions For Loans With Income Posted As Transactions', '0 1 0 1/1 * ? *', '2016-11-18 17:27:42', 5, NULL, NULL, '2016-12-15 00:01:00', 'Add Accrual Transactions For Loans With Income Posted As TransactionsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 3, 0), + (23, 'Execute Report Mailing Jobs', 'Execute Report Mailing Jobs', '0 0/15 * * * ?', '2016-11-18 17:27:55', 5, NULL, '2016-12-14 11:30:00', '2016-12-14 11:45:00', 'Execute Report Mailing JobsJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 0, 0), + (24, 'Update SMS Outbound with Campaign Message', 'Update SMS Outbound with Campaign Message', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 3, NULL, NULL, '2016-12-15 05:00:00', 'Update SMS Outbound with Campaign MessageJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (25, 'Send Messages to SMS Gateway', 'Send Messages to SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 2, NULL, NULL, '2016-12-15 05:00:00', 'Send Messages to SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0), + (26, 'Get Delivery Reports from SMS Gateway', 'Get Delivery Reports from SMS Gateway', '0 0 5 1/1 * ? *', '2016-11-18 17:28:01', 1, NULL, NULL, '2016-12-15 05:00:00', 'Get Delivery Reports from SMS GatewayJobDetail2 _ DEFAULT', NULL, 1, 0, 1, 4, 0); /*!40000 ALTER TABLE `job` ENABLE KEYS */; @@ -766,7 +766,7 @@ CREATE TABLE IF NOT EXISTS `job_run_history` ( PRIMARY KEY (`id`), KEY `scheduledjobsFK` (`job_id`), CONSTRAINT `scheduledjobsFK` FOREIGN KEY (`job_id`) REFERENCES `job` (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.job_run_history: ~18 rows (approximately) /*!40000 ALTER TABLE `job_run_history` DISABLE KEYS */; @@ -788,7 +788,8 @@ INSERT INTO `job_run_history` (`id`, `job_id`, `version`, `start_time`, `end_tim (15, 5, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (16, 8, 8, '2014-03-24 12:00:04', '2014-03-24 12:00:12', 'success', NULL, 'cron', NULL), (17, 1, 1, '2014-06-11 09:30:00', '2014-06-11 09:30:01', 'success', NULL, 'cron', NULL), - (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL); + (18, 4, 1, '2014-06-11 09:50:00', '2014-06-11 09:50:01', 'success', NULL, 'cron', NULL), + (19, 23, 1, '2016-12-14 11:30:00', '2016-12-14 11:30:00', 'success', NULL, 'cron', NULL); /*!40000 ALTER TABLE `job_run_history` ENABLE KEYS */; @@ -1700,7 +1701,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (43, 'EGP', 2, NULL, NULL, 'Egyptian Pound', 'currency.EGP'), (44, 'ERN', 2, NULL, NULL, 'Eritrea Nafka', 'currency.ERN'), (45, 'ETB', 2, NULL, NULL, 'Ethiopian Birr', 'currency.ETB'), - (46, 'EUR', 2, NULL, '€', 'Euro', 'currency.EUR'), + (46, 'EUR', 2, NULL, '€', 'Euro', 'currency.EUR'), (47, 'FJD', 2, NULL, NULL, 'Fiji Dollar', 'currency.FJD'), (48, 'FKP', 2, NULL, NULL, 'Falkland Islands Pound', 'currency.FKP'), (49, 'GBP', 2, NULL, NULL, 'Pound Sterling', 'currency.GBP'), @@ -1718,7 +1719,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (61, 'HUF', 2, NULL, NULL, 'Hungarian Forint', 'currency.HUF'), (62, 'IDR', 2, NULL, NULL, 'Indonesian Rupiah', 'currency.IDR'), (63, 'ILS', 2, NULL, NULL, 'New Israeli Shekel', 'currency.ILS'), - (64, 'INR', 2, NULL, '₹', 'Indian Rupee', 'currency.INR'), + (64, 'INR', 2, NULL, '₹', 'Indian Rupee', 'currency.INR'), (65, 'IQD', 3, NULL, NULL, 'Iraqi Dinar', 'currency.IQD'), (66, 'IRR', 2, NULL, NULL, 'Iranian Rial', 'currency.IRR'), (67, 'ISK', 0, NULL, NULL, 'Iceland Krona', 'currency.ISK'), @@ -1735,7 +1736,7 @@ INSERT INTO `m_currency` (`id`, `code`, `decimal_places`, `currency_multiplesof` (78, 'KYD', 2, NULL, NULL, 'Cayman Islands Dollar', 'currency.KYD'), (79, 'KZT', 2, NULL, NULL, 'Kazakhstan Tenge', 'currency.KZT'), (80, 'LAK', 2, NULL, NULL, 'Lao Kip', 'currency.LAK'), - (81, 'LBP', 2, NULL, 'L£', 'Lebanese Pound', 'currency.LBP'), + (81, 'LBP', 2, NULL, 'L£', 'Lebanese Pound', 'currency.LBP'), (82, 'LKR', 2, NULL, NULL, 'Sri Lanka Rupee', 'currency.LKR'), (83, 'LRD', 2, NULL, NULL, 'Liberian Dollar', 'currency.LRD'), (84, 'LSL', 2, NULL, NULL, 'Lesotho Loti', 'currency.LSL'), @@ -2683,7 +2684,7 @@ CREATE TABLE IF NOT EXISTS `m_loan` ( CONSTRAINT `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_loan` DISABLE KEYS */; INSERT INTO `m_loan` (`id`, `account_no`, `external_id`, `client_id`, `group_id`, `product_id`, `fund_id`, `loan_officer_id`, `loanpurpose_cv_id`, `loan_status_id`, `loan_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount_proposed`, `principal_amount`, `approved_principal`, `arrearstolerance_amount`, `is_floating_interest_rate`, `interest_rate_differential`, `nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `term_frequency`, `term_period_frequency_enum`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `submittedon_date`, `submittedon_userid`, `approvedon_date`, `approvedon_userid`, `expected_disbursedon_date`, `expected_firstrepaymenton_date`, `interest_calculated_from_date`, `disbursedon_date`, `disbursedon_userid`, `expected_maturedon_date`, `maturedon_date`, `closedon_date`, `closedon_userid`, `total_charges_due_at_disbursement_derived`, `principal_disbursed_derived`, `principal_repaid_derived`, `principal_writtenoff_derived`, `principal_outstanding_derived`, `interest_charged_derived`, `interest_repaid_derived`, `interest_waived_derived`, `interest_writtenoff_derived`, `interest_outstanding_derived`, `fee_charges_charged_derived`, `fee_charges_repaid_derived`, `fee_charges_waived_derived`, `fee_charges_writtenoff_derived`, `fee_charges_outstanding_derived`, `penalty_charges_charged_derived`, `penalty_charges_repaid_derived`, `penalty_charges_waived_derived`, `penalty_charges_writtenoff_derived`, `penalty_charges_outstanding_derived`, `total_expected_repayment_derived`, `total_repayment_derived`, `total_expected_costofloan_derived`, `total_costofloan_derived`, `total_waived_derived`, `total_writtenoff_derived`, `total_outstanding_derived`, `total_overpaid_derived`, `rejectedon_date`, `rejectedon_userid`, `rescheduledon_date`, `rescheduledon_userid`, `withdrawnon_date`, `withdrawnon_userid`, `writtenoffon_date`, `loan_transaction_strategy_id`, `sync_disbursement_with_meeting`, `loan_counter`, `loan_product_counter`, `fixed_emi_amount`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `is_npa`, `total_recovered_derived`, `accrued_till`, `interest_recalcualated_on`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `guarantee_amount_derived`, `create_standing_instruction_at_disbursement`, `version`, `writeoff_reason_cv_id`, `loan_sub_status_id`, `is_topup`) VALUES (1, '000000001', NULL, 8, NULL, 1, 1, NULL, NULL, 200, 1, 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, b'0', 0.000000, 26.000000, 3, 26.000000, 1, 1, 0, 25, 1, 1, 1, 25, NULL, NULL, NULL, NULL, 1, '2014-06-02', 1, '2014-06-11', 1, '2014-06-16', NULL, NULL, NULL, NULL, '2014-12-08', '2014-12-08', NULL, NULL, 500.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, NULL, NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL, NULL, 1, 1, 0, NULL, NULL, 1, NULL, NULL, 0); @@ -3508,7 +3509,7 @@ CREATE TABLE IF NOT EXISTS `m_permission` ( `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1', PRIMARY KEY (`id`), UNIQUE KEY `code` (`code`) -) ENGINE=InnoDB AUTO_INCREMENT=765 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=768 DEFAULT CHARSET=utf8; -- Dumping data for table mifostenant-reference.m_permission: ~742 rows (approximately) /*!40000 ALTER TABLE `m_permission` DISABLE KEYS */; @@ -4254,7 +4255,10 @@ INSERT INTO `m_permission` (`id`, `grouping`, `code`, `entity_name`, `action_nam (761, 'organisation', 'ACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'ACTIVATE', 0), (762, 'organisation', 'CLOSE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'CLOSE', 0), (763, 'organisation', 'REACTIVATE_SMSCAMPAIGN', 'SMSCAMPAIGN', 'REACTIVATE', 0), - (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0); + (764, 'report', 'READ_Daily Teller Cash Report (Pentaho)', 'Daily Teller Cash Report (Pentaho)', 'READ', 0), + (765, 'datatable', 'READ_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'READ', 0), + (766, 'datatable', 'CREATE_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'CREATE', 0), + (767, 'datatable', 'DELETE_ENTITY_DATATABLE_CHECK', 'ENTITY_DATATABLE_CHECK', 'DELETE', 0); /*!40000 ALTER TABLE `m_permission` ENABLE KEYS */; @@ -4468,7 +4472,7 @@ CREATE TABLE IF NOT EXISTS `m_product_loan` ( CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_product_loan: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_product_loan: ~0 rows (approximately) /*!40000 ALTER TABLE `m_product_loan` DISABLE KEYS */; INSERT INTO `m_product_loan` (`id`, `short_name`, `currency_code`, `currency_digits`, `currency_multiplesof`, `principal_amount`, `min_principal_amount`, `max_principal_amount`, `arrearstolerance_amount`, `name`, `description`, `fund_id`, `is_linked_to_floating_interest_rates`, `allow_variabe_installments`, `nominal_interest_rate_per_period`, `min_nominal_interest_rate_per_period`, `max_nominal_interest_rate_per_period`, `interest_period_frequency_enum`, `annual_nominal_interest_rate`, `interest_method_enum`, `interest_calculated_in_period_enum`, `allow_partial_period_interest_calcualtion`, `repay_every`, `repayment_period_frequency_enum`, `number_of_repayments`, `min_number_of_repayments`, `max_number_of_repayments`, `grace_on_principal_periods`, `recurring_moratorium_principal_periods`, `grace_on_interest_periods`, `grace_interest_free_periods`, `amortization_method_enum`, `accounting_type`, `loan_transaction_strategy_id`, `external_id`, `include_in_borrower_cycle`, `use_borrower_cycle`, `start_date`, `close_date`, `allow_multiple_disbursals`, `max_disbursals`, `max_outstanding_loan_balance`, `grace_on_arrears_ageing`, `overdue_days_for_npa`, `days_in_month_enum`, `days_in_year_enum`, `interest_recalculation_enabled`, `min_days_between_disbursal_and_first_repayment`, `hold_guarantee_funds`, `principal_threshold_for_last_installment`, `account_moves_out_of_npa_only_on_arrears_completion`, `can_define_fixed_emi_amount`, `instalment_amount_in_multiples_of`, `can_use_for_topup`, `sync_expected_with_disbursement_date`) VALUES (1, 'IGL', 'USD', 2, 0, 10000.000000, 10000.000000, 10000.000000, NULL, 'Income Generating Loan', NULL, 1, b'0', b'0', 26.000000, 26.000000, 26.000000, 3, 26.000000, 1, 1, 0, 1, 1, 25, 25, 25, NULL, NULL, NULL, NULL, 1, 2, 1, NULL, 0, 0, '2010-01-01', NULL, 0, NULL, NULL, NULL, NULL, 1, 1, 0, NULL, 0, 0.00, 0, 0, NULL, 0, 0); @@ -5176,7 +5180,7 @@ CREATE TABLE IF NOT EXISTS `m_savings_product` ( CONSTRAINT `FK_savings_product_tax_group` FOREIGN KEY (`tax_group_id`) REFERENCES `m_tax_group` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_savings_product: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_savings_product: ~0 rows (approximately) /*!40000 ALTER TABLE `m_savings_product` DISABLE KEYS */; INSERT INTO `m_savings_product` (`id`, `name`, `short_name`, `description`, `deposit_type_enum`, `currency_code`, `currency_digits`, `currency_multiplesof`, `nominal_annual_interest_rate`, `interest_compounding_period_enum`, `interest_posting_period_enum`, `interest_calculation_type_enum`, `interest_calculation_days_in_year_type_enum`, `min_required_opening_balance`, `lockin_period_frequency`, `lockin_period_frequency_enum`, `accounting_type`, `withdrawal_fee_amount`, `withdrawal_fee_type_enum`, `withdrawal_fee_for_transfer`, `allow_overdraft`, `overdraft_limit`, `nominal_annual_interest_rate_overdraft`, `min_overdraft_for_interest_calculation`, `min_required_balance`, `enforce_min_required_balance`, `min_balance_for_interest_calculation`, `withhold_tax`, `tax_group_id`, `is_dormancy_tracking_active`, `days_to_inactive`, `days_to_dormancy`, `days_to_escheat`) VALUES (1, 'Voluntary savings', 'VS', 'Save money', 100, 'USD', 2, 0, 9.500000, 1, 4, 1, 365, 1000.000000, 1.000000, 1, 2, NULL, NULL, 0, 0, NULL, 0.000000, 0.000000, NULL, 0, NULL, 0, NULL, NULL, NULL, NULL, NULL); @@ -5673,7 +5677,7 @@ CREATE TABLE IF NOT EXISTS `m_survey_scorecards` ( CONSTRAINT `m_survey_scorecards_ibfk_1` FOREIGN KEY (`survey_id`) REFERENCES `m_surveys` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_2` FOREIGN KEY (`question_id`) REFERENCES `m_survey_questions` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_3` FOREIGN KEY (`response_id`) REFERENCES `m_survey_responses` (`id`), - CONSTRAINT `m_survey_scorecards_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `m_appusers` (`id`), + CONSTRAINT `m_survey_scorecards_ibfk_4` FOREIGN KEY (`user_id`) REFERENCES `m_appuser` (`id`), CONSTRAINT `m_survey_scorecards_ibfk_5` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -5873,7 +5877,7 @@ CREATE TABLE IF NOT EXISTS `m_working_days` ( PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; --- Dumping data for table mifostenant-reference.m_working_days: ~1 rows (approximately) +-- Dumping data for table mifostenant-reference.m_working_days: ~0 rows (approximately) /*!40000 ALTER TABLE `m_working_days` DISABLE KEYS */; INSERT INTO `m_working_days` (`id`, `recurrence`, `repayment_rescheduling_enum`, `extend_term_daily_repayments`, `extend_term_holiday_repayment`) VALUES (1, 'FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU,WE,TH,FR,SA,SU', 2, 0, 0); @@ -6514,6 +6518,8 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (333, 333, '320', 'add holiday payment reschedule', 'SQL', 'V320__add_holiday_payment_reschedule.sql', 1445492229, 'root', '2016-11-18 17:27:59', 421, 1), (334, 334, '321', 'boolean field As Interest PostedOn', 'SQL', 'V321__boolean_field_As_Interest_PostedOn.sql', 1906735834, 'root', '2016-11-18 17:28:00', 648, 1), (335, 335, '322', 'sms campaign', 'SQL', 'V322__sms_campaign.sql', -1316831815, 'root', '2016-11-18 17:28:01', 1439, 1), + (336, 337, '323', 'spm replace dead fk with exisiting one', 'SQL', 'V323__spm_replace_dead_fk_with_exisiting_one.sql', 656055500, 'root', '2016-12-14 11:21:57', 613, 1), + (337, 338, '324', 'datatable checks', 'SQL', 'V324__datatable_checks.sql', -142308095, 'root', '2016-12-14 11:21:57', 396, 1), (33, 33, '33', 'drop unique check on stretchy report parameter', 'SQL', 'V33__drop_unique_check_on_stretchy_report_parameter.sql', -716768190, 'root', '2014-03-08 02:28:56', 253, 1), (34, 34, '34', 'add unique check on stretchy report parameter', 'SQL', 'V34__add_unique_check_on_stretchy_report_parameter.sql', -1989718961, 'root', '2014-03-08 02:28:56', 254, 1), (35, 35, '35', 'add hierarchy column for acc gl account', 'SQL', 'V35__add_hierarchy_column_for_acc_gl_account.sql', -1387013309, 'root', '2014-03-08 02:28:57', 300, 1), @@ -6534,7 +6540,7 @@ INSERT INTO `schema_version` (`version_rank`, `installed_rank`, `version`, `desc (49, 49, '49', 'track-loan-charge-payment-transactions', 'SQL', 'V49__track-loan-charge-payment-transactions.sql', 170618680, 'root', '2014-03-08 02:29:03', 176, 1), (5, 5, '5', 'update-savings-product-and-account-tables', 'SQL', 'V5__update-savings-product-and-account-tables.sql', 1171300485, 'root', '2014-03-08 02:28:39', 636, 1), (50, 50, '50', 'add-grace-settings-to-loan-product', 'SQL', 'V50__add-grace-settings-to-loan-product.sql', 188244658, 'root', '2014-03-08 02:29:05', 926, 1), - (336, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:28:01', 54, 1), + (338, 336, '5000', 'Daily Teller Cash Report pentaho', 'SQL', 'V5000__Daily_Teller_Cash_Report_pentaho.sql', -638871297, 'root', '2016-11-18 17:28:01', 54, 1), (51, 51, '51', 'track-additional-details-related-to-installment-performance', 'SQL', 'V51__track-additional-details-related-to-installment-performance.sql', 2012793946, 'root', '2014-03-08 02:29:05', 602, 1), (52, 52, '52', 'add boolean support cols to acc accounting rule', 'SQL', 'V52__add_boolean_support_cols_to_acc_accounting_rule.sql', 961668575, 'root', '2014-03-08 02:29:06', 501, 1), (53, 53, '53', 'track-advance-and-late-payments-on-installment', 'SQL', 'V53__track-advance-and-late-payments-on-installment.sql', -230737076, 'root', '2014-03-08 02:29:06', 212, 1), @@ -6745,8 +6751,8 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (12, 'Active Loans - Details', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nlo.display_name as "Loan Officer", \r\nc.display_name as "Client", l.account_no as "Loan Account No.", pl.`name` as "Product", \r\nf.`name` as Fund, \r\nl.principal_amount as "Loan Amount", \r\nl.annual_nominal_interest_rate as " Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed Date", \r\ndate(l.expected_maturedon_date) as "Expected Matured On",\r\n\r\nl.principal_repaid_derived as "Principal Repaid",\r\nl.principal_outstanding_derived as "Principal Outstanding",\r\nlaa.principal_overdue_derived as "Principal Overdue",\r\n\r\nl.interest_repaid_derived as "Interest Repaid",\r\nl.interest_outstanding_derived as "Interest Outstanding",\r\nlaa.interest_overdue_derived as "Interest Overdue",\r\n\r\nl.fee_charges_repaid_derived as "Fees Repaid",\r\nl.fee_charges_outstanding_derived as "Fees Outstanding",\r\nlaa.fee_charges_overdue_derived as "Fees Overdue",\r\n\r\nl.penalty_charges_repaid_derived as "Penalties Repaid",\r\nl.penalty_charges_outstanding_derived as "Penalties Outstanding",\r\npenalty_charges_overdue_derived as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\ngroup by l.id\r\norder by ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'Individual Client \n\nReport', 1, 1), (13, 'Obligation Met Loans Details', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nc.account_no as "Client Account No.", c.display_name as "Client",\r\nl.account_no as "Loan Account No.", pl.`name` as "Product", \r\nf.`name` as Fund, \r\nl.principal_amount as "Loan Amount", \r\nl.total_repayment_derived as "Total Repaid", \r\nl.annual_nominal_interest_rate as " Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed", \r\ndate(l.closedon_date) as "Closed",\r\n\r\nl.principal_repaid_derived as "Principal Repaid",\r\nl.interest_repaid_derived as "Interest Repaid",\r\nl.fee_charges_repaid_derived as "Fees Repaid",\r\nl.penalty_charges_repaid_derived as "Penalties Repaid",\r\nlo.display_name as "Loan Officer"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand (case\r\n when ${obligDateType} = 1 then\r\n l.closedon_date between \'${startDate}\' and \'${endDate}\'\r\n when ${obligDateType} = 2 then\r\n l.disbursedon_date between \'${startDate}\' and \'${endDate}\'\r\n else 1 = 1\r\n end)\r\nand l.loan_status_id = 600\r\ngroup by l.id\r\norder by ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'Individual Client \n\nReport', 1, 1), (14, 'Obligation Met Loans Summary', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\ncount(distinct(c.id)) as "No. of Clients",\r\ncount(distinct(l.id)) as "No. of Loans",\r\nsum(l.principal_amount) as "Total Loan Amount", \r\nsum(l.principal_repaid_derived) as "Total Principal Repaid",\r\nsum(l.interest_repaid_derived) as "Total Interest Repaid",\r\nsum(l.fee_charges_repaid_derived) as "Total Fees Repaid",\r\nsum(l.penalty_charges_repaid_derived) as "Total Penalties Repaid",\r\nsum(l.interest_waived_derived) as "Total Interest Waived",\r\nsum(l.fee_charges_waived_derived) as "Total Fees Waived",\r\nsum(l.penalty_charges_waived_derived) as "Total Penalties Waived"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand (case\r\n when ${obligDateType} = 1 then\r\n l.closedon_date between \'${startDate}\' and \'${endDate}\'\r\n when ${obligDateType} = 2 then\r\n l.disbursedon_date between \'${startDate}\' and \'${endDate}\'\r\n else 1 = 1\r\n end)\r\nand l.loan_status_id = 600\r\ngroup by ounder.hierarchy, l.currency_code\r\norder by ounder.hierarchy, l.currency_code', 'Individual Client \n\nReport', 1, 1), - (15, 'Portfolio at Risk', 'Table', NULL, 'Loan', 'select x.Currency, x.`Principal Outstanding`, x.`Principal Overdue`, x.`Interest Outstanding`, x.`Interest Overdue`, \r\nx.`Fees Outstanding`, x.`Fees Overdue`, x.`Penalties Outstanding`, x.`Penalties Overdue`,\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.`Principal Overdue` * 100) / x.`Principal Outstanding`, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding`), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding`), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue` + x.`Penalties Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding` + x.`Penalties Overdue`), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from \r\n(select ifnull(cur.display_symbol, l.currency_code) as Currency, \r\nsum(l.principal_outstanding_derived) as "Principal Outstanding",\r\nsum(laa.principal_overdue_derived) as "Principal Overdue",\r\n\r\nsum(l.interest_outstanding_derived) as "Interest Outstanding",\r\nsum(laa.interest_overdue_derived) as "Interest Overdue",\r\n\r\nsum(l.fee_charges_outstanding_derived) as "Fees Outstanding",\r\nsum(laa.fee_charges_overdue_derived) as "Fees Overdue",\r\n\r\nsum(penalty_charges_outstanding_derived) as "Penalties Outstanding",\r\nsum(laa.penalty_charges_overdue_derived) as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_code_value purp on purp.id = l.loanpurpose_cv_id\r\nleft join m_product_loan p on p.id = l.product_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\ngroup by l.currency_code\r\norder by l.currency_code) x', 'Covers all loans.\r\n\r\nFor larger MFIs … we should add some derived fields on loan (or a 1:1 loan related table like mifos 2.x does)\r\nPrinciple, Interest, Fees, Penalties Outstanding and Overdue (possibly waived and written off too)', 1, 1), - (16, 'Portfolio at Risk by Branch', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(mo.`hierarchy`) - LENGTH(REPLACE(mo.`hierarchy`, \'.\', \'\')) - 1))), mo.`name`) as "Office/Branch",\r\nx.Currency, x.`Principal Outstanding`, x.`Principal Overdue`, x.`Interest Outstanding`, x.`Interest Overdue`, \r\nx.`Fees Outstanding`, x.`Fees Overdue`, x.`Penalties Outstanding`, x.`Penalties Overdue`,\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.`Principal Overdue` * 100) / x.`Principal Outstanding`, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding`), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding`), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue` + x.`Penalties Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding` + x.`Penalties Overdue`), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from m_office mo\r\njoin \r\n(select ounder.id as "branch", ifnull(cur.display_symbol, l.currency_code) as Currency, \r\n\r\nsum(l.principal_outstanding_derived) as "Principal Outstanding",\r\nsum(laa.principal_overdue_derived) as "Principal Overdue",\r\n\r\nsum(l.interest_outstanding_derived) as "Interest Outstanding",\r\nsum(laa.interest_overdue_derived) as "Interest Overdue",\r\n\r\nsum(l.fee_charges_outstanding_derived) as "Fees Outstanding",\r\nsum(laa.fee_charges_overdue_derived) as "Fees Overdue",\r\n\r\nsum(penalty_charges_outstanding_derived) as "Penalties Outstanding",\r\nsum(laa.penalty_charges_overdue_derived) as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_code_value purp on purp.id = l.loanpurpose_cv_id\r\nleft join m_product_loan p on p.id = l.product_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\ngroup by ounder.id, l.currency_code) x on x.branch = mo.id\r\norder by mo.hierarchy, x.Currency', 'Covers all loans.\r\n\r\nFor larger MFIs … we should add some derived fields on loan (or a 1:1 loan related table like mifos 2.x does)\r\nPrinciple, Interest, Fees, Penalties Outstanding and Overdue (possibly waived and written off too)', 1, 1), + (15, 'Portfolio at Risk', 'Table', NULL, 'Loan', 'select x.Currency, x.`Principal Outstanding`, x.`Principal Overdue`, x.`Interest Outstanding`, x.`Interest Overdue`, \r\nx.`Fees Outstanding`, x.`Fees Overdue`, x.`Penalties Outstanding`, x.`Penalties Overdue`,\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.`Principal Overdue` * 100) / x.`Principal Outstanding`, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding`), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding`), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue` + x.`Penalties Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding` + x.`Penalties Overdue`), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from \r\n(select ifnull(cur.display_symbol, l.currency_code) as Currency, \r\nsum(l.principal_outstanding_derived) as "Principal Outstanding",\r\nsum(laa.principal_overdue_derived) as "Principal Overdue",\r\n\r\nsum(l.interest_outstanding_derived) as "Interest Outstanding",\r\nsum(laa.interest_overdue_derived) as "Interest Overdue",\r\n\r\nsum(l.fee_charges_outstanding_derived) as "Fees Outstanding",\r\nsum(laa.fee_charges_overdue_derived) as "Fees Overdue",\r\n\r\nsum(penalty_charges_outstanding_derived) as "Penalties Outstanding",\r\nsum(laa.penalty_charges_overdue_derived) as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_code_value purp on purp.id = l.loanpurpose_cv_id\r\nleft join m_product_loan p on p.id = l.product_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\ngroup by l.currency_code\r\norder by l.currency_code) x', 'Covers all loans.\r\n\r\nFor larger MFIs … we should add some derived fields on loan (or a 1:1 loan related table like mifos 2.x does)\r\nPrinciple, Interest, Fees, Penalties Outstanding and Overdue (possibly waived and written off too)', 1, 1), + (16, 'Portfolio at Risk by Branch', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(mo.`hierarchy`) - LENGTH(REPLACE(mo.`hierarchy`, \'.\', \'\')) - 1))), mo.`name`) as "Office/Branch",\r\nx.Currency, x.`Principal Outstanding`, x.`Principal Overdue`, x.`Interest Outstanding`, x.`Interest Overdue`, \r\nx.`Fees Outstanding`, x.`Fees Overdue`, x.`Penalties Outstanding`, x.`Penalties Overdue`,\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.`Principal Overdue` * 100) / x.`Principal Outstanding`, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding`), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding`), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.`Principal Overdue` + x.`Interest Overdue` + x.`Fees Overdue` + x.`Penalties Overdue`) * 100) / (x.`Principal Outstanding` + x.`Interest Outstanding` + x.`Fees Outstanding` + x.`Penalties Overdue`), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from m_office mo\r\njoin \r\n(select ounder.id as "branch", ifnull(cur.display_symbol, l.currency_code) as Currency, \r\n\r\nsum(l.principal_outstanding_derived) as "Principal Outstanding",\r\nsum(laa.principal_overdue_derived) as "Principal Overdue",\r\n\r\nsum(l.interest_outstanding_derived) as "Interest Outstanding",\r\nsum(laa.interest_overdue_derived) as "Interest Overdue",\r\n\r\nsum(l.fee_charges_outstanding_derived) as "Fees Outstanding",\r\nsum(laa.fee_charges_overdue_derived) as "Fees Overdue",\r\n\r\nsum(penalty_charges_outstanding_derived) as "Penalties Outstanding",\r\nsum(laa.penalty_charges_overdue_derived) as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_code_value purp on purp.id = l.loanpurpose_cv_id\r\nleft join m_product_loan p on p.id = l.product_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\ngroup by ounder.id, l.currency_code) x on x.branch = mo.id\r\norder by mo.hierarchy, x.Currency', 'Covers all loans.\r\n\r\nFor larger MFIs … we should add some derived fields on loan (or a 1:1 loan related table like mifos 2.x does)\r\nPrinciple, Interest, Fees, Penalties Outstanding and Overdue (possibly waived and written off too)', 1, 1), (20, 'Funds Disbursed Between Dates Summary', 'Table', NULL, 'Fund', 'select ifnull(f.`name`, \'-\') as Fund, ifnull(cur.display_symbol, l.currency_code) as Currency, \r\nround(sum(l.principal_amount), 4) as disbursed_amount\r\nfrom m_office ounder \r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_currency cur on cur.`code` = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nwhere disbursedon_date between \'${startDate}\' and \'${endDate}\'\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (l.currency_code = \'${currencyId}\' or \'-1\' = \'${currencyId}\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\ngroup by ifnull(f.`name`, \'-\') , ifnull(cur.display_symbol, l.currency_code)\r\norder by ifnull(f.`name`, \'-\') , ifnull(cur.display_symbol, l.currency_code)', NULL, 1, 1), (21, 'Funds Disbursed Between Dates Summary by Office', 'Table', NULL, 'Fund', 'select \r\nconcat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\n \n\nifnull(f.`name`, \'-\') as Fund, ifnull(cur.display_symbol, l.currency_code) as Currency, round(sum(l.principal_amount), 4) as disbursed_amount\r\nfrom m_office o\r\n\n\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c \n\non c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_currency cur on cur.`code` = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\n\n\nwhere disbursedon_date between \'${startDate}\' and \'${endDate}\'\r\nand o.id = ${officeId}\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand \n\n(l.currency_code = \'${currencyId}\' or \'-1\' = \'${currencyId}\')\r\ngroup by ounder.`name`, ifnull(f.`name`, \'-\') , ifnull(cur.display_symbol, \n\nl.currency_code)\r\norder by ounder.`name`, ifnull(f.`name`, \'-\') , ifnull(cur.display_symbol, l.currency_code)', NULL, 1, 1), (48, 'Balance Sheet', 'Pentaho', NULL, 'Accounting', NULL, 'Balance Sheet', 1, 1), @@ -6754,14 +6760,14 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (50, 'Trial Balance', 'Pentaho', NULL, 'Accounting', NULL, 'Trial Balance Report', 1, 1), (51, 'Written-Off Loans', 'Table', NULL, 'Loan', 'SELECT \r\nconcat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, ml.currency_code) as Currency, \r\nc.account_no as "Client Account No.",\r\nc.display_name AS \'Client Name\',\r\nml.account_no AS \'Loan Account No.\',\r\nmpl.name AS \'Product Name\',\r\nml.disbursedon_date AS \'Disbursed Date\',\r\nlt.transaction_date AS \'Written Off date\',\r\nml.principal_amount as "Loan Amount",\r\nifnull(lt.principal_portion_derived, 0) AS \'Written-Off Principal\',\r\nifnull(lt.interest_portion_derived, 0) AS \'Written-Off Interest\',\r\nifnull(lt.fee_charges_portion_derived,0) AS \'Written-Off Fees\',\r\nifnull(lt.penalty_charges_portion_derived,0) AS \'Written-Off Penalties\',\r\nn.note AS \'Reason For Write-Off\',\r\nIFNULL(ms.display_name,\'-\') AS \'Loan Officer Name\'\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan ml ON ml.client_id = c.id\r\nJOIN m_product_loan mpl ON mpl.id=ml.product_id\r\nLEFT JOIN m_staff ms ON ms.id=ml.loan_officer_id\r\nJOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nLEFT JOIN m_note n ON n.loan_transaction_id = lt.id\r\nLEFT JOIN m_currency cur on cur.code = ml.currency_code\r\nWHERE lt.transaction_type_enum = 6 /*write-off */\r\nAND lt.is_reversed is false \r\nAND ml.loan_status_id=601\r\nAND o.id=${officeId}\r\nAND (mpl.id=${loanProductId} OR ${loanProductId}=-1)\r\nAND lt.transaction_date BETWEEN \'${startDate}\' AND \'${endDate}\'\r\nAND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}") \r\nORDER BY ounder.hierarchy, ifnull(cur.display_symbol, ml.currency_code), ml.account_no', 'Individual Lending Report. Written Off Loans', 1, 1), (52, 'Aging Detail', 'Table', NULL, 'Loan', '\r\nSELECT \r\nconcat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, ml.currency_code) as Currency, \r\nmc.account_no as "Client Account No.",\r\n mc.display_name AS "Client Name",\r\n ml.account_no AS "Account Number",\r\n ml.principal_amount AS "Loan Amount",\r\n ml.principal_disbursed_derived AS "Original Principal",\r\n ml.interest_charged_derived AS "Original Interest",\r\n ml.principal_repaid_derived AS "Principal Paid",\r\n ml.interest_repaid_derived AS "Interest Paid",\r\n laa.principal_overdue_derived AS "Principal Overdue",\r\n laa.interest_overdue_derived AS "Interest Overdue",\r\nDATEDIFF(CURDATE(), laa.overdue_since_date_derived) as "Days in Arrears",\r\n\r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<7, \'<1\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<8, \' 1\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<15, \'2\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<22, \' 3\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<29, \' 4\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<36, \' 5\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<43, \' 6\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<50, \' 7\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<57, \' 8\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<64, \' 9\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<71, \'10\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<78, \'11\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<85, \'12\', \'12+\')))))))))))) )AS "Weeks In Arrears Band",\r\n\r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<31, \'0 - 30\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<61, \'30 - 60\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<91, \'60 - 90\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<181, \'90 - 180\', \r\n IF(DATEDIFF(CURDATE(), laa.overdue_since_date_derived)<361, \'180 - 360\', \r\n \'> 360\'))))) AS "Days in Arrears Band"\r\n\r\n FROM m_office mo \r\n JOIN m_office ounder ON ounder.hierarchy like concat(mo.hierarchy, \'%\')\r\n AND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc ON mc.office_id=ounder.id\r\n INNER JOIN m_loan ml ON ml.client_id = mc.id\r\n INNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\n INNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\n left join m_currency cur on cur.code = ml.currency_code\r\n WHERE ml.loan_status_id=300\r\n AND mo.id=${officeId}\r\nORDER BY ounder.hierarchy, ifnull(cur.display_symbol, ml.currency_code), ml.account_no\r\n', 'Loan arrears aging (Weeks)', 1, 1), - (53, 'Aging Summary (Arrears in Weeks)', 'Table', NULL, 'Loan', 'SELECT \r\n IFNULL(periods.currencyName, periods.currency) as currency, \r\n periods.period_no \'Weeks In Arrears (Up To)\', \r\n IFNULL(ars.loanId, 0) \'No Of Loans\', \r\n IFNULL(ars.principal,0.0) \'Original Principal\', \r\n IFNULL(ars.interest,0.0) \'Original Interest\', \r\n IFNULL(ars.prinPaid,0.0) \'Principal Paid\', \r\n IFNULL(ars.intPaid,0.0) \'Interest Paid\', \r\n IFNULL(ars.prinOverdue,0.0) \'Principal Overdue\', \r\n IFNULL(ars.intOverdue,0.0)\'Interest Overdue\'\r\nFROM \r\n /* full table of aging periods/currencies used combo to ensure each line represented */\r\n (SELECT curs.code as currency, curs.name as currencyName, pers.* from\r\n (SELECT \'On Schedule\' period_no,1 pid UNION\r\n SELECT \'1\',2 UNION\r\n SELECT \'2\',3 UNION\r\n SELECT \'3\',4 UNION\r\n SELECT \'4\',5 UNION\r\n SELECT \'5\',6 UNION\r\n SELECT \'6\',7 UNION\r\n SELECT \'7\',8 UNION\r\n SELECT \'8\',9 UNION\r\n SELECT \'9\',10 UNION\r\n SELECT \'10\',11 UNION\r\n SELECT \'11\',12 UNION\r\n SELECT \'12\',13 UNION\r\n SELECT \'12+\',14) pers,\r\n (SELECT distinctrow moc.code, moc.name\r\n FROM m_office mo2\r\n INNER JOIN m_office ounder2 ON ounder2.hierarchy \r\n LIKE CONCAT(mo2.hierarchy, \'%\')\r\nAND ounder2.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc2 ON mc2.office_id=ounder2.id\r\n INNER JOIN m_loan ml2 ON ml2.client_id = mc2.id\r\n INNER JOIN m_organisation_currency moc ON moc.code = ml2.currency_code\r\n WHERE ml2.loan_status_id=300 /* active */\r\n AND mo2.id=${officeId}\r\nAND (ml2.currency_code = "${currencyId}" or "-1" = "${currencyId}")) curs) periods\r\n\r\n\r\nLEFT JOIN /* table of aging periods per currency with gaps if no applicable loans */\r\n(SELECT \r\n z.currency, z.arrPeriod, \r\n COUNT(z.loanId) as loanId, SUM(z.principal) as principal, SUM(z.interest) as interest, \r\n SUM(z.prinPaid) as prinPaid, SUM(z.intPaid) as intPaid, \r\n SUM(z.prinOverdue) as prinOverdue, SUM(z.intOverdue) as intOverdue\r\nFROM\r\n /*derived table just used to get arrPeriod value (was much slower to\r\n duplicate calc of minOverdueDate in inner query)\r\nmight not be now with derived fields but didn’t check */\r\n (SELECT x.loanId, x.currency, x.principal, x.interest, x.prinPaid, x.intPaid, x.prinOverdue, x.intOverdue,\r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<1, \'On Schedule\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<8, \'1\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<15, \'2\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<22, \'3\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<29, \'4\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<36, \'5\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<43, \'6\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<50, \'7\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<57, \'8\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<64, \'9\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<71, \'10\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<78, \'11\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<85, \'12\',\r\n \'12+\'))))))))))))) AS arrPeriod\r\n\r\n FROM /* get the individual loan details */\r\n (SELECT ml.id AS loanId, ml.currency_code as currency,\r\n ml.principal_disbursed_derived as principal, \r\n ml.interest_charged_derived as interest, \r\n ml.principal_repaid_derived as prinPaid, \r\n ml.interest_repaid_derived intPaid,\r\n\r\n laa.principal_overdue_derived as prinOverdue,\r\n laa.interest_overdue_derived as intOverdue,\r\n\r\n IFNULL(laa.overdue_since_date_derived, curdate()) as minOverdueDate\r\n \r\n FROM m_office mo\r\n INNER JOIN m_office ounder ON ounder.hierarchy \r\n LIKE CONCAT(mo.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc ON mc.office_id=ounder.id\r\n INNER JOIN m_loan ml ON ml.client_id = mc.id\r\n LEFT JOIN m_loan_arrears_aging laa on laa.loan_id = ml.id\r\n WHERE ml.loan_status_id=300 /* active */\r\n AND mo.id=${officeId}\r\n AND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\n GROUP BY ml.id) x\r\n ) z \r\nGROUP BY z.currency, z.arrPeriod ) ars ON ars.arrPeriod=periods.period_no and ars.currency = periods.currency\r\nORDER BY periods.currency, periods.pid', 'Loan amount in arrears by branch', 1, 1), + (53, 'Aging Summary (Arrears in Weeks)', 'Table', NULL, 'Loan', 'SELECT \r\n IFNULL(periods.currencyName, periods.currency) as currency, \r\n periods.period_no \'Weeks In Arrears (Up To)\', \r\n IFNULL(ars.loanId, 0) \'No Of Loans\', \r\n IFNULL(ars.principal,0.0) \'Original Principal\', \r\n IFNULL(ars.interest,0.0) \'Original Interest\', \r\n IFNULL(ars.prinPaid,0.0) \'Principal Paid\', \r\n IFNULL(ars.intPaid,0.0) \'Interest Paid\', \r\n IFNULL(ars.prinOverdue,0.0) \'Principal Overdue\', \r\n IFNULL(ars.intOverdue,0.0)\'Interest Overdue\'\r\nFROM \r\n /* full table of aging periods/currencies used combo to ensure each line represented */\r\n (SELECT curs.code as currency, curs.name as currencyName, pers.* from\r\n (SELECT \'On Schedule\' period_no,1 pid UNION\r\n SELECT \'1\',2 UNION\r\n SELECT \'2\',3 UNION\r\n SELECT \'3\',4 UNION\r\n SELECT \'4\',5 UNION\r\n SELECT \'5\',6 UNION\r\n SELECT \'6\',7 UNION\r\n SELECT \'7\',8 UNION\r\n SELECT \'8\',9 UNION\r\n SELECT \'9\',10 UNION\r\n SELECT \'10\',11 UNION\r\n SELECT \'11\',12 UNION\r\n SELECT \'12\',13 UNION\r\n SELECT \'12+\',14) pers,\r\n (SELECT distinctrow moc.code, moc.name\r\n FROM m_office mo2\r\n INNER JOIN m_office ounder2 ON ounder2.hierarchy \r\n LIKE CONCAT(mo2.hierarchy, \'%\')\r\nAND ounder2.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc2 ON mc2.office_id=ounder2.id\r\n INNER JOIN m_loan ml2 ON ml2.client_id = mc2.id\r\n INNER JOIN m_organisation_currency moc ON moc.code = ml2.currency_code\r\n WHERE ml2.loan_status_id=300 /* active */\r\n AND mo2.id=${officeId}\r\nAND (ml2.currency_code = "${currencyId}" or "-1" = "${currencyId}")) curs) periods\r\n\r\n\r\nLEFT JOIN /* table of aging periods per currency with gaps if no applicable loans */\r\n(SELECT \r\n z.currency, z.arrPeriod, \r\n COUNT(z.loanId) as loanId, SUM(z.principal) as principal, SUM(z.interest) as interest, \r\n SUM(z.prinPaid) as prinPaid, SUM(z.intPaid) as intPaid, \r\n SUM(z.prinOverdue) as prinOverdue, SUM(z.intOverdue) as intOverdue\r\nFROM\r\n /*derived table just used to get arrPeriod value (was much slower to\r\n duplicate calc of minOverdueDate in inner query)\r\nmight not be now with derived fields but didn’t check */\r\n (SELECT x.loanId, x.currency, x.principal, x.interest, x.prinPaid, x.intPaid, x.prinOverdue, x.intOverdue,\r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<1, \'On Schedule\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<8, \'1\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<15, \'2\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<22, \'3\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<29, \'4\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<36, \'5\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<43, \'6\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<50, \'7\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<57, \'8\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<64, \'9\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<71, \'10\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<78, \'11\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<85, \'12\',\r\n \'12+\'))))))))))))) AS arrPeriod\r\n\r\n FROM /* get the individual loan details */\r\n (SELECT ml.id AS loanId, ml.currency_code as currency,\r\n ml.principal_disbursed_derived as principal, \r\n ml.interest_charged_derived as interest, \r\n ml.principal_repaid_derived as prinPaid, \r\n ml.interest_repaid_derived intPaid,\r\n\r\n laa.principal_overdue_derived as prinOverdue,\r\n laa.interest_overdue_derived as intOverdue,\r\n\r\n IFNULL(laa.overdue_since_date_derived, curdate()) as minOverdueDate\r\n \r\n FROM m_office mo\r\n INNER JOIN m_office ounder ON ounder.hierarchy \r\n LIKE CONCAT(mo.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc ON mc.office_id=ounder.id\r\n INNER JOIN m_loan ml ON ml.client_id = mc.id\r\n LEFT JOIN m_loan_arrears_aging laa on laa.loan_id = ml.id\r\n WHERE ml.loan_status_id=300 /* active */\r\n AND mo.id=${officeId}\r\n AND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\n GROUP BY ml.id) x\r\n ) z \r\nGROUP BY z.currency, z.arrPeriod ) ars ON ars.arrPeriod=periods.period_no and ars.currency = periods.currency\r\nORDER BY periods.currency, periods.pid', 'Loan amount in arrears by branch', 1, 1), (54, 'Rescheduled Loans', 'Table', NULL, 'Loan', 'SELECT \r\nconcat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, ml.currency_code) as Currency, \r\nc.account_no as "Client Account No.",\r\nc.display_name AS \'Client Name\',\r\nml.account_no AS \'Loan Account No.\',\r\nmpl.name AS \'Product Name\',\r\nml.disbursedon_date AS \'Disbursed Date\',\r\nlt.transaction_date AS \'Written Off date\',\r\nml.principal_amount as "Loan Amount",\r\nifnull(lt.principal_portion_derived, 0) AS \'Rescheduled Principal\',\r\nifnull(lt.interest_portion_derived, 0) AS \'Rescheduled Interest\',\r\nifnull(lt.fee_charges_portion_derived,0) AS \'Rescheduled Fees\',\r\nifnull(lt.penalty_charges_portion_derived,0) AS \'Rescheduled Penalties\',\r\nn.note AS \'Reason For Rescheduling\',\r\nIFNULL(ms.display_name,\'-\') AS \'Loan Officer Name\'\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan ml ON ml.client_id = c.id\r\nJOIN m_product_loan mpl ON mpl.id=ml.product_id\r\nLEFT JOIN m_staff ms ON ms.id=ml.loan_officer_id\r\nJOIN m_loan_transaction lt ON lt.loan_id = ml.id\r\nLEFT JOIN m_note n ON n.loan_transaction_id = lt.id\r\nLEFT JOIN m_currency cur on cur.code = ml.currency_code\r\nWHERE lt.transaction_type_enum = 7 /*marked for rescheduling */\r\nAND lt.is_reversed is false \r\nAND ml.loan_status_id=602\r\nAND o.id=${officeId}\r\nAND (mpl.id=${loanProductId} OR ${loanProductId}=-1)\r\nAND lt.transaction_date BETWEEN \'${startDate}\' AND \'${endDate}\'\r\nAND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nORDER BY ounder.hierarchy, ifnull(cur.display_symbol, ml.currency_code), ml.account_no', 'Individual Lending Report. Rescheduled Loans. The ability to reschedule (or mark that you have rescheduled the loan elsewhere) is a legacy of the older Mifos product. Needed for migration.', 1, 1), (55, 'Active Loans Passed Final Maturity', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nlo.display_name as "Loan Officer", \r\nc.display_name as "Client", l.account_no as "Loan Account No.", pl.`name` as "Product", \r\nf.`name` as Fund, \r\nl.principal_amount as "Loan Amount", \r\nl.annual_nominal_interest_rate as " Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed Date", \r\ndate(l.expected_maturedon_date) as "Expected Matured On",\r\n\r\nl.principal_repaid_derived as "Principal Repaid",\r\nl.principal_outstanding_derived as "Principal Outstanding",\r\nlaa.principal_overdue_derived as "Principal Overdue",\r\n\r\nl.interest_repaid_derived as "Interest Repaid",\r\nl.interest_outstanding_derived as "Interest Outstanding",\r\nlaa.interest_overdue_derived as "Interest Overdue",\r\n\r\nl.fee_charges_repaid_derived as "Fees Repaid",\r\nl.fee_charges_outstanding_derived as "Fees Outstanding",\r\nlaa.fee_charges_overdue_derived as "Fees Overdue",\r\n\r\nl.penalty_charges_repaid_derived as "Penalties Repaid",\r\nl.penalty_charges_outstanding_derived as "Penalties Outstanding",\r\nlaa.penalty_charges_overdue_derived as "Penalties Overdue"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\nand l.expected_maturedon_date < curdate()\r\ngroup by l.id\r\norder by ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'Individual Client \n\nReport', 1, 1), (56, 'Active Loans Passed Final Maturity Summary', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(mo.`hierarchy`) - LENGTH(REPLACE(mo.`hierarchy`, \'.\', \'\')) - 1))), mo.`name`) as "Office/Branch", x.currency as Currency,\r\n x.client_count as "No. of Clients", x.active_loan_count as "No. Active Loans", x. arrears_loan_count as "No. of Loans in Arrears",\r\nx.principal as "Total Loans Disbursed", x.principal_repaid as "Principal Repaid", x.principal_outstanding as "Principal Outstanding", x.principal_overdue as "Principal Overdue",\r\nx.interest as "Total Interest", x.interest_repaid as "Interest Repaid", x.interest_outstanding as "Interest Outstanding", x.interest_overdue as "Interest Overdue",\r\nx.fees as "Total Fees", x.fees_repaid as "Fees Repaid", x.fees_outstanding as "Fees Outstanding", x.fees_overdue as "Fees Overdue",\r\nx.penalties as "Total Penalties", x.penalties_repaid as "Penalties Repaid", x.penalties_outstanding as "Penalties Outstanding", x.penalties_overdue as "Penalties Overdue",\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.principal_overdue * 100) / x.principal_outstanding, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.principal_overdue + x.interest_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.principal_overdue + x.interest_overdue + x.fees_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding + x.fees_outstanding), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.principal_overdue + x.interest_overdue + x.fees_overdue + x.penalties_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding + x.fees_outstanding + x.penalties_overdue), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from m_office mo\r\njoin \r\n(select ounder.id as branch,\r\nifnull(cur.display_symbol, l.currency_code) as currency,\r\ncount(distinct(c.id)) as client_count, \r\ncount(distinct(l.id)) as active_loan_count,\r\ncount(distinct(laa.loan_id) ) as arrears_loan_count,\r\n\r\nsum(l.principal_disbursed_derived) as principal,\r\nsum(l.principal_repaid_derived) as principal_repaid,\r\nsum(l.principal_outstanding_derived) as principal_outstanding,\r\nsum(ifnull(laa.principal_overdue_derived,0)) as principal_overdue,\r\n\r\nsum(l.interest_charged_derived) as interest,\r\nsum(l.interest_repaid_derived) as interest_repaid,\r\nsum(l.interest_outstanding_derived) as interest_outstanding,\r\nsum(ifnull(laa.interest_overdue_derived,0)) as interest_overdue,\r\n\r\nsum(l.fee_charges_charged_derived) as fees,\r\nsum(l.fee_charges_repaid_derived) as fees_repaid,\r\nsum(l.fee_charges_outstanding_derived) as fees_outstanding,\r\nsum(ifnull(laa.fee_charges_overdue_derived,0)) as fees_overdue,\r\n\r\nsum(l.penalty_charges_charged_derived) as penalties,\r\nsum(l.penalty_charges_repaid_derived) as penalties_repaid,\r\nsum(l.penalty_charges_outstanding_derived) as penalties_outstanding,\r\nsum(ifnull(laa.penalty_charges_overdue_derived,0)) as penalties_overdue\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\n\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\nand l.expected_maturedon_date < curdate()\r\ngroup by ounder.id, l.currency_code) x on x.branch = mo.id\r\norder by mo.hierarchy, x.Currency', NULL, 1, 1), (57, 'Active Loans in last installment', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(lastInstallment.`hierarchy`) - LENGTH(REPLACE(lastInstallment.`hierarchy`, \'.\', \'\')) - 1))), lastInstallment.branch) as "Office/Branch",\r\nlastInstallment.Currency,\r\nlastInstallment.`Loan Officer`, \r\nlastInstallment.`Client Account No`, lastInstallment.`Client`, \r\nlastInstallment.`Loan Account No`, lastInstallment.`Product`, \r\nlastInstallment.`Fund`, lastInstallment.`Loan Amount`, \r\nlastInstallment.`Annual Nominal Interest Rate`, \r\nlastInstallment.`Disbursed`, lastInstallment.`Expected Matured On` ,\r\n\r\nl.principal_repaid_derived as "Principal Repaid",\r\nl.principal_outstanding_derived as "Principal Outstanding",\r\nlaa.principal_overdue_derived as "Principal Overdue",\r\n\r\nl.interest_repaid_derived as "Interest Repaid",\r\nl.interest_outstanding_derived as "Interest Outstanding",\r\nlaa.interest_overdue_derived as "Interest Overdue",\r\n\r\nl.fee_charges_repaid_derived as "Fees Repaid",\r\nl.fee_charges_outstanding_derived as "Fees Outstanding",\r\nlaa.fee_charges_overdue_derived as "Fees Overdue",\r\n\r\nl.penalty_charges_repaid_derived as "Penalties Repaid",\r\nl.penalty_charges_outstanding_derived as "Penalties Outstanding",\r\nlaa.penalty_charges_overdue_derived as "Penalties Overdue"\r\n\r\nfrom \r\n(select l.id as loanId, l.number_of_repayments, min(r.installment), \r\nounder.id, ounder.hierarchy, ounder.`name` as branch, \r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nlo.display_name as "Loan Officer", c.account_no as "Client Account No",\r\nc.display_name as "Client", l.account_no as "Loan Account No", pl.`name` as "Product", \r\nf.`name` as Fund, l.principal_amount as "Loan Amount", \r\nl.annual_nominal_interest_rate as "Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed", date(l.expected_maturedon_date) as "Expected Matured On"\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_loan_repayment_schedule r on r.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\nand r.completed_derived is false\r\nand r.duedate >= curdate()\r\ngroup by l.id\r\nhaving l.number_of_repayments = min(r.installment)) lastInstallment\r\njoin m_loan l on l.id = lastInstallment.loanId\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\norder by lastInstallment.hierarchy, lastInstallment.Currency, lastInstallment.`Client Account No`, lastInstallment.`Loan Account No`', 'Individual Client \n\nReport', 1, 1), (58, 'Active Loans in last installment Summary', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(mo.`hierarchy`) - LENGTH(REPLACE(mo.`hierarchy`, \'.\', \'\')) - 1))), mo.`name`) as "Office/Branch", x.currency as Currency,\r\n x.client_count as "No. of Clients", x.active_loan_count as "No. Active Loans", x. arrears_loan_count as "No. of Loans in Arrears",\r\nx.principal as "Total Loans Disbursed", x.principal_repaid as "Principal Repaid", x.principal_outstanding as "Principal Outstanding", x.principal_overdue as "Principal Overdue",\r\nx.interest as "Total Interest", x.interest_repaid as "Interest Repaid", x.interest_outstanding as "Interest Outstanding", x.interest_overdue as "Interest Overdue",\r\nx.fees as "Total Fees", x.fees_repaid as "Fees Repaid", x.fees_outstanding as "Fees Outstanding", x.fees_overdue as "Fees Overdue",\r\nx.penalties as "Total Penalties", x.penalties_repaid as "Penalties Repaid", x.penalties_outstanding as "Penalties Outstanding", x.penalties_overdue as "Penalties Overdue",\r\n\r\n (case\r\n when ${parType} = 1 then\r\n cast(round((x.principal_overdue * 100) / x.principal_outstanding, 2) as char)\r\n when ${parType} = 2 then\r\n cast(round(((x.principal_overdue + x.interest_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding), 2) as char)\r\n when ${parType} = 3 then\r\n cast(round(((x.principal_overdue + x.interest_overdue + x.fees_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding + x.fees_outstanding), 2) as char)\r\n when ${parType} = 4 then\r\n cast(round(((x.principal_overdue + x.interest_overdue + x.fees_overdue + x.penalties_overdue) * 100) / (x.principal_outstanding + x.interest_outstanding + x.fees_outstanding + x.penalties_overdue), 2) as char)\r\n else "invalid PAR Type"\r\n end) as "Portfolio at Risk %"\r\n from m_office mo\r\njoin \r\n(select lastInstallment.branchId as branchId,\r\nlastInstallment.Currency,\r\ncount(distinct(lastInstallment.clientId)) as client_count, \r\ncount(distinct(lastInstallment.loanId)) as active_loan_count,\r\ncount(distinct(laa.loan_id) ) as arrears_loan_count,\r\n\r\nsum(l.principal_disbursed_derived) as principal,\r\nsum(l.principal_repaid_derived) as principal_repaid,\r\nsum(l.principal_outstanding_derived) as principal_outstanding,\r\nsum(ifnull(laa.principal_overdue_derived,0)) as principal_overdue,\r\n\r\nsum(l.interest_charged_derived) as interest,\r\nsum(l.interest_repaid_derived) as interest_repaid,\r\nsum(l.interest_outstanding_derived) as interest_outstanding,\r\nsum(ifnull(laa.interest_overdue_derived,0)) as interest_overdue,\r\n\r\nsum(l.fee_charges_charged_derived) as fees,\r\nsum(l.fee_charges_repaid_derived) as fees_repaid,\r\nsum(l.fee_charges_outstanding_derived) as fees_outstanding,\r\nsum(ifnull(laa.fee_charges_overdue_derived,0)) as fees_overdue,\r\n\r\nsum(l.penalty_charges_charged_derived) as penalties,\r\nsum(l.penalty_charges_repaid_derived) as penalties_repaid,\r\nsum(l.penalty_charges_outstanding_derived) as penalties_outstanding,\r\nsum(ifnull(laa.penalty_charges_overdue_derived,0)) as penalties_overdue\r\n\r\nfrom \r\n(select l.id as loanId, l.number_of_repayments, min(r.installment), \r\nounder.id as branchId, ounder.hierarchy, ounder.`name` as branch, \r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nlo.display_name as "Loan Officer", c.id as clientId, c.account_no as "Client Account No",\r\nc.display_name as "Client", l.account_no as "Loan Account No", pl.`name` as "Product", \r\nf.`name` as Fund, l.principal_amount as "Loan Amount", \r\nl.annual_nominal_interest_rate as "Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed", date(l.expected_maturedon_date) as "Expected Matured On"\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_loan_repayment_schedule r on r.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.loan_status_id = 300\r\nand r.completed_derived is false\r\nand r.duedate >= curdate()\r\ngroup by l.id\r\nhaving l.number_of_repayments = min(r.installment)) lastInstallment\r\njoin m_loan l on l.id = lastInstallment.loanId\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\ngroup by lastInstallment.branchId) x on x.branchId = mo.id\r\norder by mo.hierarchy, x.Currency', 'Individual Client \n\nReport', 1, 1), (59, 'Active Loans by Disbursal Period', 'Table', NULL, 'Loan', 'select concat(repeat("..", \r\n ((LENGTH(ounder.`hierarchy`) - LENGTH(REPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) as "Office/Branch",\r\nifnull(cur.display_symbol, l.currency_code) as Currency,\r\nc.account_no as "Client Account No", c.display_name as "Client", l.account_no as "Loan Account No", pl.`name` as "Product", \r\nf.`name` as Fund, \r\nl.principal_amount as "Loan Principal Amount", \r\nl.annual_nominal_interest_rate as " Annual Nominal Interest Rate", \r\ndate(l.disbursedon_date) as "Disbursed Date", \r\n\r\nl.total_expected_repayment_derived as "Total Loan (P+I+F+Pen)",\r\nl.total_repayment_derived as "Total Repaid (P+I+F+Pen)",\r\nlo.display_name as "Loan Officer"\r\n\r\nfrom m_office o \r\njoin m_office ounder on ounder.hierarchy like concat(o.hierarchy, \'%\')\r\nand ounder.hierarchy like concat(\'${currentUserHierarchy}\', \'%\')\r\njoin m_client c on c.office_id = ounder.id\r\njoin m_loan l on l.client_id = c.id\r\njoin m_product_loan pl on pl.id = l.product_id\r\nleft join m_staff lo on lo.id = l.loan_officer_id\r\nleft join m_currency cur on cur.code = l.currency_code\r\nleft join m_fund f on f.id = l.fund_id\r\nleft join m_loan_arrears_aging laa on laa.loan_id = l.id\r\nwhere o.id = ${officeId}\r\nand (l.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\nand (l.product_id = "${loanProductId}" or "-1" = "${loanProductId}")\r\nand (ifnull(l.loan_officer_id, -10) = "${loanOfficerId}" or "-1" = "${loanOfficerId}")\r\nand (ifnull(l.fund_id, -10) = ${fundId} or -1 = ${fundId})\r\nand (ifnull(l.loanpurpose_cv_id, -10) = ${loanPurposeId} or -1 = ${loanPurposeId})\r\nand l.disbursedon_date between \'${startDate}\' and \'${endDate}\'\r\nand l.loan_status_id = 300\r\ngroup by l.id\r\norder by ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'Individual Client \n\nReport', 1, 1), - (61, 'Aging Summary (Arrears in Months)', 'Table', NULL, 'Loan', 'SELECT \r\n IFNULL(periods.currencyName, periods.currency) as currency, \r\n periods.period_no \'Days In Arrears\', \r\n IFNULL(ars.loanId, 0) \'No Of Loans\', \r\n IFNULL(ars.principal,0.0) \'Original Principal\', \r\n IFNULL(ars.interest,0.0) \'Original Interest\', \r\n IFNULL(ars.prinPaid,0.0) \'Principal Paid\', \r\n IFNULL(ars.intPaid,0.0) \'Interest Paid\', \r\n IFNULL(ars.prinOverdue,0.0) \'Principal Overdue\', \r\n IFNULL(ars.intOverdue,0.0)\'Interest Overdue\'\r\nFROM \r\n /* full table of aging periods/currencies used combo to ensure each line represented */\r\n (SELECT curs.code as currency, curs.name as currencyName, pers.* from\r\n (SELECT \'On Schedule\' period_no,1 pid UNION\r\n SELECT \'0 - 30\',2 UNION\r\n SELECT \'30 - 60\',3 UNION\r\n SELECT \'60 - 90\',4 UNION\r\n SELECT \'90 - 180\',5 UNION\r\n SELECT \'180 - 360\',6 UNION\r\n SELECT \'> 360\',7 ) pers,\r\n (SELECT distinctrow moc.code, moc.name\r\n FROM m_office mo2\r\n INNER JOIN m_office ounder2 ON ounder2.hierarchy \r\n LIKE CONCAT(mo2.hierarchy, \'%\')\r\nAND ounder2.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc2 ON mc2.office_id=ounder2.id\r\n INNER JOIN m_loan ml2 ON ml2.client_id = mc2.id\r\n INNER JOIN m_organisation_currency moc ON moc.code = ml2.currency_code\r\n WHERE ml2.loan_status_id=300 /* active */\r\n AND mo2.id=${officeId}\r\nAND (ml2.currency_code = "${currencyId}" or "-1" = "${currencyId}")) curs) periods\r\n\r\n\r\nLEFT JOIN /* table of aging periods per currency with gaps if no applicable loans */\r\n(SELECT \r\n z.currency, z.arrPeriod, \r\n COUNT(z.loanId) as loanId, SUM(z.principal) as principal, SUM(z.interest) as interest, \r\n SUM(z.prinPaid) as prinPaid, SUM(z.intPaid) as intPaid, \r\n SUM(z.prinOverdue) as prinOverdue, SUM(z.intOverdue) as intOverdue\r\nFROM\r\n /*derived table just used to get arrPeriod value (was much slower to\r\n duplicate calc of minOverdueDate in inner query)\r\nmight not be now with derived fields but didn’t check */\r\n (SELECT x.loanId, x.currency, x.principal, x.interest, x.prinPaid, x.intPaid, x.prinOverdue, x.intOverdue,\r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<1, \'On Schedule\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<31, \'0 - 30\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<61, \'30 - 60\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<91, \'60 - 90\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<181, \'90 - 180\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<361, \'180 - 360\', \r\n \'> 360\')))))) AS arrPeriod\r\n\r\n FROM /* get the individual loan details */\r\n (SELECT ml.id AS loanId, ml.currency_code as currency,\r\n ml.principal_disbursed_derived as principal, \r\n ml.interest_charged_derived as interest, \r\n ml.principal_repaid_derived as prinPaid, \r\n ml.interest_repaid_derived intPaid,\r\n\r\n laa.principal_overdue_derived as prinOverdue,\r\n laa.interest_overdue_derived as intOverdue,\r\n\r\n IFNULL(laa.overdue_since_date_derived, curdate()) as minOverdueDate\r\n \r\n FROM m_office mo\r\n INNER JOIN m_office ounder ON ounder.hierarchy \r\n LIKE CONCAT(mo.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc ON mc.office_id=ounder.id\r\n INNER JOIN m_loan ml ON ml.client_id = mc.id\r\n LEFT JOIN m_loan_arrears_aging laa on laa.loan_id = ml.id\r\n WHERE ml.loan_status_id=300 /* active */\r\n AND mo.id=${officeId}\r\n AND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\n GROUP BY ml.id) x\r\n ) z \r\nGROUP BY z.currency, z.arrPeriod ) ars ON ars.arrPeriod=periods.period_no and ars.currency = periods.currency\r\nORDER BY periods.currency, periods.pid', 'Loan amount in arrears by branch', 1, 1), + (61, 'Aging Summary (Arrears in Months)', 'Table', NULL, 'Loan', 'SELECT \r\n IFNULL(periods.currencyName, periods.currency) as currency, \r\n periods.period_no \'Days In Arrears\', \r\n IFNULL(ars.loanId, 0) \'No Of Loans\', \r\n IFNULL(ars.principal,0.0) \'Original Principal\', \r\n IFNULL(ars.interest,0.0) \'Original Interest\', \r\n IFNULL(ars.prinPaid,0.0) \'Principal Paid\', \r\n IFNULL(ars.intPaid,0.0) \'Interest Paid\', \r\n IFNULL(ars.prinOverdue,0.0) \'Principal Overdue\', \r\n IFNULL(ars.intOverdue,0.0)\'Interest Overdue\'\r\nFROM \r\n /* full table of aging periods/currencies used combo to ensure each line represented */\r\n (SELECT curs.code as currency, curs.name as currencyName, pers.* from\r\n (SELECT \'On Schedule\' period_no,1 pid UNION\r\n SELECT \'0 - 30\',2 UNION\r\n SELECT \'30 - 60\',3 UNION\r\n SELECT \'60 - 90\',4 UNION\r\n SELECT \'90 - 180\',5 UNION\r\n SELECT \'180 - 360\',6 UNION\r\n SELECT \'> 360\',7 ) pers,\r\n (SELECT distinctrow moc.code, moc.name\r\n FROM m_office mo2\r\n INNER JOIN m_office ounder2 ON ounder2.hierarchy \r\n LIKE CONCAT(mo2.hierarchy, \'%\')\r\nAND ounder2.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc2 ON mc2.office_id=ounder2.id\r\n INNER JOIN m_loan ml2 ON ml2.client_id = mc2.id\r\n INNER JOIN m_organisation_currency moc ON moc.code = ml2.currency_code\r\n WHERE ml2.loan_status_id=300 /* active */\r\n AND mo2.id=${officeId}\r\nAND (ml2.currency_code = "${currencyId}" or "-1" = "${currencyId}")) curs) periods\r\n\r\n\r\nLEFT JOIN /* table of aging periods per currency with gaps if no applicable loans */\r\n(SELECT \r\n z.currency, z.arrPeriod, \r\n COUNT(z.loanId) as loanId, SUM(z.principal) as principal, SUM(z.interest) as interest, \r\n SUM(z.prinPaid) as prinPaid, SUM(z.intPaid) as intPaid, \r\n SUM(z.prinOverdue) as prinOverdue, SUM(z.intOverdue) as intOverdue\r\nFROM\r\n /*derived table just used to get arrPeriod value (was much slower to\r\n duplicate calc of minOverdueDate in inner query)\r\nmight not be now with derived fields but didn’t check */\r\n (SELECT x.loanId, x.currency, x.principal, x.interest, x.prinPaid, x.intPaid, x.prinOverdue, x.intOverdue,\r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<1, \'On Schedule\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<31, \'0 - 30\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<61, \'30 - 60\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<91, \'60 - 90\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<181, \'90 - 180\', \r\n IF(DATEDIFF(CURDATE(), minOverdueDate)<361, \'180 - 360\', \r\n \'> 360\')))))) AS arrPeriod\r\n\r\n FROM /* get the individual loan details */\r\n (SELECT ml.id AS loanId, ml.currency_code as currency,\r\n ml.principal_disbursed_derived as principal, \r\n ml.interest_charged_derived as interest, \r\n ml.principal_repaid_derived as prinPaid, \r\n ml.interest_repaid_derived intPaid,\r\n\r\n laa.principal_overdue_derived as prinOverdue,\r\n laa.interest_overdue_derived as intOverdue,\r\n\r\n IFNULL(laa.overdue_since_date_derived, curdate()) as minOverdueDate\r\n \r\n FROM m_office mo\r\n INNER JOIN m_office ounder ON ounder.hierarchy \r\n LIKE CONCAT(mo.hierarchy, \'%\')\r\nAND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n INNER JOIN m_client mc ON mc.office_id=ounder.id\r\n INNER JOIN m_loan ml ON ml.client_id = mc.id\r\n LEFT JOIN m_loan_arrears_aging laa on laa.loan_id = ml.id\r\n WHERE ml.loan_status_id=300 /* active */\r\n AND mo.id=${officeId}\r\n AND (ml.currency_code = "${currencyId}" or "-1" = "${currencyId}")\r\n GROUP BY ml.id) x\r\n ) z \r\nGROUP BY z.currency, z.arrPeriod ) ars ON ars.arrPeriod=periods.period_no and ars.currency = periods.currency\r\nORDER BY periods.currency, periods.pid', 'Loan amount in arrears by branch', 1, 1), (91, 'Loan Account Schedule', 'Pentaho', NULL, 'Loan', NULL, NULL, 1, 0), (92, 'Branch Expected Cash Flow', 'Pentaho', NULL, 'Loan', NULL, NULL, 1, 1), (93, 'Expected Payments By Date - Basic', 'Table', NULL, 'Loan', 'SELECT \r\n ounder.name \'Office\', \r\n IFNULL(ms.display_name,\'-\') \'Loan Officer\',\r\n mc.account_no \'Client Account Number\',\r\n mc.display_name \'Name\',\r\n mp.name \'Product\',\r\n ml.account_no \'Loan Account Number\',\r\n mr.duedate \'Due Date\',\r\n mr.installment \'Installment\',\r\n cu.display_symbol \'Currency\',\r\n mr.principal_amount- IFNULL(mr.principal_completed_derived,0) \'Principal Due\',\r\n mr.interest_amount- IFNULL(IFNULL(mr.interest_completed_derived,mr.interest_waived_derived),0) \'Interest Due\', \r\n IFNULL(mr.fee_charges_amount,0)- IFNULL(IFNULL(mr.fee_charges_completed_derived,mr.fee_charges_waived_derived),0) \'Fees Due\', \r\n IFNULL(mr.penalty_charges_amount,0)- IFNULL(IFNULL(mr.penalty_charges_completed_derived,mr.penalty_charges_waived_derived),0) \'Penalty Due\',\r\n (mr.principal_amount- IFNULL(mr.principal_completed_derived,0)) +\r\n (mr.interest_amount- IFNULL(IFNULL(mr.interest_completed_derived,mr.interest_waived_derived),0)) + \r\n (IFNULL(mr.fee_charges_amount,0)- IFNULL(IFNULL(mr.fee_charges_completed_derived,mr.fee_charges_waived_derived),0)) + \r\n (IFNULL(mr.penalty_charges_amount,0)- IFNULL(IFNULL(mr.penalty_charges_completed_derived,mr.penalty_charges_waived_derived),0)) \'Total Due\', \r\n mlaa.total_overdue_derived \'Total Overdue\'\r\n \r\n FROM m_office mo\r\n JOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\n \r\n AND ounder.hierarchy like CONCAT(\'${currentUserHierarchy}\', \'%\')\r\n \r\n LEFT JOIN m_client mc ON mc.office_id=ounder.id\r\n LEFT JOIN m_loan ml ON ml.client_id=mc.id AND ml.loan_status_id=300\r\n LEFT JOIN m_loan_arrears_aging mlaa ON mlaa.loan_id=ml.id\r\n LEFT JOIN m_loan_repayment_schedule mr ON mr.loan_id=ml.id AND mr.completed_derived=0\r\n LEFT JOIN m_product_loan mp ON mp.id=ml.product_id\r\n LEFT JOIN m_staff ms ON ms.id=ml.loan_officer_id\r\n LEFT JOIN m_currency cu ON cu.code=ml.currency_code\r\n WHERE mo.id=${officeId}\r\n AND (IFNULL(ml.loan_officer_id, -10) = "${loanOfficerId}" OR "-1" = "${loanOfficerId}")\r\n AND mr.duedate BETWEEN \'${startDate}\' AND \'${endDate}\'\r\n ORDER BY ounder.id,mr.duedate,ml.account_no', 'Test', 1, 1), @@ -6828,8 +6834,8 @@ INSERT INTO `stretchy_report` (`id`, `report_name`, `report_type`, `report_subty (163, 'Collection Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (164, 'Disbursal Report', 'Pentaho', NULL, 'Loans', NULL, NULL, 0, 1), (165, 'Savings Accounts Dormancy Report', 'Table', NULL, 'Savings', 'select cl.display_name as \'Client Display Name\',\r\nsa.account_no as \'Account Number\',\r\ncl.mobile_no as \'Mobile Number\',\r\n@lastdate:=(select IFNULL(max(sat.transaction_date),sa.activatedon_date) \r\n from m_savings_account_transaction as sat \r\n where sat.is_reversed = 0 \r\n and sat.transaction_type_enum in (1,2) \r\n and sat.savings_account_id = sa.id) as \'Date of Last Activity\',\r\nDATEDIFF(now(), @lastdate) as \'Days Since Last Activity\'\r\nfrom m_savings_account as sa \r\ninner join m_savings_product as sp on (sa.product_id = sp.id and sp.is_dormancy_tracking_active = 1) \r\nleft join m_client as cl on sa.client_id = cl.id \r\nwhere sa.sub_status_enum = ${subStatus}\r\nand cl.office_id = ${officeId}', NULL, 1, 1), - (166, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), - (167, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), + (166, 'Active Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId})\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’', 0, 1), + (167, 'Prospective Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT c.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", CONCAT(REPEAT("..", ((LENGTH(ounder.`hierarchy`) - LENGTH(\r\nREPLACE(ounder.`hierarchy`, \'.\', \'\')) - 1))), ounder.`name`) AS "officeName", \r\no.id AS "officeNumber"\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nLEFT JOIN r_enum_value r ON r.enum_name = \'status_enum\' AND r.enum_id = c.status_enum\r\nLEFT JOIN m_loan l ON l.client_id = c.id\r\nWHERE o.id = ${officeId} AND c.status_enum = 300 AND (IFNULL(c.staff_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.client_id IS NULL\r\nGROUP BY c.id\r\nORDER BY ounder.hierarchy, c.account_no', 'All clients with the status ‘Active’ who have never had a loan before', 0, 1), (168, 'Active Loan Clients', 'SMS', 'NonTriggered', 'Clients', 'SELECT \r\nc.id AS "id", \r\nc.firstname AS "firstName",\r\nc.middlename AS "middleName",\r\nc.lastname AS "lastName",\r\nc.display_name AS "fullName",\r\nc.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount", \r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nounder.id AS "officeNumber", \r\nl.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", COUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office o\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(o.hierarchy, \'%\')\r\nJOIN m_client c ON c.office_id = ounder.id\r\nJOIN m_loan l ON l.client_id = c.id\r\nJOIN m_product_loan pl ON pl.id = l.product_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = c.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = l.loan_officer_id\r\nLEFT JOIN m_currency cur ON cur.code = l.currency_code\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nWHERE o.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND l.loan_status_id = 300 AND (DATEDIFF(CURDATE(), l.disbursedon_date) BETWEEN ${cycleX} AND ${cycleY})\r\nGROUP BY l.id\r\nORDER BY ounder.hierarchy, l.currency_code, c.account_no, l.account_no', 'All clients with an outstanding loan between cycleX and cycleY days', 0, 1), (169, 'Loan in arrears', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\nmc.id AS "id", \r\nmc.firstname AS "firstName",\r\nmc.middlename AS "middleName",\r\nmc.lastname AS "lastName",\r\nmc.display_name AS "fullName",\r\nmc.mobile_no AS "mobileNo", \r\nml.principal_amount AS "loanAmount", \r\n(IFNULL(ml.principal_outstanding_derived, 0) + IFNULL(ml.interest_outstanding_derived, 0) + IFNULL(ml.fee_charges_outstanding_derived, 0) + IFNULL(ml.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nml.principal_disbursed_derived AS "loanDisbursed",\r\nlaa.overdue_since_date_derived AS "paymentDueDate",\r\nIFNULL(laa.total_overdue_derived, 0) AS "totalDue",\r\nounder.id AS "officeNumber", \r\nml.account_no AS "loanAccountId", \r\ngua.lastname AS "guarantorLastName", \r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ng.display_name AS "groupName"\r\n\r\nFROM m_office mo\r\nJOIN m_office ounder ON ounder.hierarchy LIKE CONCAT(mo.hierarchy, \'%\')\r\nINNER JOIN m_client mc ON mc.office_id=ounder.id\r\nINNER JOIN m_loan ml ON ml.client_id = mc.id\r\nINNER JOIN r_enum_value rev ON rev.enum_id=ml.loan_status_id AND rev.enum_name = \'loan_status_id\'\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=ml.id\r\nLEFT JOIN m_currency cur ON cur.code = ml.currency_code\r\nLEFT JOIN m_group_client gc ON gc.client_id = mc.id\r\nLEFT JOIN m_group g ON g.id = gc.group_id\r\nLEFT JOIN m_staff lo ON lo.id = ml.loan_officer_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = ml.id\r\nWHERE ml.loan_status_id=300 AND mo.id=${officeId} AND (IFNULL(ml.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), laa.overdue_since_date_derived) BETWEEN ${fromX} AND ${toY})\r\nGROUP BY ml.id\r\nORDER BY ounder.hierarchy, ml.currency_code, mc.account_no, ml.account_no', 'All clients with an outstanding loan in arrears between fromX and toY days', 0, 1), (170, 'Loan payments due', 'SMS', 'NonTriggered', 'Loan', 'SELECT \r\ncl.id AS "id", \r\ncl.firstname AS "firstName",\r\ncl.middlename AS "middleName",\r\ncl.lastname AS "lastName",\r\ncl.display_name AS "fullName",\r\ncl.mobile_no AS "mobileNo", \r\nl.principal_amount AS "loanAmount",\r\nof.id AS "officeNumber",\r\n(IFNULL(l.principal_outstanding_derived, 0) + IFNULL(l.interest_outstanding_derived, 0) + IFNULL(l.fee_charges_outstanding_derived, 0) + IFNULL(l.penalty_charges_outstanding_derived, 0)) AS "loanOutstanding",\r\nl.principal_disbursed_derived AS "loanDisbursed",\r\nls.duedate AS "paymentDueDate",\r\n(IFNULL(SUM(ls.principal_amount),0) - IFNULL(SUM(ls.principal_writtenoff_derived),0)\r\n + IFNULL(SUM(ls.interest_amount),0) - IFNULL(SUM(ls.interest_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.interest_waived_derived),0)\r\n + IFNULL(SUM(ls.fee_charges_amount),0) - IFNULL(SUM(ls.fee_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.fee_charges_waived_derived),0)\r\n + IFNULL(SUM(ls.penalty_charges_amount),0) - IFNULL(SUM(ls.penalty_charges_writtenoff_derived),0) \r\n - IFNULL(SUM(ls.penalty_charges_waived_derived),0)\r\n) AS "totalDue",\r\nlaa.total_overdue_derived AS "totalOverdue",\r\nl.account_no AS "loanAccountId",\r\ngua.lastname AS "guarantorLastName",\r\nCOUNT(gua.id) AS "numberOfGuarantors",\r\ngp.display_name AS "groupName"\r\n\r\nFROM m_office of\r\nLEFT JOIN m_client cl ON of.id = cl.office_id\r\nLEFT JOIN m_loan l ON cl.id = l.client_id\r\nLEFT JOIN m_group_client gc ON gc.client_id = cl.id\r\nLEFT JOIN m_group gp ON gp.id = l.group_id\r\nLEFT JOIN m_loan_repayment_schedule ls ON l.id = ls.loan_id\r\nLEFT JOIN m_guarantor gua ON gua.loan_id = l.id\r\nINNER JOIN m_loan_arrears_aging laa ON laa.loan_id=l.id\r\nWHERE of.id = ${officeId} AND (IFNULL(l.loan_officer_id, -10) = ${loanOfficerId} OR "-1" = ${loanOfficerId}) AND (DATEDIFF(CURDATE(), ls.duedate) BETWEEN ${fromX} AND ${toY}) \r\nAND (of.hierarchy LIKE CONCAT((\r\nSELECT ino.hierarchy\r\nFROM m_office ino\r\nWHERE ino.id = ${officeId}),"%"))\r\nGROUP BY l.id\r\nORDER BY of.hierarchy, l.currency_code, cl.account_no, l.account_no', 'All clients with an unpaid installment due on their loan between fromX and toY days', 0, 1),

~ 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 WSq^}D`$f!~$FrM0MW}K6?tcKiCG)!g literal 23552 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

~ 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 WSq^}D`$f!~$FrM0MW}K6?tcKiCG)!g diff --git a/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt b/fineract-provider/src/main/pentahoReports/Aging Detail(Pentaho).prpt index c5c1b89742fda0b3bffd95a5cc695b7c0ba0364a..37b96421f864ff19f7be82f1c7a83a08c4b562d5 100644 GIT binary patch literal 9083 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