Replace due_date_change

parent 205bf12b
......@@ -248,6 +248,7 @@ REPAY_TEMP_CUR_READ: LOOP
SET DONE = 0;
LEAVE REPAY_TEMP_CUR_READ;
END IF;
IF V_SEQ_NO < V_DEFERAL_FROM_INSTL THEN
IF V_REC_TYPE = 'P' OR V_REC_TYPE = 'D' THEN
SET V_DAYS = GET_DAYS_BETWEEN(V_PREV_DUE_DATE, V_DUE_DATE, V_LOAN_DAYS_BASIS);
......@@ -286,18 +287,16 @@ REPAY_TEMP_CUR_READ: LOOP
ELSE
SET V_EXCESS_INT_COMP = V_ORG_INT_COMP - V_INT_COMP;
END IF;
SET V_PRIN_COMP = V_INSTL_AMOUNT - V_INT_COMP;
IF V_SEQ_NO < (SELECT MAX(R_SEQ_NO) FROM REPAY_TEMP WHERE R_LOAN_ID = V_LOAN_ID) THEN
SET V_NEXT_INSTL_AMOUNT = V_INSTL_AMOUNT + V_EXCESS_INT_COMP;
ELSE
SET V_NEXT_INSTL_AMOUNT = V_INSTL_AMOUNT;
SET V_PRIN_COMP = V_PRIN_COMP - V_EXCESS_INT_COMP;
END IF;
SET V_PRIN_COMP = V_NEXT_INSTL_AMOUNT - V_INT_COMP;
SET V_PRIN_OS = V_PREV_PRIN_OS - V_PRIN_COMP;
SET V_INT_OS = V_INT_OS - V_INT_COMP - V_EXCESS_INT_COMP;
SET V_INT_OS = V_INT_OS - V_INT_COMP - V_EXCESS_INT_COMP;
UPDATE REPAY_TEMP
SET R_ORG_DUE_DATE = V_ORG_DUE_DATE,
R_DUE_DATE = V_DUE_DATE,
R_INSTL_AMOUNT = V_NEXT_INSTL_AMOUNT,
R_INSTL_AMOUNT = V_INSTL_AMOUNT,
R_PRIN_COMP = V_PRIN_COMP,
R_INT_COMP = V_INT_COMP,
R_EXCESS_INT_COMP = V_EXCESS_INT_COMP,
......@@ -306,12 +305,11 @@ REPAY_TEMP_CUR_READ: LOOP
R_COUNT = V_COUNT
WHERE R_LOAN_ID = V_LOAN_ID
AND R_SEQ_NO = V_SEQ_NO;
-- Prepare for the next iteration
SET V_PREV_DUE_DATE = V_DUE_DATE;
SET V_PREV_PRIN_OS = V_PRIN_OS;
END IF;
END LOOP;
CLOSE REPAY_TEMP_CUR;
IF V_PRIN_OS <> 0 THEN
SET V_PRIN_COMP = V_PRIN_COMP + V_PRIN_OS;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment