617 lines
39 KiB
SQL
617 lines
39 KiB
SQL
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; |