You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fineract.apache.org by ma...@apache.org on 2016/01/28 06:47:04 UTC

[19/51] [partial] incubator-fineract git commit: initial code push

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4b1ec9ef/fineract-db/multi-tenant-demo-backups/latam-demo/datatables-on-latam-demo.sql
----------------------------------------------------------------------
diff --git a/fineract-db/multi-tenant-demo-backups/latam-demo/datatables-on-latam-demo.sql b/fineract-db/multi-tenant-demo-backups/latam-demo/datatables-on-latam-demo.sql
new file mode 100644
index 0000000..e3e5259
--- /dev/null
+++ b/fineract-db/multi-tenant-demo-backups/latam-demo/datatables-on-latam-demo.sql
@@ -0,0 +1,49 @@
+DROP TABLE IF EXISTS `latam_extra_client_details`;
+CREATE TABLE `latam_extra_client_details` (
+  `client_id` bigint(20) NOT NULL,
+  `Business Description` varchar(100) DEFAULT NULL,
+  `Years in Business` int(11) DEFAULT NULL,
+  `Gender_cd` int(11) DEFAULT NULL,
+  `Education_cv` varchar(60) DEFAULT NULL,
+  `Next Visit` date DEFAULT NULL,
+  `Highest Rate Paid` decimal(19,6) DEFAULT NULL,
+  `Comment` text,
+  PRIMARY KEY (`client_id`),
+  CONSTRAINT `FK_latam_extra_client_details` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `latam_family_details`;
+CREATE TABLE `latam_family_details` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `client_id` bigint(20) NOT NULL,
+  `Name` varchar(40) DEFAULT NULL,
+  `Date of Birth` date DEFAULT NULL,
+  `Points Score` int(11) DEFAULT NULL,
+  `Education_cd_Highest` int(11) DEFAULT NULL,
+  `Other Notes` text,
+  PRIMARY KEY (`id`),
+  KEY `FK_Extra Family Details Data_1` (`client_id`),
+  CONSTRAINT `FK_latam_family_details` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+DROP TABLE IF EXISTS `latam_extra_loan_details`;
+CREATE TABLE `latam_extra_loan_details` (
+  `loan_id` bigint(20) NOT NULL,
+  `Business Description` varchar(100) DEFAULT NULL,
+  `Years in Business` int(11) DEFAULT NULL,
+  `Gender_cd` int(11) DEFAULT NULL,
+  `Education_cv` varchar(60) DEFAULT NULL,
+  `Next Visit` date DEFAULT NULL,
+  `Highest Rate Paid` decimal(19,6) DEFAULT NULL,
+  `Comment` text,
+  PRIMARY KEY (`loan_id`),
+  CONSTRAINT `FK_latam_extra_loan_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+INSERT INTO `mifostenant-latam`.`m_code` (`code_name`, `is_system_defined`) VALUES ('Gender', 1);
+INSERT INTO `mifostenant-latam`.`m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (2, 'Male', 1); INSERT INTO `mifostenant-latam`.`m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (2, 'Female', 2);
+
+
+INSERT INTO `mifostenant-latam`.`m_code` (`code_name`, `is_system_defined`) VALUES ('Education', 1);
+INSERT INTO `mifostenant-latam`.`m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'Primary', 1); INSERT INTO `mifostenant-latam`.`m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'Secondary', 2); INSERT INTO `mifostenant-latam`.`m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'University', 3);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4b1ec9ef/fineract-db/old-schema-files/0001a-mifosplatform-core-ddl-latest.sql
----------------------------------------------------------------------
diff --git a/fineract-db/old-schema-files/0001a-mifosplatform-core-ddl-latest.sql b/fineract-db/old-schema-files/0001a-mifosplatform-core-ddl-latest.sql
new file mode 100644
index 0000000..6615c90
--- /dev/null
+++ b/fineract-db/old-schema-files/0001a-mifosplatform-core-ddl-latest.sql
@@ -0,0 +1,947 @@
+-- drop tables in base-schema
+SET foreign_key_checks = 0;
+
+-- drop accounting subsystem
+DROP TABLE IF EXISTS `acc_gl_account`;
+DROP TABLE IF EXISTS `acc_gl_closure`;
+DROP TABLE IF EXISTS `acc_gl_journal_entry`;
+DROP TABLE IF EXISTS `acc_product_mapping`;
+
+-- drop portfolio subsystem
+DROP TABLE IF EXISTS `c_configuration`;
+DROP TABLE IF EXISTS `m_appuser`;
+DROP TABLE IF EXISTS `m_appuser_role`;
+DROP TABLE IF EXISTS `m_calendar`;
+DROP TABLE IF EXISTS `m_calendar_instance`;
+DROP TABLE IF EXISTS `m_charge`;
+DROP TABLE IF EXISTS `m_client`;
+DROP TABLE IF EXISTS `m_client_identifier`;
+DROP TABLE IF EXISTS `m_code`;
+DROP TABLE IF EXISTS `m_code_value`;
+DROP TABLE IF EXISTS `m_currency`;
+DROP TABLE IF EXISTS `m_deposit_account`;
+DROP TABLE IF EXISTS `m_deposit_account_transaction`;
+DROP TABLE IF EXISTS `m_document`;
+DROP TABLE IF EXISTS `m_fund`;
+DROP TABLE IF EXISTS `m_group`;
+DROP TABLE IF EXISTS `m_group_level`;
+DROP TABLE IF EXISTS `m_group_client`;
+DROP TABLE IF EXISTS `m_guarantor`;
+DROP TABLE IF EXISTS `m_loan`;
+DROP TABLE IF EXISTS `m_loan_charge`;
+DROP TABLE IF EXISTS `m_loan_arrears_aging`;
+DROP TABLE IF EXISTS `m_loan_collateral`;
+DROP TABLE IF EXISTS `m_loan_officer_assignment_history`;
+DROP TABLE IF EXISTS `m_loan_repayment_schedule`;
+DROP TABLE IF EXISTS `m_loan_transaction`;
+DROP TABLE IF EXISTS `m_note`;
+DROP TABLE IF EXISTS `m_office`;
+DROP TABLE IF EXISTS `m_office_transaction`;
+DROP TABLE IF EXISTS `m_organisation_currency`;
+DROP TABLE IF EXISTS `m_permission`;
+DROP TABLE IF EXISTS `m_portfolio_command_source`;
+DROP TABLE IF EXISTS `m_product_deposit`;
+DROP TABLE IF EXISTS `m_product_loan`;
+DROP TABLE IF EXISTS `m_product_loan_charge`;
+DROP TABLE IF EXISTS `m_role`;
+DROP TABLE IF EXISTS `m_role_permission`;
+DROP TABLE IF EXISTS `m_savings_account`;
+DROP TABLE IF EXISTS `m_savings_account_transaction`;
+DROP TABLE IF EXISTS `m_savings_product`;
+DROP TABLE IF EXISTS `m_staff`;
+DROP TABLE IF EXISTS `ref_loan_transaction_processing_strategy`;
+DROP TABLE IF EXISTS `x_registered_table`;
+
+-- drop reporting related tables
+DROP TABLE IF EXISTS `r_enum_value`;
+DROP TABLE IF EXISTS `rpt_sequence`;
+DROP TABLE IF EXISTS `stretchy_parameter`;
+DROP TABLE IF EXISTS `stretchy_report`;
+DROP TABLE IF EXISTS `stretchy_report_parameter`;
+
+SET foreign_key_checks = 1;
+
+-- DDL for reference/lookup tables
+CREATE TABLE `m_currency` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `code` varchar(3) NOT NULL,
+  `decimal_places` smallint(5) NOT NULL,
+  `display_symbol` varchar(10) DEFAULT NULL,
+  `name` varchar(50) NOT NULL,
+  `internationalized_name_code` varchar(50) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `code` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_organisation_currency` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `code` varchar(3) NOT NULL,
+  `decimal_places` smallint(5) NOT NULL,
+  `name` varchar(50) NOT NULL,
+  `display_symbol` varchar(10) DEFAULT NULL,
+  `internationalized_name_code` varchar(50) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `ref_loan_transaction_processing_strategy` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `code` varchar(100) DEFAULT NULL,
+  `name` varchar(255) DEFAULT 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`),
+  UNIQUE KEY `ltp_strategy_code` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `c_configuration` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(50) DEFAULT NULL,
+  `enabled` tinyint(1) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_code` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `code_name` varchar(100) DEFAULT NULL,
+  `is_system_defined` TINYINT(1) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `code_name` (`code_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_code_value` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `code_id` int(11) NOT NULL,
+  `code_value` varchar(100) DEFAULT NULL,
+  `order_position` int(11) 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 DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_document` (
+  `id` int(20) NOT NULL AUTO_INCREMENT,
+  `parent_entity_type` varchar(50) NOT NULL,
+  `parent_entity_id` int(20) NOT NULL DEFAULT '0',
+  `name` varchar(250) NOT NULL,
+  `file_name` varchar(250) NOT NULL,
+  `size` int(20) DEFAULT '0',
+  `type` varchar(50) DEFAULT NULL,
+  `description` varchar(1000) DEFAULT NULL,
+  `location` varchar(500) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+/*not a major table - just intended for database reporting use for enums and values that would be hidden in java*/
+CREATE TABLE `r_enum_value` (
+  `enum_name` varchar(100) NOT NULL,
+  `enum_id` int(11) NOT NULL,
+  `enum_message_property` varchar(100) NOT NULL,
+  `enum_value` varchar(100) NOT NULL,
+  PRIMARY KEY (`enum_name`,`enum_id`),
+  UNIQUE KEY `enum_message_property` (`enum_name`,`enum_message_property`),
+  UNIQUE KEY `enum_value` (`enum_name`,`enum_value`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+/* used to link MySql tables to Mifos X application tables for additional data needs */
+CREATE TABLE `x_registered_table` (
+  `registered_table_name` varchar(50) NOT NULL,
+  `application_table_name` varchar(50) NOT NULL,
+  PRIMARY KEY (`registered_table_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `m_calendar` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `title` varchar(50) NOT NULL,
+  `description` varchar(100) DEFAULT NULL,
+  `location` varchar(50) DEFAULT NULL,
+  `start_date` date NOT NULL,
+  `end_date` date DEFAULT NULL,
+  `duration` smallint(6) DEFAULT NULL,
+  `calendar_type_enum` smallint(5) NOT NULL,
+  `repeating` tinyint(1) NOT NULL DEFAULT '0',
+  `recurrence` varchar(100) DEFAULT NULL,
+  `remind_by_enum` smallint(5) DEFAULT NULL,
+  `first_reminder` smallint(11) DEFAULT NULL,
+  `second_reminder` smallint(11) DEFAULT NULL,
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `lastmodified_date` datetime DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE IF NOT EXISTS `m_calendar_instance` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `calendar_id` bigint(20) NOT NULL,
+  `entity_id` bigint(20) NOT NULL,
+  `entity_type_enum` smallint(5) NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK_m_calendar_m_calendar_instance` (`calendar_id`),
+  CONSTRAINT `FK_m_calendar_m_calendar_instance` FOREIGN KEY (`calendar_id`) REFERENCES `m_calendar` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ================= end of reference/lookup tables =============
+
+-- DDL for office related tables
+CREATE TABLE `m_office` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `parent_id` bigint(20) DEFAULT NULL,
+  `hierarchy` varchar(100) DEFAULT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  `name` varchar(50) NOT NULL,
+  `opening_date` date NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `name_org` (`name`),
+  UNIQUE KEY `externalid_org` (`external_id`),
+  KEY `FK2291C477E2551DCC` (`parent_id`),
+  CONSTRAINT `FK2291C477E2551DCC` FOREIGN KEY (`parent_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_office_transaction` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `from_office_id` bigint(20) DEFAULT NULL,
+  `to_office_id` bigint(20) DEFAULT NULL,
+  `currency_code` varchar(3) NOT NULL,
+  `currency_digits` int(11) NOT NULL,
+  `transaction_amount` decimal(19,6) NOT NULL,
+  `transaction_date` date NOT NULL,
+  `description` varchar(100) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK1E37728B93C6C1B6` (`to_office_id`),
+  KEY `FK1E37728B783C5C25` (`from_office_id`),
+  CONSTRAINT `FK1E37728B783C5C25` FOREIGN KEY (`from_office_id`) REFERENCES `m_office` (`id`),
+  CONSTRAINT `FK1E37728B93C6C1B6` FOREIGN KEY (`to_office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ============ end of office related tables ==========
+
+-- DDL for admin tables
+CREATE TABLE `m_permission` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `grouping` varchar(45) DEFAULT NULL,
+  `code` varchar(100) NOT NULL,
+  `entity_name` varchar(100) DEFAULT NULL,
+  `action_name` varchar(100) DEFAULT NULL,
+  `can_maker_checker` tinyint(1) NOT NULL DEFAULT '1',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `code` (`code`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_role` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(100) NOT NULL,
+  `description` varchar(500) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `unq_name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_role_permission` (
+  `role_id` bigint(20) NOT NULL,
+  `permission_id` bigint(20) NOT NULL,
+  PRIMARY KEY (`role_id`,`permission_id`),
+  KEY `FK8DEDB04815CEC7AB` (`role_id`),
+  KEY `FK8DEDB048103B544B` (`permission_id`),
+  CONSTRAINT `FK8DEDB048103B544B` FOREIGN KEY (`permission_id`) REFERENCES `m_permission` (`id`),
+  CONSTRAINT `FK8DEDB04815CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_appuser` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+  `office_id` bigint(20) DEFAULT NULL,
+  `username` varchar(100) NOT NULL,
+  `firstname` varchar(100) NOT NULL,
+  `lastname` varchar(100) NOT NULL,
+  `password` varchar(255) NOT NULL,
+  `email` varchar(100) NOT NULL,
+  `firsttime_login_remaining` bit(1) NOT NULL,
+  `nonexpired` bit(1) NOT NULL,
+  `nonlocked` bit(1) NOT NULL,
+  `nonexpired_credentials` bit(1) NOT NULL,
+  `enabled` bit(1) NOT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `username_org` (`username`),
+  KEY `FKB3D587CE0DD567A` (`office_id`),
+  CONSTRAINT `FKB3D587CE0DD567A` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_appuser_role` (
+  `appuser_id` bigint(20) NOT NULL,
+  `role_id` bigint(20) NOT NULL,
+  PRIMARY KEY (`appuser_id`,`role_id`),
+  KEY `FK7662CE59B4100309` (`appuser_id`),
+  KEY `FK7662CE5915CEC7AB` (`role_id`),
+  CONSTRAINT `FK7662CE5915CEC7AB` FOREIGN KEY (`role_id`) REFERENCES `m_role` (`id`),
+  CONSTRAINT `FK7662CE59B4100309` FOREIGN KEY (`appuser_id`) REFERENCES `m_appuser` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ================ end of user admin tables ===============
+
+-- DDL for organisation wide related concepts
+CREATE TABLE `m_portfolio_command_source` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `action_name` varchar(50) NOT NULL,
+  `entity_name` varchar(50) NOT NULL,
+  `office_id` bigint(20) DEFAULT NULL,
+  `group_id` bigint(20) DEFAULT NULL,
+  `client_id` bigint(20) DEFAULT NULL,
+  `loan_id` bigint(20) DEFAULT NULL,
+  `savings_account_id` bigint(20) DEFAULT NULL,
+  `api_get_url` varchar(100) NOT NULL,
+  `resource_id` bigint(20) DEFAULT NULL,
+  `subresource_id` bigint(20) DEFAULT NULL,
+  `command_as_json` text NOT NULL,
+  `maker_id` bigint(20) NOT NULL,
+  `made_on_date` datetime NOT NULL,
+  `checker_id` bigint(20) DEFAULT NULL,
+  `checked_on_date` datetime DEFAULT NULL,
+  `processing_result_enum` smallint(5) NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK_m_maker_m_appuser` (`maker_id`),
+  KEY `FK_m_checker_m_appuser` (`checker_id`),
+  KEY `action_name` (`action_name`),
+  KEY `entity_name` (`entity_name`,`resource_id`),
+  KEY `made_on_date` (`made_on_date`),
+  KEY `checked_on_date` (`checked_on_date`),
+  KEY `processing_result_enum` (`processing_result_enum`),
+  KEY `office_id` (`office_id`),
+  KEY `group_id` (`office_id`),
+  KEY `client_id` (`office_id`),
+  KEY `loan_id` (`office_id`),
+  CONSTRAINT `FK_m_checker_m_appuser` FOREIGN KEY (`checker_id`) REFERENCES `m_appuser` (`id`),
+  CONSTRAINT `FK_m_maker_m_appuser` FOREIGN KEY (`maker_id`) REFERENCES `m_appuser` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_charge` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(100) DEFAULT NULL,
+  `currency_code` varchar(3) NOT NULL,
+  `charge_applies_to_enum` smallint(5) NOT NULL,
+  `charge_time_enum` smallint(5) NOT NULL,
+  `charge_calculation_enum` smallint(5) NOT NULL,
+  `amount` decimal(19,6) NOT NULL,
+  `is_penalty` tinyint(1) NOT NULL DEFAULT '0',
+  `is_active` tinyint(1) NOT NULL,
+  `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_fund` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(255) DEFAULT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `fund_name_org` (`name`),
+  UNIQUE KEY `fund_externalid_org` (`external_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_staff` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `is_loan_officer` tinyint(1) NOT NULL DEFAULT '0',
+  `office_id` bigint(20) DEFAULT NULL,
+  `firstname` varchar(50) DEFAULT NULL,
+  `lastname` varchar(50) DEFAULT NULL,
+  `display_name` varchar(100) NOT NULL,
+  `joining_date` date,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `display_name` (`display_name`),
+  KEY `FK_m_staff_m_office` (`office_id`),
+  CONSTRAINT `FK_m_staff_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ============ end of organisation wide related tables ===========
+
+-- DDL client/group related tables
+CREATE TABLE `m_group_level` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`parent_id` INT(11) NULL DEFAULT NULL,
+`super_parent` TINYINT(1) NOT NULL,
+`level_name` VARCHAR(100) NOT NULL,
+`recursable` TINYINT(1) NOT NULL,
+`can_have_clients` TINYINT(1) NOT NULL,
+PRIMARY KEY (`id`),
+INDEX `Parent_levelId_reference` (`parent_id`),
+CONSTRAINT `Parent_levelId_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group_level` (`id`)
+)ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_group` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `office_id` bigint(20) NOT NULL,
+  `staff_id` BIGINT(20) DEFAULT NULL,
+  `parent_id` BIGINT(20) NULL DEFAULT NULL,
+  `level_Id` INT(11) NOT NULL,
+  `hierarchy` VARCHAR(100) NULL DEFAULT NULL,
+  `name` varchar(100) NOT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `name` (`name`, `level_id`),
+  UNIQUE KEY `external_id` (`external_id`, `level_Id`),
+  KEY `office_id` (`office_id`),
+  KEY `staff_id` (`staff_id`),
+  CONSTRAINT `m_group_ibfk_1` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`),
+  CONSTRAINT `Parent_Id_reference` FOREIGN KEY (`parent_id`) REFERENCES `m_group` (`id`),
+  CONSTRAINT `FK_m_group_level` FOREIGN KEY (`level_Id`) REFERENCES `m_group_level` (`id`),
+  CONSTRAINT `FK_m_group_m_staff` FOREIGN KEY (`staff_id`) REFERENCES `m_staff` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_client` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `account_no` varchar(20) NOT NULL,
+  `office_id` bigint(20) NOT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  `firstname` varchar(50) DEFAULT NULL,
+  `middlename` varchar(50) DEFAULT NULL,
+  `lastname` varchar(50) DEFAULT NULL,
+  `fullname` varchar(100) DEFAULT NULL,
+  `display_name` varchar(100) NOT NULL,
+  `image_key` varchar(500) DEFAULT NULL,
+  `joined_date` date DEFAULT NULL,
+  `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `account_no_UNIQUE` (`account_no`),
+  UNIQUE KEY `external_id` (`external_id`),
+  KEY `FKCE00CAB3E0DD567A` (`office_id`),
+  CONSTRAINT `FKCE00CAB3E0DD567A` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_client_identifier` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `client_id` bigint(20) NOT NULL,
+  `document_type_id` int(11) NOT NULL,
+  `document_key` varchar(50) NOT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `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`),
+  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`),
+  CONSTRAINT `FK_m_client_document_m_code_value` FOREIGN KEY (`document_type_id`) REFERENCES `m_code_value` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_group_client` (
+  `group_id` bigint(20) NOT NULL,
+  `client_id` bigint(20) NOT NULL,
+  PRIMARY KEY (`group_id`,`client_id`),
+  KEY `client_id` (`client_id`),
+  CONSTRAINT `m_group_client_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`),
+  CONSTRAINT `m_group_client_ibfk_2` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- ==== end of client/group related tables ==========
+
+-- DDL for loan and loan related tables
+CREATE TABLE `m_product_loan` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `currency_code` varchar(3) NOT NULL,
+  `currency_digits` smallint(5) NOT NULL,
+  `principal_amount` decimal(19,6) NOT NULL,
+  `arrearstolerance_amount` decimal(19,6) DEFAULT NULL,
+  `name` varchar(100) NOT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  `fund_id` bigint(20) DEFAULT NULL,
+  `nominal_interest_rate_per_period` decimal(19,6) NOT NULL,
+  `interest_period_frequency_enum` smallint(5) NOT NULL,
+  `annual_nominal_interest_rate` decimal(19,6) NOT NULL,
+  `interest_method_enum` smallint(5) NOT NULL,
+  `interest_calculated_in_period_enum` smallint(5) NOT NULL DEFAULT '1',
+  `repay_every` smallint(5) NOT NULL,
+  `repayment_period_frequency_enum` smallint(5) NOT NULL,
+  `number_of_repayments` smallint(5) NOT NULL,
+  `amortization_method_enum` smallint(5) NOT NULL,
+  `accounting_type` smallint(5) NOT NULL,
+  `loan_transaction_strategy_id` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `unq_name` (`name`),
+  KEY `FKA6A8A7D77240145` (`fund_id`),
+  KEY `FK_ltp_strategy` (`loan_transaction_strategy_id`),
+  CONSTRAINT `FKA6A8A7D77240145` FOREIGN KEY (`fund_id`) REFERENCES `m_fund` (`id`),
+  CONSTRAINT `FK_ltp_strategy` FOREIGN KEY (`loan_transaction_strategy_id`) REFERENCES `ref_loan_transaction_processing_strategy` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_product_loan_charge` (
+  `product_loan_id` bigint(20) NOT NULL,
+  `charge_id` bigint(20) NOT NULL,
+  PRIMARY KEY (`product_loan_id`,`charge_id`),
+  KEY `charge_id` (`charge_id`),
+  CONSTRAINT `m_product_loan_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`),
+  CONSTRAINT `m_product_loan_charge_ibfk_2` FOREIGN KEY (`product_loan_id`) REFERENCES `m_product_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `account_no` varchar(20) NOT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  `client_id` bigint(20) DEFAULT NULL,
+  `group_id` bigint(20) DEFAULT NULL,
+  `product_id` bigint(20) DEFAULT NULL,
+  `fund_id` bigint(20) DEFAULT NULL,
+  `loan_officer_id` bigint(20) DEFAULT NULL,
+  `loanpurpose_cv_id` int(11) DEFAULT NULL,
+  `loan_status_id` smallint(5) NOT NULL,
+  `currency_code` varchar(3) NOT NULL,
+  `currency_digits` smallint(5) NOT NULL,
+  `principal_amount` decimal(19,6) NOT NULL,
+  `arrearstolerance_amount` decimal(19,6) DEFAULT NULL,
+  `nominal_interest_rate_per_period` decimal(19,6) NOT NULL,
+  `interest_period_frequency_enum` smallint(5) NOT NULL,
+  `annual_nominal_interest_rate` decimal(19,6) NOT NULL,
+  `interest_method_enum` smallint(5) NOT NULL,
+  `interest_calculated_in_period_enum` smallint(5) NOT NULL DEFAULT '1',
+  `term_frequency` smallint(5) NOT NULL DEFAULT '0',
+  `term_period_frequency_enum` smallint(5) NOT NULL DEFAULT '2',
+  `repay_every` smallint(5) NOT NULL,
+  `repayment_period_frequency_enum` smallint(5) NOT NULL,
+  `number_of_repayments` smallint(5) NOT NULL,
+  `amortization_method_enum` smallint(5) NOT NULL,
+  `submittedon_date` date DEFAULT NULL,
+  `submittedon_userid` bigint(20) DEFAULT NULL,
+  `approvedon_date` date DEFAULT NULL,
+  `approvedon_userid` bigint(20) DEFAULT NULL,
+  `expected_disbursedon_date` date DEFAULT NULL,
+  `expected_firstrepaymenton_date` date DEFAULT NULL,
+  `interest_calculated_from_date` date DEFAULT NULL,
+  `disbursedon_date` date DEFAULT NULL,
+  `disbursedon_userid` bigint(20) DEFAULT NULL,
+  `expected_maturedon_date` date DEFAULT NULL,
+  `maturedon_date` date DEFAULT NULL,
+  `closedon_date` date DEFAULT NULL,
+  `closedon_userid` bigint(20) DEFAULT NULL,
+  `total_charges_due_at_disbursement_derived` decimal(19,6) DEFAULT NULL,
+  `principal_disbursed_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `principal_repaid_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `principal_writtenoff_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `principal_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_charged_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_repaid_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_waived_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_writtenoff_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_charged_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_repaid_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_waived_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_writtenoff_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_charged_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_repaid_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_waived_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_writtenoff_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_expected_repayment_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_repayment_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_expected_costofloan_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_costofloan_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_waived_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_writtenoff_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_outstanding_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `rejectedon_date` date DEFAULT NULL,
+  `rejectedon_userid` bigint(20) DEFAULT NULL,
+  `rescheduledon_date` date DEFAULT NULL,
+  `withdrawnon_date` date DEFAULT NULL,
+  `withdrawnon_userid` bigint(20) DEFAULT NULL,
+  `writtenoffon_date` date DEFAULT NULL,
+  `loan_transaction_strategy_id` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `loan_account_no_UNIQUE` (`account_no`),
+  UNIQUE KEY `loan_externalid_UNIQUE` (`external_id`),
+  KEY `FKB6F935D87179A0CB` (`client_id`),
+  KEY `FKB6F935D8C8D4B434` (`product_id`),
+  KEY `FK7C885877240145` (`fund_id`),
+  KEY `FK_loan_ltp_strategy` (`loan_transaction_strategy_id`),
+  KEY `FK_m_loan_m_staff` (`loan_officer_id`),
+  KEY `group_id` (`group_id`),
+  KEY `FK_m_loanpurpose_codevalue` (`loanpurpose_cv_id`),
+  KEY `FK_submittedon_userid` (`submittedon_userid`),
+  KEY `FK_approvedon_userid` (`approvedon_userid`),
+  KEY `FK_rejectedon_userid` (`rejectedon_userid`),
+  KEY `FK_withdrawnon_userid` (`withdrawnon_userid`),
+  KEY `FK_disbursedon_userid` (`disbursedon_userid`),
+  KEY `FK_closedon_userid` (`closedon_userid`),
+  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`),
+  CONSTRAINT `FK_approvedon_userid` FOREIGN KEY (`approvedon_userid`) REFERENCES `m_appuser` (`id`),
+  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_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 `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_arrears_aging` (
+  `loan_id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `principal_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `interest_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `fee_charges_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `penalty_charges_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `total_overdue_derived` decimal(19,6) NOT NULL DEFAULT '0.000000',
+  `overdue_since_date_derived` date DEFAULT NULL,
+  PRIMARY KEY (`loan_id`),
+  CONSTRAINT `m_loan_arrears_aging_ibfk_1` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_guarantor` (
+	`id` BIGINT(20) NOT NULL AUTO_INCREMENT,
+	`loan_id` BIGINT(20) NOT NULL,
+        `client_reln_cv_id` INT(11) DEFAULT NULL,
+	`type_enum` SMALLINT(5) NOT NULL,
+	`entity_id` BIGINT(20) NULL DEFAULT NULL,
+	`firstname` VARCHAR(50) NULL DEFAULT NULL,
+	`lastname` VARCHAR(50) NULL DEFAULT NULL,
+	`dob` DATE NULL DEFAULT NULL,
+	`address_line_1` VARCHAR(500) NULL DEFAULT NULL,
+	`address_line_2` VARCHAR(500) NULL DEFAULT NULL,
+	`city` VARCHAR(50) NULL DEFAULT NULL,
+	`state` VARCHAR(50) NULL DEFAULT NULL,
+	`country` VARCHAR(50) NULL DEFAULT NULL,
+	`zip` VARCHAR(20) NULL DEFAULT NULL,
+	`house_phone_number` VARCHAR(20) NULL DEFAULT NULL,
+	`mobile_number` VARCHAR(20) NULL DEFAULT NULL,
+	`comment` VARCHAR(500) NULL DEFAULT NULL,
+	PRIMARY KEY (`id`),
+	INDEX `FK_m_guarantor_m_loan` (`loan_id`),
+        CONSTRAINT `FK_m_guarantor_m_code_value` FOREIGN KEY (`client_reln_cv_id`) REFERENCES `m_code_value` (`id`)
+	CONSTRAINT `FK_m_guarantor_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_charge` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `loan_id` bigint(20) NOT NULL,
+  `charge_id` bigint(20) NOT NULL,
+  `is_penalty` tinyint(1) NOT NULL DEFAULT '0',
+  `charge_time_enum` smallint(5) NOT NULL,
+  `due_for_collection_as_of_date` date DEFAULT NULL,
+  `charge_calculation_enum` smallint(5) NOT NULL,
+  `calculation_percentage` decimal(19,6) DEFAULT NULL,
+  `calculation_on_amount` 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',
+  PRIMARY KEY (`id`),
+  KEY `charge_id` (`charge_id`),
+  KEY `m_loan_charge_ibfk_2` (`loan_id`),
+  CONSTRAINT `m_loan_charge_ibfk_1` FOREIGN KEY (`charge_id`) REFERENCES `m_charge` (`id`),
+  CONSTRAINT `m_loan_charge_ibfk_2` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_collateral` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `loan_id` bigint(20) NOT NULL,
+  `type_cv_id` int(11) NOT NULL,
+  `value` DECIMAL(19,6) DEFAULT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK_collateral_m_loan` (`loan_id`),
+  KEY `FK_collateral_code_value` (`type_cv_id`),
+  CONSTRAINT `FK_collateral_m_loan` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`),
+  CONSTRAINT `FK_collateral_code_value` FOREIGN KEY (`type_cv_id`) REFERENCES `m_code_value` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_officer_assignment_history` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `loan_id` bigint(20) NOT NULL,
+  `loan_officer_id` bigint(20) DEFAULT NULL,
+  `start_date` date NOT NULL,
+  `end_date` date DEFAULT NULL,
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `lastmodified_date` datetime DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `fk_m_loan_officer_assignment_history_0001` (`loan_id`),
+  KEY `fk_m_loan_officer_assignment_history_0002` (`loan_officer_id`),
+  CONSTRAINT `fk_m_loan_officer_assignment_history_0001` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`),
+  CONSTRAINT `fk_m_loan_officer_assignment_history_0002` FOREIGN KEY (`loan_officer_id`) REFERENCES `m_staff` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_repayment_schedule` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `loan_id` bigint(20) NOT NULL,
+  `fromdate` date DEFAULT NULL,
+  `duedate` date NOT NULL,
+  `installment` smallint(5) NOT NULL,
+  `principal_amount` decimal(19,6) DEFAULT NULL,
+  `principal_completed_derived` decimal(19,6) DEFAULT NULL,
+  `principal_writtenoff_derived` decimal(19,6) DEFAULT NULL,
+  `interest_amount` decimal(19,6) DEFAULT NULL,
+  `interest_completed_derived` decimal(19,6) DEFAULT NULL,
+  `interest_writtenoff_derived` decimal(19,6) DEFAULT NULL,
+  `fee_charges_amount` decimal(19,6) DEFAULT NULL,
+  `fee_charges_completed_derived` decimal(19,6) DEFAULT NULL,
+  `fee_charges_writtenoff_derived` decimal(19,6) DEFAULT NULL,
+  `fee_charges_waived_derived` decimal(19,6) DEFAULT NULL,
+  `penalty_charges_amount` decimal(19,6) DEFAULT NULL,
+  `penalty_charges_completed_derived` decimal(19,6) DEFAULT NULL,
+  `penalty_charges_writtenoff_derived` decimal(19,6) DEFAULT NULL,
+  `penalty_charges_waived_derived` decimal(19,6) DEFAULT NULL,
+  `completed_derived` bit(1) NOT NULL,
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `lastmodified_date` datetime DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  `interest_waived_derived` decimal(19,6) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK488B92AA40BE0710` (`loan_id`),
+  CONSTRAINT `FK488B92AA40BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_loan_transaction` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `loan_id` bigint(20) NOT NULL,
+  `is_reversed` TINYINT(1) NOT NULL,
+  `transaction_type_enum` smallint(5) NOT NULL,
+  `transaction_date` date NOT NULL,
+  `amount` decimal(19,6) NOT NULL,
+  `principal_portion_derived` decimal(19,6) DEFAULT NULL,
+  `interest_portion_derived` decimal(19,6) DEFAULT NULL,
+  `fee_charges_portion_derived` decimal(19,6) DEFAULT NULL,
+  `penalty_charges_portion_derived` decimal(19,6) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FKCFCEA42640BE0710` (`loan_id`),
+  CONSTRAINT `FKCFCEA42640BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+-- ======== end of loan related tables ==========
+
+CREATE TABLE `m_savings_product` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(100) NOT NULL,
+  `description` varchar(500) NOT NULL,
+  `currency_code` varchar(3) NOT NULL,
+  `currency_digits` smallint(5) NOT NULL,
+  `nominal_interest_rate_per_period` decimal(19,6) NOT NULL,
+  `nominal_interest_rate_period_frequency_enum` smallint(5) NOT NULL,
+  `interest_period_enum` SMALLINT(5) NOT NULL,
+  `interest_calculation_type_enum` SMALLINT(5) NOT NULL,
+  `interest_calculation_days_in_year_type_enum` SMALLINT(5) NOT NULL,
+  `min_required_opening_balance` decimal(19,6) DEFAULT NULL,
+  `lockin_period_frequency` decimal(19,6) DEFAULT NULL,
+  `lockin_period_frequency_enum` smallint(5) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `sp_unq_name` (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_savings_account` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `account_no` varchar(20) NOT NULL,
+  `external_id` varchar(100) DEFAULT NULL,
+  `client_id` bigint(20) DEFAULT NULL,
+  `group_id` bigint(20) DEFAULT NULL,
+  `product_id` bigint(20) DEFAULT NULL,
+  `status_enum` SMALLINT(5) NOT NULL DEFAULT 300,
+  `activation_date` DATE DEFAULT NULL,
+  `currency_code` varchar(3) NOT NULL,
+  `currency_digits` smallint(5) NOT NULL,
+  `nominal_interest_rate_per_period` decimal(19,6) NOT NULL,
+  `nominal_interest_rate_period_frequency_enum` smallint(5) NOT NULL,
+  `annual_nominal_interest_rate` decimal(19,6) NOT NULL,
+  `interest_period_enum` SMALLINT(5) NOT NULL,
+  `interest_calculation_type_enum` SMALLINT(5) NOT NULL,
+  `interest_calculation_days_in_year_type_enum` SMALLINT(5) NOT NULL,
+  `min_required_opening_balance` decimal(19,6) DEFAULT NULL,
+  `lockin_period_frequency` decimal(19,6) DEFAULT NULL,
+  `lockin_period_frequency_enum` smallint(5) DEFAULT NULL,
+  `lockedin_until_date_derived` DATE DEFAULT NULL,
+  `total_deposits_derived` decimal(19,6) DEFAULT NULL,
+  `total_withdrawals_derived` decimal(19,6) DEFAULT NULL,
+  `total_interest_earned_derived` decimal(19,6) DEFAULT NULL,
+  `total_interest_posted_derived` decimal(19,6) DEFAULT NULL,
+  `account_balance_derived` decimal(19,6) NOT NULL DEFAULT 0,
+  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`),
+  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`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `m_savings_account_transaction` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `savings_account_id` bigint(20) NOT NULL,
+  `transaction_type_enum` smallint(5) NOT NULL,
+  `transaction_date` date NOT NULL,
+  `amount` decimal(19,6) NOT NULL,
+  `is_reversed` tinyint(1) NOT NULL,
+  `running_balance_derived` DECIMAL(19,6) NULL,
+  `balance_number_of_days_derived` INT NULL,
+  `balance_end_date_derived` DATE NULL,
+  `cumulative_balance_derived` DECIMAL(19,6) NULL,
+  PRIMARY KEY (`id`),
+  KEY `FKSAT0000000001` (`savings_account_id`),
+  CONSTRAINT `FKSAT0000000001` FOREIGN KEY (`savings_account_id`) REFERENCES `m_savings_account` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- end of savings account related tables
+
+-- DDL for notes associated with all client/group and financial accounts
+CREATE TABLE `m_note` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `client_id` bigint(20) DEFAULT NULL,
+  `group_id` bigint(20) DEFAULT NULL,
+  `loan_id` bigint(20) DEFAULT NULL,
+  `loan_transaction_id` bigint(20) DEFAULT NULL,
+  `note_type_enum` smallint(5) NOT NULL,
+  `note` varchar(1000) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `lastmodified_date` datetime DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK7C9708924D26803` (`loan_transaction_id`),
+  KEY `FK7C97089541F0A56` (`createdby_id`),
+  KEY `FK7C970897179A0CB` (`client_id`),
+  KEY `FK_m_note_m_group` (`group_id`),
+  KEY `FK7C970898F889C3F` (`lastmodifiedby_id`),
+  KEY `FK7C9708940BE0710` (`loan_id`),
+  CONSTRAINT `FK7C9708924D26803` FOREIGN KEY (`loan_transaction_id`) REFERENCES `m_loan_transaction` (`id`),
+  CONSTRAINT `FK7C9708940BE0710` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`),
+  CONSTRAINT `FK7C97089541F0A56` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`),
+  CONSTRAINT `FK7C970897179A0CB` FOREIGN KEY (`client_id`) REFERENCES `m_client` (`id`),
+  CONSTRAINT `FK_m_note_m_group` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`),
+  CONSTRAINT `FK7C970898F889C3F` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+-- DDL for accounting sub system related tables
+CREATE TABLE `acc_gl_account` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `name` varchar(45) NOT NULL,
+  `parent_id` bigint(20) DEFAULT NULL,
+  `gl_code` varchar(45) NOT NULL,
+  `disabled` tinyint(1) NOT NULL DEFAULT '0',
+  `manual_journal_entries_allowed` tinyint(1) NOT NULL DEFAULT '1',
+  `account_usage` tinyint(1) NOT NULL DEFAULT '2',
+  `classification_enum` smallint(5) NOT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `acc_gl_code` (`gl_code`),
+  KEY `FK_ACC_0000000001` (`parent_id`),
+  CONSTRAINT `FK_ACC_0000000001` FOREIGN KEY (`parent_id`) REFERENCES `acc_gl_account` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `acc_gl_closure` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `office_id` bigint(20) NOT NULL,
+  `closing_date` date NOT NULL,
+  `is_deleted` int(20) NOT NULL DEFAULT '0',
+  `createdby_id` bigint(20) DEFAULT NULL,
+  `lastmodifiedby_id` bigint(20) DEFAULT NULL,
+  `created_date` datetime DEFAULT NULL,
+  `lastmodified_date` datetime DEFAULT NULL,
+  `comments` varchar(500) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `office_id_closing_date` (`office_id`,`closing_date`),
+  KEY `FK_acc_gl_closure_m_office` (`office_id`),
+  KEY `FK_acc_gl_closure_m_appuser` (`createdby_id`),
+  KEY `FK_acc_gl_closure_m_appuser_2` (`lastmodifiedby_id`),
+  CONSTRAINT `FK_acc_gl_closure_m_appuser` FOREIGN KEY (`createdby_id`) REFERENCES `m_appuser` (`id`),
+  CONSTRAINT `FK_acc_gl_closure_m_appuser_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`),
+  CONSTRAINT `FK_acc_gl_closure_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `acc_gl_journal_entry` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `account_id` bigint(20) NOT NULL,
+  `office_id` bigint(20) NOT NULL,
+  `reversal_id` bigint(20) DEFAULT NULL,
+  `transaction_id` varchar(50) NOT NULL,
+  `reversed` tinyint(1) NOT NULL DEFAULT '0',
+  `manual_entry` TINYINT(1) NOT NULL DEFAULT '0',
+  `entry_date` date NOT NULL,
+  `type_enum` smallint(5) NOT NULL,
+  `amount` decimal(19,6) NOT NULL,
+  `description` varchar(500) DEFAULT NULL,
+  `entity_type_enum` smallint(5) DEFAULT NULL,
+  `entity_id` bigint(20) DEFAULT NULL,
+  `createdby_id` bigint(20) NOT NULL,
+  `lastmodifiedby_id` bigint(20) NOT NULL,
+  `created_date` datetime NOT NULL,
+  `lastmodified_date` datetime NOT NULL,
+  PRIMARY KEY (`id`),
+  KEY `FK_acc_gl_journal_entry_m_office` (`office_id`),
+  KEY `FK_acc_gl_journal_entry_m_appuser` (`createdby_id`),
+  KEY `FK_acc_gl_journal_entry_m_appuser_2` (`lastmodifiedby_id`),
+  KEY `FK_acc_gl_journal_entry_acc_gl_journal_entry` (`reversal_id`),
+  KEY `FK_acc_gl_journal_entry_acc_gl_account` (`account_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`),
+  CONSTRAINT `FK_acc_gl_journal_entry_m_appuser_2` FOREIGN KEY (`lastmodifiedby_id`) REFERENCES `m_appuser` (`id`),
+  CONSTRAINT `FK_acc_gl_journal_entry_m_office` FOREIGN KEY (`office_id`) REFERENCES `m_office` (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `acc_product_mapping` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT,
+  `gl_account_id` bigint(20) DEFAULT NULL,
+  `product_id` bigint(20) DEFAULT NULL,
+  `product_type` smallint(5) DEFAULT NULL,
+  `financial_account_type` smallint(5) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+-- =========== end of accounting related tables ==========
+
+-- DDL for reporting related tables
+CREATE TABLE `rpt_sequence` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `stretchy_parameter` (
+  `parameter_id` int(11) NOT NULL AUTO_INCREMENT,
+  `parameter_name` varchar(45) NOT NULL,
+  `parameter_variable` varchar(45) DEFAULT NULL,
+  `parameter_label` varchar(45) NOT NULL,
+  `parameter_displayType` varchar(45) NOT NULL,
+  `parameter_FormatType` varchar(10) NOT NULL,
+  `parameter_default` varchar(45) NOT NULL,
+  `special` varchar(1) DEFAULT NULL,
+  `selectOne` varchar(1) DEFAULT NULL,
+  `selectAll` varchar(1) DEFAULT NULL,
+  `parameter_sql` text,
+  `parent_parameter_id` int(11) NULL DEFAULT NULL,
+  PRIMARY KEY (`parameter_id`),
+  UNIQUE KEY `name_UNIQUE` (`parameter_name`),
+  INDEX `fk_stretchy_parameter_0001_idx` (`parent_parameter_id`),
+  CONSTRAINT `fk_stretchy_parameter_0001` FOREIGN KEY (`parent_parameter_id`) REFERENCES `stretchy_parameter` (`parameter_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `stretchy_report` (
+  `report_id` int(11) NOT NULL AUTO_INCREMENT,
+  `report_name` varchar(100) NOT NULL,
+  `report_type` varchar(20) NOT NULL,
+  `report_subtype` varchar(20) DEFAULT NULL,
+  `report_category` varchar(45) DEFAULT NULL,
+  `report_sql` text,
+  `description` text,
+  `core_report` tinyint(1) DEFAULT '0',
+  `use_report` tinyint(1) DEFAULT '0',
+  PRIMARY KEY (`report_id`),
+  UNIQUE KEY `report_name_UNIQUE` (`report_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+CREATE TABLE `stretchy_report_parameter` (
+  `report_id` int(11) NOT NULL,
+  `parameter_id` int(11) NOT NULL,
+  `report_parameter_name` varchar(45) DEFAULT NULL,
+  PRIMARY KEY (`report_id`,`parameter_id`),
+  UNIQUE KEY `report_id_name_UNIQUE` (`report_id`,`report_parameter_name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+-- =========== end of reporting related tables ============
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4b1ec9ef/fineract-db/old-schema-files/0002-mifosx-base-reference-data-utf8.sql
----------------------------------------------------------------------
diff --git a/fineract-db/old-schema-files/0002-mifosx-base-reference-data-utf8.sql b/fineract-db/old-schema-files/0002-mifosx-base-reference-data-utf8.sql
new file mode 100644
index 0000000..1393ea9
--- /dev/null
+++ b/fineract-db/old-schema-files/0002-mifosx-base-reference-data-utf8.sql
@@ -0,0 +1,321 @@
+-- currency symbols may not apply through command line on windows so use a different client like mysql workbench
+
+INSERT INTO `ref_loan_transaction_processing_strategy`
+(`id`,`code`,`name`)
+VALUES
+(1, 'mifos-standard-strategy', 'Mifos style'),
+(2, 'heavensfamily-strategy', 'Heavensfamily'),
+(3, 'creocore-strategy', 'Creocore'),
+(4, 'rbi-india-strategy', 'RBI (India)');
+
+INSERT INTO `c_configuration`
+(`name`, `enabled`)
+VALUES 
+('maker-checker', 0);
+
+INSERT INTO `r_enum_value` 
+VALUES 
+('amortization_method_enum',0,'Equal principle payments','Equal principle payments'),
+('amortization_method_enum',1,'Equal installments','Equal installments'),
+('interest_calculated_in_period_enum',0,'Daily','Daily'),
+('interest_calculated_in_period_enum',1,'Same as repayment period','Same as repayment period'),
+('interest_method_enum',0,'Declining Balance','Declining Balance'),
+('interest_method_enum',1,'Flat','Flat'),
+('interest_period_frequency_enum',2,'Per month','Per month'),
+('interest_period_frequency_enum',3,'Per year','Per year'),
+('loan_status_id',100,'Submitted and awaiting approval','Submitted and awaiting approval'),
+('loan_status_id',200,'Approved','Approved'),
+('loan_status_id',300,'Active','Active'),
+('loan_status_id',400,'Withdrawn by client','Withdrawn by client'),
+('loan_status_id',500,'Rejected','Rejected'),
+('loan_status_id',600,'Closed','Closed'),
+('loan_status_id',601,'Written-Off','Written-Off'),
+('loan_status_id',602,'Rescheduled','Rescheduled'),
+('loan_status_id',700,'Overpaid','Overpaid'),
+('loan_transaction_strategy_id',1,'mifos-standard-strategy','Mifos style'),
+('loan_transaction_strategy_id',2,'heavensfamily-strategy','Heavensfamily'),
+('loan_transaction_strategy_id',3,'creocore-strategy','Creocore'),
+('loan_transaction_strategy_id',4,'rbi-india-strategy','RBI (India)'),
+('processing_result_enum',0,'invalid','Invalid'),
+('processing_result_enum',1,'processed','Processed'),
+('processing_result_enum',2,'awaiting.approval','Awaiting Approval'),
+('processing_result_enum',3,'rejected','Rejected'),
+('repayment_period_frequency_enum',0,'Days','Days'),
+('repayment_period_frequency_enum',1,'Weeks','Weeks'),
+('repayment_period_frequency_enum',2,'Months','Months'),
+('term_period_frequency_enum',0,'Days','Days'),
+('term_period_frequency_enum',1,'Weeks','Weeks'),
+('term_period_frequency_enum',2,'Months','Months'),
+('term_period_frequency_enum',3,'Years','Years');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '1', 'Disbursement', 'Disbursement');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '2', 'Repayment', 'Repayment');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '3', 'Contra', 'Contra');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '4', 'Waive Interest', 'Waive Interest');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '5', 'Repayment At Disbursement', 'Repayment At Disbursement');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '6', 'Write-Off', 'Write-Off');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '7', 'Marked for Rescheduling', 'Marked for Rescheduling');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '8', 'Recovery Repayment', 'Recovery Repayment');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '9', 'Waive Charges', 'Waive Charges');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '10', 'Apply Charges', 'Apply Charges');
+
+INSERT INTO `r_enum_value` (`enum_name`, `enum_id`, `enum_message_property`, `enum_value`) 
+VALUES ('transaction_type_enum', '11', 'Apply Interest', 'Apply Interest');
+
+INSERT INTO `m_currency`
+(`id`,`code`,`decimal_places`,`display_symbol`,`name`, `internationalized_name_code`)
+VALUES 
+(1,'AED',2,NULL,'UAE Dirham','currency.AED'),
+(2,'AFN',2,NULL,'Afghanistan Afghani','currency.AFN'),
+(3,'ALL',2,NULL,'Albanian Lek','currency.ALL'),
+(4,'AMD',2,NULL,'Armenian Dram','currency.AMD'),
+(5,'ANG',2,NULL,'Netherlands Antillian Guilder','currency.ANG'),
+(6,'AOA',2,NULL,'Angolan Kwanza','currency.AOA'),
+(7,'ARS',2,'$','Argentine Peso','currency.ARS'),
+(8,'AUD',2,'A$','Australian Dollar','currency.AUD'),
+(9,'AWG',2,NULL,'Aruban Guilder','currency.AWG'),
+(10,'AZM',2,NULL,'Azerbaijanian Manat','currency.AZM'),
+(11,'BAM',2,NULL,'Bosnia and Herzegovina Convertible Marks','currency.BAM'),
+(12,'BBD',2,NULL,'Barbados Dollar','currency.BBD'),
+(13,'BDT',2,NULL,'Bangladesh Taka','currency.BDT'),
+(14,'BGN',2,NULL,'Bulgarian Lev','currency.BGN'),
+(15,'BHD',3,NULL,'Bahraini Dinar','currency.BHD'),
+(16,'BIF',0,NULL,'Burundi Franc','currency.BIF'),
+(17,'BMD',2,NULL,'Bermudian Dollar','currency.BMD'),
+(18,'BND',2,'B$','Brunei Dollar','currency.BND'),
+(19,'BOB',2,'Bs.','Bolivian Boliviano','currency.BOB'),
+(20,'BRL',2,'R$','Brazilian Real','currency.BRL'),
+(21,'BSD',2,NULL,'Bahamian Dollar','currency.BSD'),
+(22,'BTN',2,NULL,'Bhutan Ngultrum','currency.BTN'),
+(23,'BWP',2,NULL,'Botswana Pula','currency.BWP'),
+(24,'BYR',0,NULL,'Belarussian Ruble','currency.BYR'),
+(25,'BZD',2,'BZ$','Belize Dollar','currency.BZD'),
+(26,'CAD',2,NULL,'Canadian Dollar','currency.CAD'),
+(27,'CDF',2,NULL,'Franc Congolais','currency.CDF'),
+(28,'CHF',2,NULL,'Swiss Franc','currency.CHF'),
+(29,'CLP',0,'$','Chilean Peso','currency.CLP'),
+(30,'CNY',2,NULL,'Chinese Yuan Renminbi','currency.CNY'),
+(31,'COP',2,'$','Colombian Peso','currency.COP'),
+(32,'CRC',2,'₡','Costa Rican Colon','currency.CRC'),
+(33,'CSD',2,NULL,'Serbian Dinar','currency.CSD'),
+(34,'CUP',2,'$MN','Cuban Peso','currency.CUP'),
+(35,'CVE',2,NULL,'Cape Verde Escudo','currency.CVE'),
+(36,'CYP',2,NULL,'Cyprus Pound','currency.CYP'),
+(37,'CZK',2,NULL,'Czech Koruna','currency.CZK'),
+(38,'DJF',0,NULL,'Djibouti Franc','currency.DJF'),
+(39,'DKK',2,NULL,'Danish Krone','currency.DKK'),
+(40,'DOP',2,'RD$','Dominican Peso','currency.DOP'),
+(41,'DZD',2,NULL,'Algerian Dinar','currency.DZD'),
+(42,'EEK',2,NULL,'Estonian Kroon','currency.EEK'),
+(43,'EGP',2,NULL,'Egyptian Pound','currency.EGP'),
+(44,'ERN',2,NULL,'Eritrea Nafka','currency.ERN'),
+(45,'ETB',2,NULL,'Ethiopian Birr','currency.ETB'),
+(46,'EUR',2,'€','Euro','currency.EUR'),
+(47,'FJD',2,NULL,'Fiji Dollar','currency.FJD'),
+(48,'FKP',2,NULL,'Falkland Islands Pound','currency.FKP'),
+(49,'GBP',2,NULL,'Pound Sterling','currency.GBP'),
+(50,'GEL',2,NULL,'Georgian Lari','currency.GEL'),
+(51,'GHC',2,'GHc','Ghana Cedi','currency.GHC'),
+(52,'GIP',2,NULL,'Gibraltar Pound','currency.GIP'),
+(53,'GMD',2,NULL,'Gambian Dalasi','currency.GMD'),
+(54,'GNF',0,NULL,'Guinea Franc','currency.GNF'),
+(55,'GTQ',2,'Q','Guatemala Quetzal','currency.GTQ'),
+(56,'GYD',2,NULL,'Guyana Dollar','currency.GYD'),
+(57,'HKD',2,NULL,'Hong Kong Dollar','currency.HKD'),
+(58,'HNL',2,'L','Honduras Lempira','currency.HNL'),
+(59,'HRK',2,NULL,'Croatian Kuna','currency.HRK'),
+(60,'HTG',2,'G','Haiti Gourde','currency.HTG'),
+(61,'HUF',2,NULL,'Hungarian Forint','currency.HUF'),
+(62,'IDR',2,NULL,'Indonesian Rupiah','currency.IDR'),
+(63,'ILS',2,NULL,'New Israeli Shekel','currency.ILS'),
+(64,'INR',2,'₹','Indian Rupee','currency.INR'),
+(65,'IQD',3,NULL,'Iraqi Dinar','currency.IQD'),
+(66,'IRR',2,NULL,'Iranian Rial','currency.IRR'),
+(67,'ISK',0,NULL,'Iceland Krona','currency.ISK'),
+(68,'JMD',2,NULL,'Jamaican Dollar','currency.JMD'),
+(69,'JOD',3,NULL,'Jordanian Dinar','currency.JOD'),
+(70,'JPY',0,NULL,'Japanese Yen','currency.JPY'),
+(71,'KES',2,'KSh','Kenyan Shilling','currency.KES'),
+(72,'KGS',2,NULL,'Kyrgyzstan Som','currency.KGS'),
+(73,'KHR',2,NULL,'Cambodia Riel','currency.KHR'),
+(74,'KMF',0,NULL,'Comoro Franc','currency.KMF'),
+(75,'KPW',2,NULL,'North Korean Won','currency.KPW'),
+(76,'KRW',0,NULL,'Korean Won','currency.KRW'),
+(77,'KWD',3,NULL,'Kuwaiti Dinar','currency.KWD'),
+(78,'KYD',2,NULL,'Cayman Islands Dollar','currency.KYD'),
+(79,'KZT',2,NULL,'Kazakhstan Tenge','currency.KZT'),
+(80,'LAK',2,NULL,'Lao Kip','currency.LAK'),
+(81,'LBP',2,'L£','Lebanese Pound','currency.LBP'),
+(82,'LKR',2,NULL,'Sri Lanka Rupee','currency.LKR'),
+(83,'LRD',2,NULL,'Liberian Dollar','currency.LRD'),
+(84,'LSL',2,NULL,'Lesotho Loti','currency.LSL'),
+(85,'LTL',2,NULL,'Lithuanian Litas','currency.LTL'),
+(86,'LVL',2,NULL,'Latvian Lats','currency.LVL'),
+(87,'LYD',3,NULL,'Libyan Dinar','currency.LYD'),
+(88,'MAD',2,NULL,'Moroccan Dirham','currency.MAD'),
+(89,'MDL',2,NULL,'Moldovan Leu','currency.MDL'),
+(90,'MGA',2,NULL,'Malagasy Ariary','currency.MGA'),
+(91,'MKD',2,NULL,'Macedonian Denar','currency.MKD'),
+(92,'MMK',2,'K','Myanmar Kyat','currency.MMK'),
+(93,'MNT',2,NULL,'Mongolian Tugrik','currency.MNT'),
+(94,'MOP',2,NULL,'Macau Pataca','currency.MOP'),
+(95,'MRO',2,NULL,'Mauritania Ouguiya','currency.MRO'),
+(96,'MTL',2,NULL,'Maltese Lira','currency.MTL'),
+(97,'MUR',2,NULL,'Mauritius Rupee','currency.MUR'),
+(98,'MVR',2,NULL,'Maldives Rufiyaa','currency.MVR'),
+(99,'MWK',2,NULL,'Malawi Kwacha','currency.MWK'),
+(100,'MXN',2,'$','Mexican Peso','currency.MXN'),
+(101,'MYR',2,NULL,'Malaysian Ringgit','currency.MYR'),
+(102,'MZM',2,NULL,'Mozambique Metical','currency.MZM'),
+(103,'NAD',2,NULL,'Namibia Dollar','currency.NAD'),
+(104,'NGN',2,NULL,'Nigerian Naira','currency.NGN'),
+(105,'NIO',2,'C$','Nicaragua Cordoba Oro','currency.NIO'),
+(106,'NOK',2,NULL,'Norwegian Krone','currency.NOK'),
+(107,'NPR',2,NULL,'Nepalese Rupee','currency.NPR'),
+(108,'NZD',2,NULL,'New Zealand Dollar','currency.NZD'),
+(109,'OMR',3,NULL,'Rial Omani','currency.OMR'),
+(110,'PAB',2,'B/.','Panama Balboa','currency.PAB'),
+(111,'PEN',2,'S/.','Peruvian Nuevo Sol','currency.PEN'),
+(112,'PGK',2,NULL,'Papua New Guinea Kina','currency.PGK'),
+(113,'PHP',2,NULL,'Philippine Peso','currency.PHP'),
+(114,'PKR',2,NULL,'Pakistan Rupee','currency.PKR'),
+(115,'PLN',2,NULL,'Polish Zloty','currency.PLN'),
+(116,'PYG',0,'₲','Paraguayan Guarani','currency.PYG'),
+(117,'QAR',2,NULL,'Qatari Rial','currency.QAR'),
+(118,'RON',2,NULL,'Romanian Leu','currency.RON'),
+(119,'RUB',2,NULL,'Russian Ruble','currency.RUB'),
+(120,'RWF',0,NULL,'Rwanda Franc','currency.RWF'),
+(121,'SAR',2,NULL,'Saudi Riyal','currency.SAR'),
+(122,'SBD',2,NULL,'Solomon Islands Dollar','currency.SBD'),
+(123,'SCR',2,NULL,'Seychelles Rupee','currency.SCR'),
+(124,'SDD',2,NULL,'Sudanese Dinar','currency.SDD'),
+(125,'SEK',2,NULL,'Swedish Krona','currency.SEK'),
+(126,'SGD',2,NULL,'Singapore Dollar','currency.SGD'),
+(127,'SHP',2,NULL,'St Helena Pound','currency.SHP'),
+(128,'SIT',2,NULL,'Slovenian Tolar','currency.SIT'),
+(129,'SKK',2,NULL,'Slovak Koruna','currency.SKK'),
+(130,'SLL',2,NULL,'Sierra Leone Leone','currency.SLL'),
+(131,'SOS',2,NULL,'Somali Shilling','currency.SOS'),
+(132,'SRD',2,NULL,'Surinam Dollar','currency.SRD'),
+(133,'STD',2,NULL,'Sao Tome and Principe Dobra','currency.STD'),
+(134,'SVC',2,NULL,'El Salvador Colon','currency.SVC'),
+(135,'SYP',2,NULL,'Syrian Pound','currency.SYP'),
+(136,'SZL',2,NULL,'Swaziland Lilangeni','currency.SZL'),
+(137,'THB',2,NULL,'Thai Baht','currency.THB'),
+(138,'TJS',2,NULL,'Tajik Somoni','currency.TJS'),
+(139,'TMM',2,NULL,'Turkmenistan Manat','currency.TMM'),
+(140,'TND',3,'DT','Tunisian Dinar','currency.TND'),
+(141,'TOP',2,NULL,'Tonga Pa\'anga','currency.TOP'),
+(142,'TRY',2,NULL,'Turkish Lira','currency.TRY'),
+(143,'TTD',2,NULL,'Trinidad and Tobago Dollar','currency.TTD'),
+(144,'TWD',2,NULL,'New Taiwan Dollar','currency.TWD'),
+(145,'TZS',2,NULL,'Tanzanian Shilling','currency.TZS'),
+(146,'UAH',2,NULL,'Ukraine Hryvnia','currency.UAH'),
+(147,'UGX',2,'USh','Uganda Shilling','currency.UGX'),
+(148,'USD',2,'$','US Dollar','currency.USD'),
+(149,'UYU',2,'$U','Peso Uruguayo','currency.UYU'),
+(150,'UZS',2,NULL,'Uzbekistan Sum','currency.UZS'),
+(151,'VEB',2,'Bs.F.','Venezuelan Bolivar','currency.VEB'),
+(152,'VND',2,NULL,'Vietnamese Dong','currency.VND'),
+(153,'VUV',0,NULL,'Vanuatu Vatu','currency.VUV'),
+(154,'WST',2,NULL,'Samoa Tala','currency.WST'),
+(155,'XAF',0,NULL,'CFA Franc BEAC','currency.XAF'),
+(156,'XCD',2,NULL,'East Caribbean Dollar','currency.XCD'),
+(157,'XDR',5,NULL,'SDR (Special Drawing Rights)','currency.XDR'),
+(158,'XOF',0, 'CFA','CFA Franc BCEAO','currency.XOF'),
+(159,'XPF',0,NULL,'CFP Franc','currency.XPF'),
+(160,'YER',2,NULL,'Yemeni Rial','currency.YER'),
+(161,'ZAR',2, 'R','South African Rand','currency.ZAR'),
+(162,'ZMK',2,NULL,'Zambian Kwacha','currency.ZMK'),
+(163,'ZWD',2,NULL,'Zimbabwe Dollar','currency.ZWD');
+-- ======== end of currencies ==
+
+INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `name`, `display_symbol`, `internationalized_name_code`) 
+VALUES (21,'USD',2,'US Dollar','$','currency.USD');
+
+INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`) 
+VALUES 
+(1,NULL,'.','1','Head Office','2009-01-01');
+
+INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) 
+VALUES (1, NULL, 1, 'Center', 1, 0);
+INSERT INTO `m_group_level` (`id`, `parent_id`, `super_parent`, `level_name`, `recursable`, `can_have_clients`) 
+VALUES (2, 1, 0, 'Group', 0, 1);
+
+
+
+-- create single code and code value for client identifiers
+INSERT INTO `m_code`
+(`code_name`, `is_system_defined`) 
+VALUES 
+('Customer Identifier',1),
+('LoanCollateral',1),
+('LoanPurpose',1),
+('Gender',1),
+('YesNo',1),
+('GuarantorRelationship',1);
+
+INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
+select mc.id, 'Passport', 1
+from m_code mc
+where mc.`code_name` = "Customer Identifier";
+
+INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
+select mc.id, 'Id', 2
+from m_code mc
+where mc.`code_name` = "Customer Identifier";
+
+INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
+select mc.id, 'Drivers License', 3
+from m_code mc
+where mc.`code_name` = "Customer Identifier";
+
+INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
+select mc.id, 'Any Other Id Type', 4
+from m_code mc
+where mc.`code_name` = "Customer Identifier";
+
+-- Adding a few Default Guarantor Relationships
+insert into m_code_value (code_id,code_value,order_position) 
+	select id,"Spouse",0 
+	from m_code 
+	where m_code.code_name="GuarantorRelationship";
+
+insert into m_code_value (code_id,code_value,order_position) 
+	select id,"Parent",0 
+	from m_code 
+	where m_code.code_name="GuarantorRelationship";
+
+insert into m_code_value (code_id,code_value,order_position) 
+	select id,"Sibling",0 
+	from m_code 
+	where m_code.code_name="GuarantorRelationship";
+
+insert into m_code_value (code_id,code_value,order_position) 
+	select id,"Business Associate",0 
+	from m_code 
+	where m_code.code_name="GuarantorRelationship";
+
+insert into m_code_value (code_id,code_value,order_position) 
+	select id,"Other",0 
+	from m_code 
+	where m_code.code_name="GuarantorRelationship";
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-fineract/blob/4b1ec9ef/fineract-db/old-schema-files/0003-mifosx-permissions-and-authorisation-utf8.sql
----------------------------------------------------------------------
diff --git a/fineract-db/old-schema-files/0003-mifosx-permissions-and-authorisation-utf8.sql b/fineract-db/old-schema-files/0003-mifosx-permissions-and-authorisation-utf8.sql
new file mode 100644
index 0000000..aaf726a
--- /dev/null
+++ b/fineract-db/old-schema-files/0003-mifosx-permissions-and-authorisation-utf8.sql
@@ -0,0 +1,334 @@
+
+-- ========= roles and permissions =========
+
+/*
+this scripts removes all current m_role_permission and m_permission entries
+and then inserts new m_permission entries and just one m_role_permission entry
+which gives the role (id 1 - super user) an ALL_FUNCTIONS permission
+
+If you had other roles set up with specific permissions you will have to set up their permissions again.
+*/
+
+-- truncate `m_role_permission`;
+-- truncate `m_permission`;
+-- truncate `x_registered_table`;
+
+INSERT INTO `m_permission`
+(`grouping`,`code`,`entity_name`,`action_name`,`can_maker_checker`) VALUES 
+('special','ALL_FUNCTIONS',NULL,NULL,0),
+('special','ALL_FUNCTIONS_READ',NULL,NULL,0),
+('special', 'CHECKER_SUPER_USER', NULL, NULL, '0'),
+('special','REPORTING_SUPER_USER',NULL,NULL,0),
+('authorisation','READ_PERMISSION','PERMISSION','READ',0),
+('authorisation','PERMISSIONS_ROLE','ROLE','PERMISSIONS',1),
+('authorisation','CREATE_ROLE','ROLE','CREATE',1),
+('authorisation','CREATE_ROLE_CHECKER','ROLE','CREATE',0),
+('authorisation','READ_ROLE','ROLE','READ',0),
+('authorisation','UPDATE_ROLE','ROLE','UPDATE',1),
+('authorisation','UPDATE_ROLE_CHECKER','ROLE','UPDATE',0),
+('authorisation','DELETE_ROLE','ROLE','DELETE',1),
+('authorisation','DELETE_ROLE_CHECKER','ROLE','DELETE',0),
+('authorisation','CREATE_USER','USER','CREATE',1),
+('authorisation','CREATE_USER_CHECKER','USER','CREATE',0),
+('authorisation','READ_USER','USER','READ',0),
+('authorisation','UPDATE_USER','USER','UPDATE',1),
+('authorisation','UPDATE_USER_CHECKER','USER','UPDATE',0),
+('authorisation','DELETE_USER','USER','DELETE',1),
+('authorisation','DELETE_USER_CHECKER','USER','DELETE',0),
+('configuration','READ_CONFIGURATION','CONFIGURATION','READ',1),
+('configuration','UPDATE_CONFIGURATION','CONFIGURATION','UPDATE',1),
+('configuration','UPDATE_CONFIGURATION_CHECKER','CONFIGURATION','UPDATE',0),
+('configuration','READ_CODE','CODE','READ',0),
+('configuration','CREATE_CODE','CODE','CREATE',1),
+('configuration','CREATE_CODE_CHECKER','CODE','CREATE',0),
+('configuration','UPDATE_CODE','CODE','UPDATE',1),
+('configuration','UPDATE_CODE_CHECKER','CODE','UPDATE',0),
+('configuration','DELETE_CODE','CODE','DELETE',1),
+('configuration','DELETE_CODE_CHECKER','CODE','DELETE',0),
+('configuration', 'READ_CODEVALUE', 'CODEVALUE', 'READ', '0'),
+('configuration', 'CREATE_CODEVALUE', 'CODEVALUE', 'CREATE', '1'),
+('configuration', 'CREATE_CODEVALUE_CHECKER', 'CODEVALUE', 'CREATE', '0'),
+('configuration', 'UPDATE_CODEVALUE', 'CODEVALUE', 'UPDATE', '1'),
+('configuration', 'UPDATE_CODEVALUE_CHECKER', 'CODEVALUE', 'UPDATE', '0'),
+('configuration', 'DELETE_CODEVALUE', 'CODEVALUE', 'DELETE', '1'),
+('configuration', 'DELETE_CODEVALUE_CHECKER', 'CODEVALUE', 'DELETE', '0'),
+('configuration','READ_CURRENCY','CURRENCY','READ',0),
+('configuration','UPDATE_CURRENCY','CURRENCY','UPDATE',1),
+('configuration','UPDATE_CURRENCY_CHECKER','CURRENCY','UPDATE',0),
+('configuration', 'UPDATE_PERMISSION', 'PERMISSION', 'UPDATE', '1'),
+('configuration', 'UPDATE_PERMISSION_CHECKER', 'PERMISSION', 'UPDATE', '0'),
+('configuration', 'READ_DATATABLE', 'DATATABLE', 'READ', '0'),
+('configuration', 'REGISTER_DATATABLE', 'DATATABLE', 'REGISTER', '1'),
+('configuration', 'REGISTER_DATATABLE_CHECKER', 'DATATABLE', 'REGISTER', '0'),
+('configuration', 'DEREGISTER_DATATABLE', 'DATATABLE', 'DEREGISTER', '1'),
+('configuration', 'DEREGISTER_DATATABLE_CHECKER', 'DATATABLE', 'DEREGISTER', '0'),
+('configuration', 'READ_AUDIT', 'AUDIT', 'READ', '0'),
+('configuration', 'CREATE_CALENDAR', 'CALENDAR', 'CREATE', '0'),
+('configuration', 'READ_CALENDAR', 'CALENDAR', 'READ', '0'),
+('configuration', 'UPDATE_CALENDAR', 'CALENDAR', 'UPDATE', '0'),
+('configuration', 'DELETE_CALENDAR', 'CALENDAR', 'DELETE', '0'),
+('configuration', 'CREATE_CALENDAR_CHECKER', 'CALENDAR', 'CREATE', '0'),
+('configuration', 'UPDATE_CALENDAR_CHECKER', 'CALENDAR', 'UPDATE', '0'),
+('configuration', 'DELETE_CALENDAR_CHECKER', 'CALENDAR', 'DELETE', '0'),
+('organisation', 'READ_MAKERCHECKER', 'MAKERCHECKER', 'READ', '0'),
+('organisation', 'READ_CHARGE', 'CHARGE', 'READ', '0'),
+('organisation', 'CREATE_CHARGE', 'CHARGE', 'CREATE', '1'),
+('organisation', 'CREATE_CHARGE_CHECKER', 'CHARGE', 'CREATE', '0'),
+('organisation', 'UPDATE_CHARGE', 'CHARGE', 'UPDATE', '1'),
+('organisation', 'UPDATE_CHARGE_CHECKER', 'CHARGE', 'UPDATE', '0'),
+('organisation', 'DELETE_CHARGE', 'CHARGE', 'DELETE', '1'),
+('organisation', 'DELETE_CHARGE_CHECKER', 'CHARGE', 'DELETE', '0'),
+('organisation', 'READ_FUND', 'FUND', 'READ', '0'),
+('organisation', 'CREATE_FUND', 'FUND', 'CREATE', '1'),
+('organisation', 'CREATE_FUND_CHECKER', 'FUND', 'CREATE', '0'),
+('organisation', 'UPDATE_FUND', 'FUND', 'UPDATE', '1'),
+('organisation', 'UPDATE_FUND_CHECKER', 'FUND', 'UPDATE', '0'),
+('organisation', 'DELETE_FUND', 'FUND', 'DELETE', '1'),
+('organisation', 'DELETE_FUND_CHECKER', 'FUND', 'DELETE', '0'),
+('organisation', 'READ_LOANPRODUCT', 'LOANPRODUCT', 'READ', '0'),
+('organisation', 'CREATE_LOANPRODUCT', 'LOANPRODUCT', 'CREATE', '1'),
+('organisation', 'CREATE_LOANPRODUCT_CHECKER', 'LOANPRODUCT', 'CREATE', '0'),
+('organisation', 'UPDATE_LOANPRODUCT', 'LOANPRODUCT', 'UPDATE', '1'),
+('organisation', 'UPDATE_LOANPRODUCT_CHECKER', 'LOANPRODUCT', 'UPDATE', '0'),
+('organisation', 'DELETE_LOANPRODUCT', 'LOANPRODUCT', 'DELETE', '1'),
+('organisation', 'DELETE_LOANPRODUCT_CHECKER', 'LOANPRODUCT', 'DELETE', '0'),
+('organisation', 'READ_OFFICE', 'OFFICE', 'READ', '0'),
+('organisation', 'CREATE_OFFICE', 'OFFICE', 'CREATE', '1'),
+('organisation', 'CREATE_OFFICE_CHECKER', 'OFFICE', 'CREATE', '0'),
+('organisation', 'UPDATE_OFFICE', 'OFFICE', 'UPDATE', '1'),
+('organisation', 'UPDATE_OFFICE_CHECKER', 'OFFICE', 'UPDATE', '0'),
+('organisation', 'READ_OFFICETRANSACTION', 'OFFICETRANSACTION', 'READ', '0'),
+('organisation', 'DELETE_OFFICE_CHECKER', 'OFFICE', 'DELETE', '0'),
+('organisation', 'CREATE_OFFICETRANSACTION', 'OFFICETRANSACTION', 'CREATE', '1'),
+('organisation', 'CREATE_OFFICETRANSACTION_CHECKER', 'OFFICETRANSACTION', 'CREATE', '0'),
+('organisation', 'DELETE_OFFICETRANSACTION', 'OFFICETRANSACTION', 'DELETE', 1),
+('organisation', 'DELETE_OFFICETRANSACTION_CHECKER', 'OFFICETRANSACTION', 'DELETE', 0),
+('organisation', 'READ_STAFF', 'STAFF', 'READ', '0'),
+('organisation', 'CREATE_STAFF', 'STAFF', 'CREATE', '1'),
+('organisation', 'CREATE_STAFF_CHECKER', 'STAFF', 'CREATE', '0'),
+('organisation', 'UPDATE_STAFF', 'STAFF', 'UPDATE', '1'),
+('organisation', 'UPDATE_STAFF_CHECKER', 'STAFF', 'UPDATE', '0'),
+('organisation', 'DELETE_STAFF', 'STAFF', 'DELETE', '1'),
+('organisation', 'DELETE_STAFF_CHECKER', 'STAFF', 'DELETE', '0'),
+('organisation', 'READ_SAVINGSPRODUCT', 'SAVINGSPRODUCT', 'READ', '0'),
+('organisation', 'CREATE_SAVINGSPRODUCT', 'SAVINGSPRODUCT', 'CREATE', '1'),
+('organisation', 'CREATE_SAVINGSPRODUCT_CHECKER', 'SAVINGSPRODUCT', 'CREATE', '0'),
+('organisation', 'UPDATE_SAVINGSPRODUCT', 'SAVINGSPRODUCT', 'UPDATE', '1'),
+('organisation', 'UPDATE_SAVINGSPRODUCT_CHECKER', 'SAVINGSPRODUCT', 'UPDATE', '0'),
+('organisation', 'DELETE_SAVINGSPRODUCT', 'SAVINGSPRODUCT', 'DELETE', '1'),
+('organisation', 'DELETE_SAVINGSPRODUCT_CHECKER', 'SAVINGSPRODUCT', 'DELETE', '0'),
+('portfolio', 'READ_LOAN', 'LOAN', 'READ', '0'),
+('portfolio', 'CREATE_LOAN', 'LOAN', 'CREATE', '1'),
+('portfolio', 'CREATE_LOAN_CHECKER', 'LOAN', 'CREATE', '0'),
+('portfolio', 'UPDATE_LOAN', 'LOAN', 'UPDATE', '1'),
+('portfolio', 'UPDATE_LOAN_CHECKER', 'LOAN', 'UPDATE', '0'),
+('portfolio', 'DELETE_LOAN', 'LOAN', 'DELETE', '1'),
+('portfolio', 'DELETE_LOAN_CHECKER', 'LOAN', 'DELETE', '0'),
+-- ('portfolio', 'CREATEHISTORIC_LOAN', 'LOAN', 'CREATEHISTORIC', '1'),
+-- ('portfolio', 'CREATEHISTORIC_LOAN_CHECKER', 'LOAN', 'CREATEHISTORIC', '0'),
+-- ('portfolio', 'UPDATEHISTORIC_LOAN', 'LOAN', 'UPDATEHISTORIC', '1'),
+-- ('portfolio', 'UPDATEHISTORIC_LOAN_CHECKER', 'LOAN', 'UPDATEHISTORIC', '0'),
+('portfolio', 'READ_CLIENT', 'CLIENT', 'READ', '0'),
+('portfolio', 'CREATE_CLIENT', 'CLIENT', 'CREATE', '1'),
+('portfolio', 'CREATE_CLIENT_CHECKER', 'CLIENT', 'CREATE', '0'),
+('portfolio', 'UPDATE_CLIENT', 'CLIENT', 'UPDATE', '1'),
+('portfolio', 'UPDATE_CLIENT_CHECKER', 'CLIENT', 'UPDATE', '0'),
+('portfolio', 'DELETE_CLIENT', 'CLIENT', 'DELETE', '1'),
+('portfolio', 'DELETE_CLIENT_CHECKER', 'CLIENT', 'DELETE', '0'),
+('portfolio', 'READ_CLIENTIMAGE', 'CLIENTIMAGE', 'READ', '0'),
+('portfolio', 'CREATE_CLIENTIMAGE', 'CLIENTIMAGE', 'CREATE', '1'),
+('portfolio', 'CREATE_CLIENTIMAGE_CHECKER', 'CLIENTIMAGE', 'CREATE', '0'),
+('portfolio', 'DELETE_CLIENTIMAGE', 'CLIENTIMAGE', 'DELETE', '1'),
+('portfolio', 'DELETE_CLIENTIMAGE_CHECKER', 'CLIENTIMAGE', 'DELETE', '0'),
+('portfolio', 'READ_CLIENTNOTE', 'CLIENTNOTE', 'READ', '0'),
+('portfolio', 'CREATE_CLIENTNOTE', 'CLIENTNOTE', 'CREATE', '1'),
+('portfolio', 'CREATE_CLIENTNOTE_CHECKER', 'CLIENTNOTE', 'CREATE', '0'),
+('portfolio', 'UPDATE_CLIENTNOTE', 'CLIENTNOTE', 'UPDATE', '1'),
+('portfolio', 'UPDATE_CLIENTNOTE_CHECKER', 'CLIENTNOTE', 'UPDATE', '0'),
+('portfolio', 'DELETE_CLIENTNOTE', 'CLIENTNOTE', 'DELETE', '1'),
+('portfolio', 'DELETE_CLIENTNOTE_CHECKER', 'CLIENTNOTE', 'DELETE', '0'),
+('portfolio', 'READ_GROUPNOTE', 'GROUPNOTE', 'READ', '0'),
+('portfolio', 'CREATE_GROUPNOTE', 'GROUPNOTE', 'CREATE', '1'),
+('portfolio', 'UPDATE_GROUPNOTE', 'GROUPNOTE', 'UPDATE', '1'),
+('portfolio', 'DELETE_GROUPNOTE', 'GROUPNOTE', 'DELETE', '1'),
+('portfolio', 'CREATE_GROUPNOTE_CHECKER', 'GROUPNOTE', 'CREATE', '0'),
+('portfolio', 'UPDATE_GROUPNOTE_CHECKER', 'GROUPNOTE', 'UPDATE', '0'),
+('portfolio', 'DELETE_GROUPNOTE_CHECKER', 'GROUPNOTE', 'DELETE', '0'),
+('portfolio', 'READ_LOANNOTE', 'LOANNOTE', 'READ', '0'),
+('portfolio', 'CREATE_LOANNOTE', 'LOANNOTE', 'CREATE', '1'),
+('portfolio', 'UPDATE_LOANNOTE', 'LOANNOTE', 'UPDATE', '1'),
+('portfolio', 'DELETE_LOANNOTE', 'LOANNOTE', 'DELETE', '1'),
+('portfolio', 'CREATE_LOANNOTE_CHECKER', 'LOANNOTE', 'CREATE', '0'),
+('portfolio', 'UPDATE_LOANNOTE_CHECKER', 'LOANNOTE', 'UPDATE', '0'),
+('portfolio', 'DELETE_LOANNOTE_CHECKER', 'LOANNOTE', 'DELETE', '0'),
+('portfolio', 'READ_LOANTRANSACTIONNOTE', 'LOANTRANSACTIONNOTE', 'READ', '0'),
+('portfolio', 'CREATE_LOANTRANSACTIONNOTE', 'LOANTRANSACTIONNOTE', 'CREATE', '1'),
+('portfolio', 'UPDATE_LOANTRANSACTIONNOTE', 'LOANTRANSACTIONNOTE', 'UPDATE', '1'),
+('portfolio', 'DELETE_LOANTRANSACTIONNOTE', 'LOANTRANSACTIONNOTE', 'DELETE', '1'),
+('portfolio', 'CREATE_LOANTRANSACTIONNOTE_CHECKER', 'LOANTRANSACTIONNOTE', 'CREATE', '0'),
+('portfolio', 'UPDATE_LOANTRANSACTIONNOTE_CHECKER', 'LOANTRANSACTIONNOTE', 'UPDATE', '0'),
+('portfolio', 'DELETE_LOANTRANSACTIONNOTE_CHECKER', 'LOANTRANSACTIONNOTE', 'DELETE', '0'),
+('portfolio', 'READ_SAVINGNOTE', 'SAVINGNOTE', 'READ', '0'),
+('portfolio', 'CREATE_SAVINGNOTE', 'SAVINGNOTE', 'CREATE', '1'),
+('portfolio', 'UPDATE_SAVINGNOTE', 'SAVINGNOTE', 'UPDATE', '1'),
+('portfolio', 'DELETE_SAVINGNOTE', 'SAVINGNOTE', 'DELETE', '1'),
+('portfolio', 'CREATE_SAVINGNOTE_CHECKER', 'SAVINGNOTE', 'CREATE', '0'),
+('portfolio', 'UPDATE_SAVINGNOTE_CHECKER', 'SAVINGNOTE', 'UPDATE', '0'),
+('portfolio', 'DELETE_SAVINGNOTE_CHECKER', 'SAVINGNOTE', 'DELETE', '0'),
+('portfolio', 'READ_CLIENTIDENTIFIER', 'CLIENTIDENTIFIER', 'READ', '0'),
+('portfolio', 'CREATE_CLIENTIDENTIFIER', 'CLIENTIDENTIFIER', 'CREATE', '1'),
+('portfolio', 'CREATE_CLIENTIDENTIFIER_CHECKER', 'CLIENTIDENTIFIER', 'CREATE', '0'),
+('portfolio', 'UPDATE_CLIENTIDENTIFIER', 'CLIENTIDENTIFIER', 'UPDATE', '1'),
+('portfolio', 'UPDATE_CLIENTIDENTIFIER_CHECKER', 'CLIENTIDENTIFIER', 'UPDATE', '0'),
+('portfolio', 'DELETE_CLIENTIDENTIFIER', 'CLIENTIDENTIFIER', 'DELETE', '1'),
+('portfolio', 'DELETE_CLIENTIDENTIFIER_CHECKER', 'CLIENTIDENTIFIER', 'DELETE', '0'),
+('portfolio', 'READ_DOCUMENT', 'DOCUMENT', 'READ', '0'),
+('portfolio', 'CREATE_DOCUMENT', 'DOCUMENT', 'CREATE', '1'),
+('portfolio', 'CREATE_DOCUMENT_CHECKER', 'DOCUMENT', 'CREATE', '0'),
+('portfolio', 'UPDATE_DOCUMENT', 'DOCUMENT', 'UPDATE', '1'),
+('portfolio', 'UPDATE_DOCUMENT_CHECKER', 'DOCUMENT', 'UPDATE', '0'),
+('portfolio', 'DELETE_DOCUMENT', 'DOCUMENT', 'DELETE', '1'),
+('portfolio', 'DELETE_DOCUMENT_CHECKER', 'DOCUMENT', 'DELETE', '0'),
+('portfolio', 'READ_GROUP', 'GROUP', 'READ', '0'),
+('portfolio', 'CREATE_GROUP', 'GROUP', 'CREATE', '1'),
+('portfolio', 'CREATE_GROUP_CHECKER', 'GROUP', 'CREATE', '0'),
+('portfolio', 'UPDATE_GROUP', 'GROUP', 'UPDATE', '1'),
+('portfolio', 'UPDATE_GROUP_CHECKER', 'GROUP', 'UPDATE', '0'),
+('portfolio', 'DELETE_GROUP', 'GROUP', 'DELETE', '1'),
+('portfolio', 'DELETE_GROUP_CHECKER', 'GROUP', 'DELETE', '0'),
+('portfolio', 'UNASSIGNSTAFF_GROUP', 'GROUP', 'UNASSIGNSTAFF', 1),
+('portfolio', 'UNASSIGNSTAFF_GROUP_CHECKER', 'GROUP', 'UNASSIGNSTAFF', 0),
+('portfolio', 'CREATE_LOANCHARGE', 'LOANCHARGE', 'CREATE', '1'),
+('portfolio', 'CREATE_LOANCHARGE_CHECKER', 'LOANCHARGE', 'CREATE', '0'),
+('portfolio', 'UPDATE_LOANCHARGE', 'LOANCHARGE', 'UPDATE', '1'),
+('portfolio', 'UPDATE_LOANCHARGE_CHECKER', 'LOANCHARGE', 'UPDATE', '0'),
+('portfolio', 'DELETE_LOANCHARGE', 'LOANCHARGE', 'DELETE', '1'),
+('portfolio', 'DELETE_LOANCHARGE_CHECKER', 'LOANCHARGE', 'DELETE', '0'),
+('portfolio', 'WAIVE_LOANCHARGE', 'LOANCHARGE', 'WAIVE', '1'),
+('portfolio', 'WAIVE_LOANCHARGE_CHECKER', 'LOANCHARGE', 'WAIVE', '0'),
+('portfolio', 'READ_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'READ', '0'),
+('portfolio', 'CREATE_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'CREATE', '1'),
+('portfolio', 'CREATE_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'CREATE', '0'),
+('portfolio', 'UPDATE_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'UPDATE', '1'),
+('portfolio', 'UPDATE_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'UPDATE', '0'),
+('portfolio', 'DELETE_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'DELETE', '1'),
+('portfolio', 'DELETE_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'DELETE', '0'),
+('portfolio', 'READ_GUARANTOR', 'GUARANTOR', 'READ', 0),
+('portfolio', 'CREATE_GUARANTOR', 'GUARANTOR', 'CREATE', 1),
+('portfolio', 'CREATE_GUARANTOR_CHECKER', 'GUARANTOR', 'CREATE', 0),
+('portfolio', 'UPDATE_GUARANTOR', 'GUARANTOR', 'UPDATE', 1),
+('portfolio', 'UPDATE_GUARANTOR_CHECKER', 'GUARANTOR', 'UPDATE', 0),
+('portfolio', 'DELETE_GUARANTOR', 'GUARANTOR', 'DELETE', 1),
+('portfolio', 'DELETE_GUARANTOR_CHECKER', 'GUARANTOR', 'DELETE', 0),
+('portfolio', 'READ_COLLATERAL', 'COLLATERAL', 'READ', '0'),
+('portfolio', 'CREATE_COLLATERAL', 'COLLATERAL', 'CREATE', '1'),
+('portfolio', 'UPDATE_COLLATERAL', 'COLLATERAL', 'UPDATE', '1'),
+('portfolio', 'DELETE_COLLATERAL', 'COLLATERAL', 'DELETE', '1'),
+('portfolio', 'CREATE_COLLATERAL_CHECKER', 'COLLATERAL', 'CREATE', '0'),
+('portfolio', 'UPDATE_COLLATERAL_CHECKER', 'COLLATERAL', 'UPDATE', '0'),
+('portfolio', 'DELETE_COLLATERAL_CHECKER', 'COLLATERAL', 'DELETE', '0'),
+('transaction_loan', 'APPROVE_LOAN', 'LOAN', 'APPROVE', '1'),
+('transaction_loan', 'APPROVEINPAST_LOAN', 'LOAN', 'APPROVEINPAST', '1'),
+('transaction_loan', 'REJECT_LOAN', 'LOAN', 'REJECT', '1'),
+('transaction_loan', 'REJECTINPAST_LOAN', 'LOAN', 'REJECTINPAST', '1'),
+('transaction_loan', 'WITHDRAW_LOAN', 'LOAN', 'WITHDRAW', '1'),
+('transaction_loan', 'WITHDRAWINPAST_LOAN', 'LOAN', 'WITHDRAWINPAST', '1'),
+('transaction_loan', 'APPROVALUNDO_LOAN', 'LOAN', 'APPROVALUNDO', '1'),
+('transaction_loan', 'DISBURSE_LOAN', 'LOAN', 'DISBURSE', '1'),
+('transaction_loan', 'DISBURSEINPAST_LOAN', 'LOAN', 'DISBURSEINPAST', '1'),
+('transaction_loan', 'DISBURSALUNDO_LOAN', 'LOAN', 'DISBURSALUNDO', '1'),
+('transaction_loan', 'REPAYMENT_LOAN', 'LOAN', 'REPAYMENT', '1'),
+('transaction_loan', 'REPAYMENTINPAST_LOAN', 'LOAN', 'REPAYMENTINPAST', '1'),
+('transaction_loan', 'ADJUST_LOAN', 'LOAN', 'ADJUST', '1'),
+('transaction_loan', 'WAIVEINTERESTPORTION_LOAN', 'LOAN', 'WAIVEINTERESTPORTION', '1'),
+('transaction_loan', 'WRITEOFF_LOAN', 'LOAN', 'WRITEOFF', '1'),
+('transaction_loan', 'CLOSE_LOAN', 'LOAN', 'CLOSE', '1'),
+('transaction_loan', 'CLOSEASRESCHEDULED_LOAN', 'LOAN', 'CLOSEASRESCHEDULED', '1'),
+('transaction_loan', 'UPDATELOANOFFICER_LOAN', 'LOAN', 'UPDATELOANOFFICER', 1),
+('transaction_loan', 'UPDATELOANOFFICER_LOAN_CHECKER', 'LOAN', 'UPDATELOANOFFICER', 0),
+('transaction_loan', 'REMOVELOANOFFICER_LOAN', 'LOAN', 'REMOVELOANOFFICER', 1),
+('transaction_loan', 'REMOVELOANOFFICER_LOAN_CHECKER', 'LOAN', 'REMOVELOANOFFICER', 0),
+('transaction_loan', 'BULKREASSIGN_LOAN', 'LOAN', 'BULKREASSIGN', '1'),
+('transaction_loan', 'BULKREASSIGN_LOAN_CHECKER', 'LOAN', 'BULKREASSIGN', '0'),
+('transaction_loan', 'APPROVE_LOAN_CHECKER', 'LOAN', 'APPROVE', '0'),
+('transaction_loan', 'APPROVEINPAST_LOAN_CHECKER', 'LOAN', 'APPROVEINPAST', '0'),
+('transaction_loan', 'REJECT_LOAN_CHECKER', 'LOAN', 'REJECT', '0'),
+('transaction_loan', 'REJECTINPAST_LOAN_CHECKER', 'LOAN', 'REJECTINPAST', '0'),
+('transaction_loan', 'WITHDRAW_LOAN_CHECKER', 'LOAN', 'WITHDRAW', '0'),
+('transaction_loan', 'WITHDRAWINPAST_LOAN_CHECKER', 'LOAN', 'WITHDRAWINPAST', '0'),
+('transaction_loan', 'APPROVALUNDO_LOAN_CHECKER', 'LOAN', 'APPROVALUNDO', '0'),
+('transaction_loan', 'DISBURSE_LOAN_CHECKER', 'LOAN', 'DISBURSE', '0'),
+('transaction_loan', 'DISBURSEINPAST_LOAN_CHECKER', 'LOAN', 'DISBURSEINPAST', '0'),
+('transaction_loan', 'DISBURSALUNDO_LOAN_CHECKER', 'LOAN', 'DISBURSALUNDO', '0'),
+('transaction_loan', 'REPAYMENT_LOAN_CHECKER', 'LOAN', 'REPAYMENT', '0'),
+('transaction_loan', 'REPAYMENTINPAST_LOAN_CHECKER', 'LOAN', 'REPAYMENTINPAST', '0'),
+('transaction_loan', 'ADJUST_LOAN_CHECKER', 'LOAN', 'ADJUST', '0'),
+('transaction_loan', 'WAIVEINTERESTPORTION_LOAN_CHECKER', 'LOAN', 'WAIVEINTERESTPORTION', '0'),
+('transaction_loan', 'WRITEOFF_LOAN_CHECKER', 'LOAN', 'WRITEOFF', '0'),
+('transaction_loan', 'CLOSE_LOAN_CHECKER', 'LOAN', 'CLOSE', '0'),
+('transaction_loan', 'CLOSEASRESCHEDULED_LOAN_CHECKER', 'LOAN', 'CLOSEASRESCHEDULED', '0'),
+('transaction_savings', 'DEPOSIT_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'DEPOSIT', '1'),
+('transaction_savings', 'DEPOSIT_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'DEPOSIT', '0'),
+('transaction_savings', 'WITHDRAWAL_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'WITHDRAWAL', '1'),
+('transaction_savings', 'WITHDRAWAL_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'WITHDRAWAL', '0'),
+('transaction_savings', 'ACTIVATE_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'ACTIVATE', '1'),
+('transaction_savings', 'ACTIVATE_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'ACTIVATE', '0'),
+('transaction_savings', 'CALCULATEINTEREST_SAVINGSACCOUNT', 'SAVINGSACCOUNT', 'CALCULATEINTEREST', '1'),
+('transaction_savings', 'CALCULATEINTEREST_SAVINGSACCOUNT_CHECKER', 'SAVINGSACCOUNT', 'CALCULATEINTEREST', '0');
+
+-- == accounting related permissions
+INSERT INTO `m_permission` (`grouping`, `code`, `entity_name`, `action_name`, `can_maker_checker`) VALUES 
+('accounting', 'CREATE_GLACCOUNT', 'GLACCOUNT', 'CREATE', 1),
+('accounting', 'UPDATE_GLACCOUNT', 'GLACCOUNT', 'UPDATE', 1),
+('accounting', 'DELETE_GLACCOUNT', 'GLACCOUNT', 'DELETE', 1),
+('accounting', 'CREATE_GLCLOSURE', 'GLCLOSURE', 'CREATE', 1),
+('accounting', 'UPDATE_GLCLOSURE', 'GLCLOSURE', 'UPDATE', 1),
+('accounting', 'DELETE_GLCLOSURE', 'GLCLOSURE', 'DELETE', 1), 
+('accounting', 'CREATE_JOURNALENTRY', 'JOURNALENTRY', 'CREATE', 1),
+('accounting', 'REVERSE_JOURNALENTRY', 'JOURNALENTRY', 'REVERSE', 1);
+
+
+INSERT INTO `m_role` (`id`, `name`, `description`) 
+VALUES 
+(1,'Super user','This role provides all application permissions.');
+
+/* role 1 is super user, give it ALL_FUNCTIONS */
+INSERT INTO m_role_permission(role_id, permission_id)
+select 1, id
+from m_permission
+where code = 'ALL_FUNCTIONS';
+
+INSERT INTO `m_appuser` (`id`, `office_id`, `username`, `firstname`, `lastname`, `password`, `email`, 
+`firsttime_login_remaining`, `nonexpired`, `nonlocked`, `nonexpired_credentials`, `enabled`) 
+VALUES 
+(1,1,'mifos','App','Administrator','5787039480429368bf94732aacc771cd0a3ea02bcf504ffe1185ab94213bc63a','demomfi@mifos.org','\0','','','','');
+
+
+INSERT INTO `m_appuser_role` (`appuser_id`, `role_id`) VALUES (1,1);
+
+
+-- Add in permissions for any special datatables added in base reference data
+-- This needs to always happen at end of the script
+
+/* add a create, read, update and delete permission for each registered datatable */
+insert into m_permission(grouping, `code`, entity_name, action_name)
+select 'datatable', concat('CREATE_', r.registered_table_name), r.registered_table_name, 'CREATE'
+from x_registered_table r;
+
+insert into m_permission(grouping, `code`, entity_name, action_name)
+select 'datatable', concat('READ_', r.registered_table_name), r.registered_table_name, 'READ'
+from x_registered_table r;
+
+insert into m_permission(grouping, `code`, entity_name, action_name)
+select 'datatable', concat('UPDATE_', r.registered_table_name), r.registered_table_name, 'UPDATE'
+from x_registered_table r;
+
+insert into m_permission(grouping, `code`, entity_name, action_name)
+select 'datatable', concat('DELETE_', r.registered_table_name), r.registered_table_name, 'DELETE'
+from x_registered_table r;
+
+
+/* regardless of inserted permission settings above, no permissions (transactions) are preselected as being part of the maker-checker process
+so, just set the flag to false... the end-user can decide which permissions should be maker-checkerable
+*/
+update m_permission set can_maker_checker = false;
\ No newline at end of file