apzl_leasing/src_sql/procedure/PROC_CALC_PENALTY.sql
2019-12-26 11:07:19 +08:00

50 lines
2.0 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 罚息存储过程
CREATE PROCEDURE PROC_CALC_PENALTY(IN CALC_DATE VARCHAR(10))
BEGIN
-- 注意不要变动LC_PENALTY_INFO表的唯一性索引
-- 罚息存储过程
REPLACE INTO LC_PENALTY_INFO(ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
PLAN_ID,
PLAN_DATE,
PLAN_LIST,
RENT_PLAN_DATE,
PLAN_PENALTY,
INPUTTIME)
SELECT TT.ID,
TT.PROJECT_ID,
TT.PROJECT_PLAN_NUMBER,
TT.CONTRACT_ID,
TT.CONTRACT_PLAN_NUMBER,
TT.PAYMENT_NUMBER,
TT.PLAN_ID,
CALC_DATE,
TT.PLAN_LIST,
TT.PLAN_DATE,
TT.PLAN_PENALTY,
TT.INPUTTIME
FROM (
SELECT IFNULL(LPI.ID, REPLACE(UUID(), '-', '')) ID,
LRPT.PROJECT_ID,
LRPT.PROJECT_PLAN_NUMBER,
LRPT.CONTRACT_ID,
LRPT.CONTRACT_PLAN_NUMBER,
LRPT.PAYMENT_NUMBER,
LRPT.ID AS PLAN_ID,
LRPT.PLAN_LIST,
LRPT.PLAN_DATE,
IFNULL(LPI.PLAN_PENALTY, 0) AS OLD_PLAN_PENALTY,
getRentPenalty(LRPT.PAYMENT_NUMBER, LRPT.PLAN_LIST, CALC_DATE) AS PLAN_PENALTY,
DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS INPUTTIME
FROM LC_RENT_PLAN LRPT
LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID = LRPT.CONTRACT_ID
LEFT JOIN LC_PENALTY_INFO LPI ON LRPT.PAYMENT_NUMBER = LPI.PAYMENT_NUMBER AND LRPT.PLAN_LIST = LPI.PLAN_LIST
WHERE LCI.CONTRACT_STATUS = '31'
) TT
WHERE TT.PLAN_PENALTY <> TT.OLD_PLAN_PENALTY
AND TT.PLAN_PENALTY > 0;
END;