HEX
Server: Apache/2.2.15 (CentOS)
System: Linux ip-10-0-2-146.eu-west-1.compute.internal 2.6.32-754.35.1.el6.centos.plus.x86_64 #1 SMP Sat Nov 7 11:33:42 UTC 2020 x86_64
User: root (0)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /www/exchange2/sql/archive/2019-09-17-TK23588.sql
ALTER TABLE `organisation_details`
    ADD `ldc_premium` DOUBLE(6, 3) NOT NULL DEFAULT 0 AFTER `credebt_facility_type`,
    ADD `creditor_ldc_premium` DOUBLE(6, 3) NOT NULL DEFAULT 0 AFTER `ldc_premium`;

ALTER TABLE `debtors_detail`
    ADD `ldc_premium` DOUBLE(6, 3) NULL DEFAULT NULL;

ALTER TABLE `invoice_master`
    ADD `ldc_premium` DOUBLE(6, 3) NOT NULL DEFAULT 0;

ALTER TABLE `organisation_details`
    ADD `agent_commission` DOUBLE(6, 3) NOT NULL DEFAULT 0 AFTER `creditor_ldc_premium`,
    ADD `creditor_agent_commission` DOUBLE(6, 3) NOT NULL DEFAULT 0 AFTER `agent_commission`;

ALTER TABLE `debtors_detail`
    ADD `agent_commission` DOUBLE(6, 3) NULL DEFAULT NULL;

ALTER TABLE `invoice_master`
    ADD `agent_commission` DOUBLE(6, 3) NOT NULL DEFAULT 0;

DROP FUNCTION IF EXISTS `getReserve`;
DELIMITER $$
CREATE FUNCTION `getReserve`(`expected_date` DATE,
                             `issue_date` DATE,
                             `payment_date` DATE,
                             `system_date` DATE,
                             `reserve` DOUBLE(10, 2),
                             `face_value` DOUBLE,
                             `sr` DOUBLE(4, 3),
                             `pp` DOUBLE(5, 3),
                             `trade_comission` DOUBLE(7, 4),
                             `override_180_day_rule` TINYINT(1),
                             `face_value_charge` DOUBLE(5, 3),
                             `credebt_facility_type` VARCHAR(20),
                             `face_value_charge_applied` TINYINT(1),
                             `ldc_premium` DOUBLE(6, 3),
                             `agent_commission` DOUBLE(6, 3)) RETURNS decimal(20, 10)
BEGIN
    SET
        @edso = IFNULL(DATEDIFF(DATE(expected_date), DATE(issue_date)), 0),
        @rdso =
                DATEDIFF(IF(reserve IS NOT NULL AND payment_date <= system_date, payment_date, system_date),
                         DATE(issue_date)),
        @adso = IF(@edso > @rdso, @edso, @rdso),
        @sr = sr * 100 / (100 - agent_commission),
        @face_value_charge = face_value_charge * 100 / (100 - agent_commission);
    IF (reserve IS NOT NULL AND (system_date = CURDATE() OR system_date >= payment_date)) THEN
        RETURN reserve;
    ELSEIF ((`credebt_facility_type` = 'fixed' AND `payment_date` IS NULL) OR
            (`face_value_charge_applied` = 1 AND `payment_date` IS NOT NULL)) THEN
        RETURN face_value - face_value * pp / 100 - face_value * @face_value_charge / 100 -
               face_value * ldc_premium / 100 - trade_comission;
    ELSEIF (@adso >= 180 AND override_180_day_rule = 0) THEN
        RETURN face_value * @sr / 100 * 12 * (180 - @adso) / 360 - face_value * ldc_premium / 100 - trade_comission;
    ELSE
        RETURN face_value - face_value * @sr / 100 * 12 * 180 / 360 - face_value * pp / 100 +
               face_value * @sr / 100 * 12 * (180 - @adso) / 360 - face_value * ldc_premium / 100 - trade_comission;
    END IF;
END$$
DELIMITER ;

ALTER TABLE `site_settings`
    ADD `ldc_premium`      DOUBLE(6, 3) NOT NULL DEFAULT 0,
    ADD `agent_commission` DOUBLE(6, 3) NOT NULL DEFAULT 0;