WIP: submit and modify loan application. support for loan purpose, loan collateral, loan fees. Restrict modification of loan application details to be only allowed in 'submitted and pending approval' state which is first improved required to reach loan and cash based accounting integration.
This commit is contained in:
@@ -26,6 +26,7 @@ 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_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`;
|
||||
@@ -501,6 +502,7 @@ CREATE TABLE `m_loan` (
|
||||
`fund_id` bigint(20) DEFAULT NULL,
|
||||
`loan_officer_id` bigint(20) DEFAULT NULL,
|
||||
`guarantor_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,
|
||||
@@ -544,12 +546,14 @@ CREATE TABLE `m_loan` (
|
||||
KEY `FK7C885877240145` (`fund_id`),
|
||||
KEY `FK_loan_ltp_strategy` (`loan_transaction_strategy_id`),
|
||||
KEY `FK_m_loan_m_staff` (`loan_officer_id`),
|
||||
KEY `FK_m_loanpurpose_codevalue` (`loanpurpose_cv_id`),
|
||||
KEY `group_id` (`group_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`),
|
||||
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 `m_loan_ibfk_1` FOREIGN KEY (`group_id`) REFERENCES `m_group` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
@@ -602,6 +606,18 @@ CREATE TABLE `m_loan_charge` (
|
||||
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,
|
||||
`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,
|
||||
|
||||
@@ -202,14 +202,6 @@ VALUES
|
||||
INSERT INTO `m_organisation_currency` (`id`, `code`, `decimal_places`, `name`, `display_symbol`, `internationalized_name_code`)
|
||||
VALUES (21,'USD',2,'US Dollar','$','currency.USD');
|
||||
|
||||
-- create single code and code value for client identifiers
|
||||
INSERT INTO `m_code`
|
||||
(`id`,`code_name`, `is_system_defined`) VALUES (1,'Customer Identifier',1);
|
||||
|
||||
INSERT INTO `m_code_value`
|
||||
(`id`,`code_id`,`code_value`,`order_position`)
|
||||
VALUES (1,1,'Passport number',0);
|
||||
|
||||
INSERT INTO `m_office` (`id`, `parent_id`, `hierarchy`, `external_id`, `name`, `opening_date`)
|
||||
VALUES
|
||||
(1,NULL,'.','1','Head Office','2009-01-01');
|
||||
@@ -520,4 +512,39 @@ 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;
|
||||
from x_registered_table r;
|
||||
|
||||
|
||||
-- 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);
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Passport', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Customer Identifier";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Id', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Customer Identifier";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Drivers License', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Customer Identifier";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Any Other Id Type', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Customer Identifier";
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,47 +1,146 @@
|
||||
DELETE FROM `mifostenant-ceda`.`ref_loan_transaction_processing_strategy` WHERE id in (1, 3, 4);
|
||||
|
||||
INSERT INTO `mifostenant-ceda`.`m_code` (`id`,`code_name`, `is_system_defined`)
|
||||
INSERT INTO `mifostenant-ceda`.`m_code` (`code_name`, `is_system_defined`)
|
||||
VALUES
|
||||
(2,'Gender', '0'),
|
||||
(3,'YesNo', '0'),
|
||||
(4,'FieldOfEmployment', '0'),
|
||||
(5,'EducationLevel', '0'),
|
||||
(6,'MaritalStatus', '0'),
|
||||
(7,'PovertyStatus', '0'),
|
||||
(8,'PurposeOfLoan', '0'),
|
||||
(9,'CollateralType', '0');
|
||||
('FieldOfEmployment', '0'),
|
||||
('EducationLevel', '0'),
|
||||
('MaritalStatus', '0'),
|
||||
('PovertyStatus', '0');
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Banker', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "FieldOfEmployment";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.SoftwareDeveloper', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "FieldOfEmployment";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.University', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "EducationLevel";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Secondary', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "EducationLevel";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Primary', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "EducationLevel";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Married', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "MaritalStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Single', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "MaritalStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Divorced', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "MaritalStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Widow', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "MaritalStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.PovertyStatus.Band1', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "PovertyStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.PovertyStatus.Band2', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "PovertyStatus";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.PovertyStatus.Band3', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "PovertyStatus";
|
||||
|
||||
-- ======= ADD in loan purspose and collateral values to enable this functionality
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.House', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanCollateral";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Television', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanCollateral";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Gold', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanCollateral";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Agriculture', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanPurpose";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Manufacturing', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanPurpose";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.HousingImprovement', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "LoanPurpose";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Male', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Gender";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Female', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Gender";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Yes', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "YesNo";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.No', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "YesNo";
|
||||
|
||||
DELETE FROM `mifostenant-ceda`.`m_code_value` WHERE id > 0;
|
||||
|
||||
INSERT INTO `mifostenant-ceda`.`m_code_value`
|
||||
(`code_id`,`code_value`,`order_position`)
|
||||
VALUES
|
||||
(1, 'Passport', 1),
|
||||
(1, 'Id', 2),
|
||||
(1, 'Drivers License', 3),
|
||||
(1, 'Any Other Id Type', 4),
|
||||
(2, 'gender.Male', 1),
|
||||
(2, 'gender.Female', 2),
|
||||
(3, 'option.Yes', 1),
|
||||
(3, 'option.No', 2),
|
||||
(4, 'option.Banker', 1),
|
||||
(4, 'option.SoftwareDeveloper', 2),
|
||||
(5, 'option.University', 1),
|
||||
(5, 'option.Secondary', 2),
|
||||
(5, 'option.Primary', 3),
|
||||
(6, 'option.Married', 1),
|
||||
(6, 'option.Single', 2),
|
||||
(6, 'option.Divorced', 3),
|
||||
(6, 'option.Widow', 4),
|
||||
(7, 'option.PovertyStatus.Band1', 1),
|
||||
(7, 'option.PovertyStatus.Band2', 2),
|
||||
(7, 'option.PovertyStatus.Band3', 3),
|
||||
(8, 'option.Agriculture', 1),
|
||||
(8, 'option.Manufacturing', 2),
|
||||
(8, 'option.HousingImprovement', 3),
|
||||
(9, 'option.House', 1),
|
||||
(9, 'option.Television', 2),
|
||||
(9, 'option.Gold', 3);
|
||||
|
||||
DROP TABLE IF EXISTS `mifostenant-ceda`.`client additional data`;
|
||||
CREATE TABLE `mifostenant-ceda`.`client additional data` (
|
||||
|
||||
@@ -30,6 +30,9 @@ VALUES
|
||||
(0, 1, 'keithwoodlock', 'Keith', 'Woodlock',
|
||||
'4f607e9b6cffbe7d3db92d4bfa3391c7aa751727b4ea29d08fddf9dd72e6e7e3', 'keithwoodlock@gmail.com', 0, 1, 1, 1, 1);
|
||||
|
||||
INSERT INTO `mifostenant-ceda`.`m_appuser_role`
|
||||
(`appuser_id`,`role_id`) VALUES (2,1);
|
||||
|
||||
UPDATE `mifostenant-ceda`.`m_office` SET `name` = 'CEDA Microfinance Ltd.' WHERE id=1;
|
||||
|
||||
INSERT INTO `mifostenant-ceda`.`m_office`
|
||||
|
||||
File diff suppressed because one or more lines are too long
+56
-8
@@ -1,13 +1,53 @@
|
||||
-- add code and code values for datatables dropdowns
|
||||
INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (2, 'Gender', 1);
|
||||
INSERT INTO `m_code` (`id`, `code_name`, `is_system_defined`) VALUES (3, 'Education', 1);
|
||||
|
||||
INSERT INTO `m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (2, 'Male', 1);
|
||||
INSERT INTO `m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (2, 'Female', 2);
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Male', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Gender";
|
||||
|
||||
INSERT INTO `m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'Primary', 1);
|
||||
INSERT INTO `m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'Secondary', 2);
|
||||
INSERT INTO `m_code_value` (`code_id`, `code_value`, `order_position`) VALUES (3, 'University', 3);
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Female', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Gender";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.Yes', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "YesNo";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'option.No', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "YesNo";
|
||||
|
||||
INSERT INTO `m_code`
|
||||
(`code_name`, `is_system_defined`)
|
||||
VALUES
|
||||
('Education',1);
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Primary', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Education";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'Secondary', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Education";
|
||||
|
||||
INSERT INTO `m_code_value`(`code_id`,`code_value`,`order_position`)
|
||||
select mc.id, 'University', ifnull(max(mv.id), 1)
|
||||
from m_code mc
|
||||
join m_code_value mv on mv.code_id = mc.id
|
||||
where mc.`code_name` = "Education";
|
||||
|
||||
-- ========= datatables=======
|
||||
|
||||
DROP TABLE IF EXISTS `extra_client_details`;
|
||||
CREATE TABLE `extra_client_details` (
|
||||
@@ -49,4 +89,12 @@ CREATE TABLE `extra_loan_details` (
|
||||
`Comment` text,
|
||||
PRIMARY KEY (`loan_id`),
|
||||
CONSTRAINT `FK_extra_loan_details` FOREIGN KEY (`loan_id`) REFERENCES `m_loan` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
-- datatables mapping
|
||||
INSERT INTO `x_registered_table`
|
||||
(`registered_table_name`,`application_table_name`)
|
||||
VALUES
|
||||
('extra_client_details', 'm_client'),
|
||||
('extra_family_details', 'm_loan'),
|
||||
('extra_loan_details', 'm_loan');
|
||||
@@ -0,0 +1,18 @@
|
||||
DROP TABLE IF EXISTS `m_loan_collateral`;
|
||||
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,
|
||||
`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;
|
||||
|
||||
|
||||
ALTER TABLE `m_loan`
|
||||
ADD COLUMN `loanpurpose_cv_id` INT(11) DEFAULT NULL AFTER `guarantor_id`,
|
||||
ADD KEY `FK_m_loanpurpose_codevalue` (`loanpurpose_cv_id`),
|
||||
ADD CONSTRAINT `FK_m_loanpurpose_codevalue` FOREIGN KEY (`loanpurpose_cv_id`) REFERENCES `m_code_value` (`id`);
|
||||
Reference in New Issue
Block a user