apzl_leasing/src_sql/procedure/proc_insert_hexiao.sql
2021-10-26 15:19:53 +08:00

617 lines
39 KiB
SQL
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
definer = apzl@`%` procedure proc_insert_hexiao(IN ln_contract_id varchar(200), IN ln_plan_date varchar(200), IN in_rent varchar(200),
IN in_hire_list varchar(200), IN in_type varchar(2))
BEGIN
-- Èç¹ûin_type=1¾ÍÊÇÊÖ¹¤ºËÏú
IF in_type = 1 THEN
INSERT INTO LC_RENT_INCOME (ID,
QUOT_ID,
CUST_ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
EBANK_NUMBER,
PLAN_ID,
PLAN_LIST,
INTEREST_ADJUST,
SETTLE_METHOD,
HIRE_LIST,
HIRE_DATE,
RENT,
CORPUS,
INTEREST,
PENALTY,
CORPUS_ADJUST,
PENALTY_ADJUST,
ROLL_BACK,
COIN,
hire_number,
hire_bank,
hire_account,
own_bank,
own_account,
own_number,
charge_way)
(
SELECT REPLACE(UUID(), '-', '') AS id,
LCP2.QUOT_ID,
LCP2.CUST_ID,
LCP2.PROJECT_ID,
LCP2.PROJECT_PLAN_NUMBER,
LCP2.CONTRACT_ID,
LCP2.CONTRACT_PLAN_NUMBER,
LCP2.PAYMENT_NUMBER,
'' AS EBANK_NUMBER,
LCP2.PLAN_ID,
LCP2.PLAN_LIST,
'0' AS INTEREST_ADJUST,
'settlemethod6' AS SETTLE_METHOD,
in_hire_list AS HIRE_LIST,
DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE,
LCP2.rent_over AS RENT,
LCP2.corpus_over AS CORPUS,
LCP2.interest_over AS INTEREST,
(
in_rent - LCP2.corpus_over - LCP2.interest_over
) AS PENALTY,
'0' AS CORPUS_ADJUST,
'0' AS PENALTY_ADJUST,
'0' AS ROLL_BACK,
LCP2.COIN AS COIN,
ca.acc_number,
ca.bank_name,
ca.account,
oa.acc_bank,
lci.subjectname,
oa.acc_number,
'AutoBuckle'
FROM (
SELECT LCP.QUOT_ID,
LCP.CUST_ID,
LCP.PROJECT_ID,
LCP.PROJECT_PLAN_NUMBER,
LCP.CONTRACT_ID,
LCP.CONTRACT_PLAN_NUMBER,
LCP.PAYMENT_NUMBER,
LCP.id AS PLAN_ID,
LCP.PLAN_LIST,
LCP.COIN,
(LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over,
(LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) +
ifnull(lcfi.corpus_adjust, 0))) AS corpus_over,
(LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) +
ifnull(lcfi.interest_adjust, 0))) AS interest_over,
round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) -
((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) +
(ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))),
2) AS penalty_over
FROM LC_RENT_PLAN LCP
LEFT JOIN (
select LRI.PAYMENT_NUMBER AS payment_number,
LRI.PLAN_LIST AS plan_list,
sum(LRI.RENT) AS rent,
sum(LRI.CORPUS) AS corpus,
sum(LRI.INTEREST) AS interest,
sum(LRI.PENALTY) AS penalty,
sum(LRI.CORPUS_ADJUST) AS corpus_adjust,
sum(LRI.INTEREST_ADJUST) AS interest_adjust,
sum(LRI.PENALTY_ADJUST) AS penalty_adjust
from lc_rent_income LRI
where LRI.ROLL_BACK = '0'
AND LRI.contract_id = ln_contract_id
group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST
) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list
left join lc_rent_income_temp_transfer lcfi
on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list
WHERE LCP.contract_id = ln_contract_id
AND LCP.plan_date = ln_plan_date
) LCP2
LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id
LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id
LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno
LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND
(oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010'
);
-- in_type = 2ÎªÒøÁª¿¨¿ÚÊÖ¶¯Ë¢ÐºËÏúÊý¾Ý
ELSEIF in_type = 2 THEN
INSERT INTO LC_RENT_INCOME (ID,
QUOT_ID,
CUST_ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
EBANK_NUMBER,
PLAN_ID,
PLAN_LIST,
INTEREST_ADJUST,
SETTLE_METHOD,
HIRE_LIST,
HIRE_DATE,
RENT,
CORPUS,
INTEREST,
PENALTY,
CORPUS_ADJUST,
PENALTY_ADJUST,
ROLL_BACK,
COIN,
hire_number,
hire_bank,
hire_account,
own_bank,
own_account,
own_number,
charge_way)
(
SELECT REPLACE(UUID(), '-', '') AS id,
LCP2.QUOT_ID,
LCP2.CUST_ID,
LCP2.PROJECT_ID,
LCP2.PROJECT_PLAN_NUMBER,
LCP2.CONTRACT_ID,
LCP2.CONTRACT_PLAN_NUMBER,
LCP2.PAYMENT_NUMBER,
'' AS EBANK_NUMBER,
LCP2.PLAN_ID,
LCP2.PLAN_LIST,
'0' AS INTEREST_ADJUST,
'settlemethod6' AS SETTLE_METHOD,
in_hire_list AS HIRE_LIST,
DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.rent_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN in_rent - LCP2.penalty_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent > LCP2.penalty_over THEN in_rent - LCP2.penalty_over
ELSE '0'
END RENT,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.corpus_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN in_rent - (LCP2.penalty_over + LCP2.interest_over)
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN '0'
ELSE '0'
END CORPUS,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.interest_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN LCP2.interest_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN in_rent - LCP2.penalty_over
ELSE '0'
END INTEREST,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.penalty_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN LCP2.penalty_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN LCP2.penalty_over
ELSE in_rent
END AS PENALTY,
'0' AS CORPUS_ADJUST,
'0' AS PENALTY_ADJUST,
'0' AS ROLL_BACK,
LCP2.COIN AS COIN,
ca.acc_number,
ca.bank_name,
ca.account,
oa.acc_bank,
lci.subjectname,
oa.acc_number,
'AutoBuckle'
FROM (
SELECT LCP.QUOT_ID,
LCP.CUST_ID,
LCP.PROJECT_ID,
LCP.PROJECT_PLAN_NUMBER,
LCP.CONTRACT_ID,
LCP.CONTRACT_PLAN_NUMBER,
LCP.PAYMENT_NUMBER,
LCP.id AS PLAN_ID,
LCP.PLAN_LIST,
LCP.COIN,
(LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over,
(LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) +
ifnull(lcfi.corpus_adjust, 0))) AS corpus_over,
(LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) +
ifnull(lcfi.interest_adjust, 0))) AS interest_over,
round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) -
((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) +
(ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))),
2) AS penalty_over
FROM LC_RENT_PLAN LCP
LEFT JOIN (
select LRI.PAYMENT_NUMBER AS payment_number,
LRI.PLAN_LIST AS plan_list,
sum(LRI.RENT) AS rent,
sum(LRI.CORPUS) AS corpus,
sum(LRI.INTEREST) AS interest,
sum(LRI.PENALTY) AS penalty,
sum(LRI.CORPUS_ADJUST) AS corpus_adjust,
sum(LRI.INTEREST_ADJUST) AS interest_adjust,
sum(LRI.PENALTY_ADJUST) AS penalty_adjust
from lc_rent_income LRI
where LRI.ROLL_BACK = '0'
AND LRI.contract_id = ln_contract_id
group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST
) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list
left join lc_rent_income_temp_transfer lcfi
on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list
WHERE LCP.contract_id = ln_contract_id
AND LCP.plan_date = ln_plan_date
) LCP2
LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id
LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id
LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno
LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND
(oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010'
);
-- Èç¹ûin_type=3¾ÍÊǾ­ÏúÉ̱£Ö¤½ð´ú³¥£¬in_hire_listΪºËÏú·£Ï¢½ð¶î
ELSEIF in_type = 3 THEN
INSERT INTO LC_RENT_INCOME (ID,
QUOT_ID,
CUST_ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
EBANK_NUMBER,
PLAN_ID,
PLAN_LIST,
INTEREST_ADJUST,
SETTLE_METHOD,
HIRE_LIST,
HIRE_DATE,
RENT,
CORPUS,
INTEREST,
PENALTY,
CORPUS_ADJUST,
PENALTY_ADJUST,
ROLL_BACK,
COIN,
hire_number,
hire_bank,
hire_account,
own_bank,
own_account,
own_number,
charge_way)
(
SELECT REPLACE(UUID(), '-', '') AS id,
LCP2.QUOT_ID,
LCP2.CUST_ID,
LCP2.PROJECT_ID,
LCP2.PROJECT_PLAN_NUMBER,
LCP2.CONTRACT_ID,
LCP2.CONTRACT_PLAN_NUMBER,
LCP2.PAYMENT_NUMBER,
'' AS EBANK_NUMBER,
LCP2.PLAN_ID,
LCP2.PLAN_LIST,
'0' AS INTEREST_ADJUST,
'settlemethod6' AS SETTLE_METHOD,
in_hire_list AS HIRE_LIST,
DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE,
LCP2.rent_over AS RENT,
LCP2.corpus_over AS CORPUS,
LCP2.interest_over AS INTEREST,
in_hire_list AS PENALTY,
'0' AS CORPUS_ADJUST,
penalty_over - in_hire_list AS PENALTY_ADJUST,
'0' AS ROLL_BACK,
LCP2.COIN,
ca.acc_number,
ca.bank_name,
ca.account,
oa.acc_bank,
lci.subjectname,
oa.acc_number,
'AutoBuckle'
FROM (
SELECT LCP.QUOT_ID,
LCP.CUST_ID,
LCP.PROJECT_ID,
LCP.PROJECT_PLAN_NUMBER,
LCP.CONTRACT_ID,
LCP.CONTRACT_PLAN_NUMBER,
LCP.PAYMENT_NUMBER,
LCP.id AS PLAN_ID,
LCP.PLAN_LIST,
LCP.COIN,
(LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over,
(LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) +
ifnull(lcfi.corpus_adjust, 0))) AS corpus_over,
(LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) +
ifnull(lcfi.interest_adjust, 0))) AS interest_over,
round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) -
((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) +
(ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))),
2) AS penalty_over
FROM LC_RENT_PLAN LCP
LEFT JOIN (
select LRI.PAYMENT_NUMBER AS payment_number,
LRI.PLAN_LIST AS plan_list,
sum(LRI.RENT) AS rent,
sum(LRI.CORPUS) AS corpus,
sum(LRI.INTEREST) AS interest,
sum(LRI.PENALTY) AS penalty,
sum(LRI.CORPUS_ADJUST) AS corpus_adjust,
sum(LRI.INTEREST_ADJUST) AS interest_adjust,
sum(LRI.PENALTY_ADJUST) AS penalty_adjust
from lc_rent_income LRI
where LRI.ROLL_BACK = '0'
AND LRI.contract_id = ln_contract_id
group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST
) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list
left join lc_rent_income_temp_transfer lcfi
on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list
WHERE LCP.contract_id = ln_contract_id
AND LCP.plan_date = ln_plan_date
) LCP2
LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id
LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id
LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno
LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND
(oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010'
);
-- in_type = 4 Ϊ΢ÐÅ»¹¿î
ELSEIF in_type = 4 THEN
INSERT INTO LC_RENT_INCOME (ID,
QUOT_ID,
CUST_ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
EBANK_NUMBER,
PLAN_ID,
PLAN_LIST,
INTEREST_ADJUST,
SETTLE_METHOD,
HIRE_LIST,
HIRE_DATE,
RENT,
CORPUS,
INTEREST,
PENALTY,
CORPUS_ADJUST,
PENALTY_ADJUST,
ROLL_BACK,
COIN,
hire_number,
hire_bank,
hire_account,
own_bank,
own_account,
own_number,
charge_way)
(
SELECT REPLACE(UUID(), '-', '') AS id,
LCP2.QUOT_ID,
LCP2.CUST_ID,
LCP2.PROJECT_ID,
LCP2.PROJECT_PLAN_NUMBER,
LCP2.CONTRACT_ID,
LCP2.CONTRACT_PLAN_NUMBER,
LCP2.PAYMENT_NUMBER,
'' AS EBANK_NUMBER,
LCP2.PLAN_ID,
LCP2.PLAN_LIST,
'0' AS INTEREST_ADJUST,
'settlemethod6' AS SETTLE_METHOD,
in_hire_list AS HIRE_LIST,
DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE,
LCP2.rent_over AS RENT,
LCP2.corpus_over AS CORPUS,
LCP2.interest_over AS INTEREST,
(
in_rent - LCP2.corpus_over - LCP2.interest_over
) AS PENALTY,
'0' AS CORPUS_ADJUST,
'0' AS PENALTY_ADJUST,
'0' AS ROLL_BACK,
LCP2.COIN,
'',
'',
'',
CASE ln_plan_date WHEN 'WXPay' THEN 'ÖйúÒøÐйɷÝÓÐÏÞ¹«Ë¾±±¾©Å˼ÒÔ°Ö§ÐÐ' ELSE lms.bank_name END,
CASE ln_plan_date WHEN 'WXPay' THEN '±±¾©°²Åô²ý´ï×ʲú¹ÜÀíÓÐÏÞ¹«Ë¾' ELSE lms.acc_name END,
CASE ln_plan_date WHEN 'WXPay' THEN '344167318076' ELSE lms.acc_number END,
CASE ln_plan_date WHEN 'WXPay' THEN 'WXPay' ELSE 'WXUnionPay' END
FROM (
SELECT LCP.QUOT_ID,
LCP.CUST_ID,
LCP.PROJECT_ID,
LCP.PROJECT_PLAN_NUMBER,
LCP.CONTRACT_ID,
LCP.CONTRACT_PLAN_NUMBER,
LCP.PAYMENT_NUMBER,
LCP.id AS PLAN_ID,
LCP.PLAN_LIST,
LCP.COIN,
(LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over,
(LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) +
ifnull(lcfi.corpus_adjust, 0))) AS corpus_over,
(LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) +
ifnull(lcfi.interest_adjust, 0))) AS interest_over,
round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) -
((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) +
(ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))),
2) AS penalty_over
FROM LC_RENT_PLAN LCP
LEFT JOIN (
select LRI.PAYMENT_NUMBER AS payment_number,
LRI.PLAN_LIST AS plan_list,
sum(LRI.RENT) AS rent,
sum(LRI.CORPUS) AS corpus,
sum(LRI.INTEREST) AS interest,
sum(LRI.PENALTY) AS penalty,
sum(LRI.CORPUS_ADJUST) AS corpus_adjust,
sum(LRI.INTEREST_ADJUST) AS interest_adjust,
sum(LRI.PENALTY_ADJUST) AS penalty_adjust
from lc_rent_income LRI
where LRI.ROLL_BACK = '0'
AND LRI.contract_id = ln_contract_id
group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST
) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list
left join lc_rent_income_temp_transfer lcfi
on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list
WHERE LCP.contract_id = ln_contract_id
AND LCP.plan_date = ln_plan_date
) LCP2
LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id
LEFT JOIN LB_MANY_SUBJECT lms ON lms.subject_id = LCI.subjectid AND lms.is_enable = 'Y'
);
-- in_type = 5ΪͨÁª¿Û¿î
ELSEIF in_type = 5 THEN
INSERT INTO LC_RENT_INCOME (ID,
QUOT_ID,
CUST_ID,
PROJECT_ID,
PROJECT_PLAN_NUMBER,
CONTRACT_ID,
CONTRACT_PLAN_NUMBER,
PAYMENT_NUMBER,
EBANK_NUMBER,
PLAN_ID,
PLAN_LIST,
INTEREST_ADJUST,
SETTLE_METHOD,
HIRE_LIST,
HIRE_DATE,
RENT,
CORPUS,
INTEREST,
PENALTY,
CORPUS_ADJUST,
PENALTY_ADJUST,
ROLL_BACK,
COIN,
hire_number,
hire_bank,
hire_account,
own_bank,
own_account,
own_number,
charge_way)
(
SELECT REPLACE(UUID(), '-', '') AS id,
LCP2.QUOT_ID,
LCP2.CUST_ID,
LCP2.PROJECT_ID,
LCP2.PROJECT_PLAN_NUMBER,
LCP2.CONTRACT_ID,
LCP2.CONTRACT_PLAN_NUMBER,
LCP2.PAYMENT_NUMBER,
'' AS EBANK_NUMBER,
LCP2.PLAN_ID,
LCP2.PLAN_LIST,
'0' AS INTEREST_ADJUST,
'settlemethod6' AS SETTLE_METHOD,
in_hire_list AS HIRE_LIST,
DATE_FORMAT(CURDATE(), '%Y/%m/%d') AS HIRE_DATE,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.rent_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN in_rent - LCP2.penalty_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent > LCP2.penalty_over THEN in_rent - LCP2.penalty_over
ELSE '0'
END RENT,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.corpus_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN in_rent - (LCP2.penalty_over + LCP2.interest_over)
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN '0'
ELSE '0'
END CORPUS,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.interest_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN LCP2.interest_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN in_rent - LCP2.penalty_over
ELSE '0'
END INTEREST,
CASE
WHEN in_rent >= LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over THEN LCP2.penalty_over
WHEN in_rent < LCP2.corpus_over + LCP2.interest_over + LCP2.penalty_over AND
in_rent >= LCP2.interest_over + LCP2.penalty_over
THEN LCP2.penalty_over
WHEN in_rent < LCP2.interest_over + LCP2.penalty_over AND in_rent >= LCP2.penalty_over THEN LCP2.penalty_over
ELSE in_rent
END AS PENALTY,
'0' AS CORPUS_ADJUST,
'0' AS PENALTY_ADJUST,
'0' AS ROLL_BACK,
LCP2.COIN AS COIN,
ca.acc_number,
ca.bank_name,
ca.account,
oa.acc_bank,
lci.subjectname,
oa.acc_number,
'TLCollect'
FROM (
SELECT LCP.QUOT_ID,
LCP.CUST_ID,
LCP.PROJECT_ID,
LCP.PROJECT_PLAN_NUMBER,
LCP.CONTRACT_ID,
LCP.CONTRACT_PLAN_NUMBER,
LCP.PAYMENT_NUMBER,
LCP.id AS PLAN_ID,
LCP.PLAN_LIST,
LCP.COIN,
(LCP.RENT - (ifnull(LRI.rent, 0) + ifnull(lcfi.rent, 0))) AS rent_over,
(LCP.CORPUS - (((ifnull(LRI.corpus, 0) + ifnull(lcfi.corpus, 0)) + ifnull(LRI.corpus_adjust, 0)) +
ifnull(lcfi.corpus_adjust, 0))) AS corpus_over,
(LCP.INTEREST - (((ifnull(LRI.interest, 0) + ifnull(lcfi.interest, 0)) + ifnull(LRI.interest_adjust, 0)) +
ifnull(lcfi.interest_adjust, 0))) AS interest_over,
round((getRentPenalty(LCP.PAYMENT_NUMBER, LCP.PLAN_LIST, date_format(now(), '%Y/%m/%d')) -
((ifnull(LRI.penalty, 0) + ifnull(lcfi.penalty, 0)) +
(ifnull(LRI.penalty_adjust, 0) + ifnull(lcfi.penalty_adjust, 0)))),
2) AS penalty_over
FROM LC_RENT_PLAN LCP
LEFT JOIN (
select LRI.PAYMENT_NUMBER AS payment_number,
LRI.PLAN_LIST AS plan_list,
sum(LRI.RENT) AS rent,
sum(LRI.CORPUS) AS corpus,
sum(LRI.INTEREST) AS interest,
sum(LRI.PENALTY) AS penalty,
sum(LRI.CORPUS_ADJUST) AS corpus_adjust,
sum(LRI.INTEREST_ADJUST) AS interest_adjust,
sum(LRI.PENALTY_ADJUST) AS penalty_adjust
from lc_rent_income LRI
where LRI.ROLL_BACK = '0'
AND LRI.contract_id = ln_contract_id
group by LRI.PAYMENT_NUMBER, LRI.PLAN_LIST
) LRI ON LCP.PAYMENT_NUMBER = LRI.payment_number AND LCP.PLAN_LIST = LRI.plan_list
left join lc_rent_income_temp_transfer lcfi
on LCP.PAYMENT_NUMBER = lcfi.payment_number and LCP.PLAN_LIST = lcfi.plan_list
WHERE LCP.contract_id = ln_contract_id
AND LCP.plan_date = ln_plan_date
) LCP2
LEFT JOIN customer_account ca ON ca.contract_id = LCP2.contract_id
LEFT JOIN lb_contract_info lci ON LCP2.contract_id = lci.id
LEFT JOIN code_library cl ON cl.codeno = 'ManySubject' AND lci.subjectid = cl.itemno
LEFT JOIN own_account oa ON oa.own_id = cl.bankno AND oa.account_purpose = 'default' AND oa.state_ = '0010' AND
(oa.account_type = 'in_account' OR oa.account_type = 'inAndOut_account') AND oa.acc_type = '0010'
);
ELSE
SELECT 1;
END IF;
END;