338 lines
9.7 KiB
SQL
338 lines
9.7 KiB
SQL
DELIMITER $$
|
||
|
||
USE `apzl`$$
|
||
|
||
DROP PROCEDURE IF EXISTS `proc_insert_hexiao`$$
|
||
|
||
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,
|
||
O.QUOT_ID AS QUOT_ID,
|
||
O.CUST_ID AS CUST_ID,
|
||
O.PROJECT_ID AS PROJECT_ID,
|
||
O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER,
|
||
O.CONTRACT_ID AS CONTRACT_ID,
|
||
O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER,
|
||
O.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||
'' AS EBANK_NUMBER,
|
||
O.id AS PLAN_ID,
|
||
O.PLAN_LIST AS 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,
|
||
vl.rent_over AS RENT,
|
||
vl.corpus_over AS CORPUS,
|
||
vl.interest_over AS INTEREST,
|
||
(
|
||
in_rent - vl.corpus_over - vl.interest_over
|
||
) AS PENALTY,
|
||
'0' AS CORPUS_ADJUST,
|
||
'0' AS PENALTY_ADJUST,
|
||
'0' AS ROLL_BACK,
|
||
O.COIN AS COIN ,
|
||
ca.acc_number,
|
||
ca.bank_name,
|
||
ca.account,
|
||
oa.acc_bank,
|
||
lci.subjectname,
|
||
oa.acc_number,
|
||
'AutoBuckle'
|
||
FROM
|
||
LC_RENT_PLAN O,
|
||
VI_LC_RENT_PLAN vl
|
||
LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id
|
||
LEFT JOIN lb_contract_info lci ON vl.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 account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account')
|
||
WHERE O.id = vl.id
|
||
AND vl.contract_id =ln_contract_id
|
||
AND vl.plan_date = ln_plan_date
|
||
GROUP BY oa.own_id) ;
|
||
-- 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,
|
||
O.QUOT_ID AS QUOT_ID,
|
||
O.CUST_ID AS CUST_ID,
|
||
O.PROJECT_ID AS PROJECT_ID,
|
||
O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER,
|
||
O.CONTRACT_ID AS CONTRACT_ID,
|
||
O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER,
|
||
O.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||
'' AS EBANK_NUMBER,
|
||
O.id AS PLAN_ID,
|
||
O.PLAN_LIST AS 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>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.rent_over
|
||
WHEN in_rent<vl.corpus_over+vl.interest_over+vl.penalty_over AND in_rent>=vl.interest_over+vl.penalty_over THEN in_rent-vl.penalty_over
|
||
WHEN in_rent<vl.interest_over+vl.penalty_over AND in_rent>vl.penalty_over THEN in_rent-vl.penalty_over
|
||
ELSE '0'
|
||
END RENT,
|
||
CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.corpus_over
|
||
WHEN in_rent<vl.corpus_over+vl.interest_over+vl.penalty_over AND in_rent>=vl.interest_over+vl.penalty_over THEN in_rent-(vl.penalty_over+vl.interest_over)
|
||
WHEN in_rent<vl.interest_over+vl.penalty_over AND in_rent>=vl.penalty_over THEN '0'
|
||
ELSE '0'
|
||
END CORPUS,
|
||
CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.interest_over
|
||
WHEN in_rent<vl.corpus_over+vl.interest_over+vl.penalty_over AND in_rent>=vl.interest_over+vl.penalty_over THEN vl.interest_over
|
||
WHEN in_rent<vl.interest_over+vl.penalty_over AND in_rent>=vl.penalty_over THEN in_rent-vl.penalty_over
|
||
ELSE '0'
|
||
END INTEREST,
|
||
CASE WHEN in_rent>=vl.corpus_over+vl.interest_over+vl.penalty_over THEN vl.penalty_over
|
||
WHEN in_rent<vl.corpus_over+vl.interest_over+vl.penalty_over AND in_rent>=vl.interest_over+vl.penalty_over THEN vl.penalty_over
|
||
WHEN in_rent<vl.interest_over+vl.penalty_over AND in_rent>=vl.penalty_over THEN vl.penalty_over
|
||
ELSE in_rent
|
||
END AS PENALTY,
|
||
'0' AS CORPUS_ADJUST,
|
||
'0' AS PENALTY_ADJUST,
|
||
'0' AS ROLL_BACK,
|
||
O.COIN AS COIN ,
|
||
ca.acc_number,
|
||
ca.bank_name,
|
||
ca.account,
|
||
oa.acc_bank,
|
||
lci.subjectname,
|
||
oa.acc_number,
|
||
'AutoBuckle'
|
||
FROM
|
||
LC_RENT_PLAN O,
|
||
VI_LC_RENT_PLAN vl
|
||
LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id
|
||
LEFT JOIN lb_contract_info lci ON vl.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 account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account')
|
||
WHERE O.id = vl.id
|
||
AND vl.contract_id =ln_contract_id
|
||
AND vl.plan_date = ln_plan_date
|
||
GROUP BY oa.own_id) ;
|
||
|
||
-- Èç¹û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,
|
||
O.QUOT_ID AS QUOT_ID,
|
||
O.CUST_ID AS CUST_ID,
|
||
O.PROJECT_ID AS PROJECT_ID,
|
||
O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER,
|
||
O.CONTRACT_ID AS CONTRACT_ID,
|
||
O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER,
|
||
O.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||
'' AS EBANK_NUMBER,
|
||
O.id AS PLAN_ID,
|
||
O.PLAN_LIST AS PLAN_LIST,
|
||
'0' AS INTEREST_ADJUST,
|
||
'settlemethod6' AS SETTLE_METHOD,
|
||
'1' AS HIRE_LIST,
|
||
DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE,
|
||
vl.rent_over AS RENT,
|
||
vl.corpus_over AS CORPUS,
|
||
vl.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,
|
||
O.COIN AS COIN ,
|
||
ca.acc_number,
|
||
ca.bank_name,
|
||
ca.account,
|
||
oa.acc_bank,
|
||
lci.subjectname,
|
||
oa.acc_number,
|
||
'AutoBuckle'
|
||
FROM
|
||
LC_RENT_PLAN O,
|
||
VI_LC_RENT_PLAN vl
|
||
LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id
|
||
LEFT JOIN lb_contract_info lci ON vl.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 account_purpose='default' AND state_='0010' AND (account_type='in_account' OR account_type='inAndOut_account')
|
||
WHERE O.id = vl.id
|
||
AND vl.contract_id =ln_contract_id
|
||
AND vl.plan_date = ln_plan_date
|
||
GROUP BY oa.own_id ) ;
|
||
|
||
-- 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,
|
||
O.QUOT_ID AS QUOT_ID,
|
||
O.CUST_ID AS CUST_ID,
|
||
O.PROJECT_ID AS PROJECT_ID,
|
||
O.PROJECT_PLAN_NUMBER AS PROJECT_PLAN_NUMBER,
|
||
O.CONTRACT_ID AS CONTRACT_ID,
|
||
O.CONTRACT_PLAN_NUMBER AS CONTRACT_PLAN_NUMBER,
|
||
O.PAYMENT_NUMBER AS PAYMENT_NUMBER,
|
||
'' AS EBANK_NUMBER,
|
||
O.id AS PLAN_ID,
|
||
O.PLAN_LIST AS PLAN_LIST,
|
||
'0' AS INTEREST_ADJUST,
|
||
'settlemethod6' AS SETTLE_METHOD,
|
||
'1' AS HIRE_LIST,
|
||
DATE_FORMAT (CURDATE(),'%Y/%m/%d') AS HIRE_DATE,
|
||
vl.rent_over AS RENT,
|
||
vl.corpus_over AS CORPUS,
|
||
vl.interest_over AS INTEREST,
|
||
(
|
||
in_rent - vl.corpus_over - vl.interest_over
|
||
) AS PENALTY,
|
||
'0' AS CORPUS_ADJUST,
|
||
'0' AS PENALTY_ADJUST,
|
||
'0' AS ROLL_BACK,
|
||
O.COIN AS COIN ,
|
||
'',
|
||
'',
|
||
'',
|
||
CASE ln_plan_date WHEN '΢ÐÅÖ§¸¶' THEN 'ÖйúÒøÐйɷÝÓÐÏÞ¹«Ë¾±±¾©Å˼ÒÔ°Ö§ÐÐ' ELSE 'ÉϺ£ÆÖ¶«·¢Õ¹ÒøÐйɷÝÓÐÏÞ¹«Ë¾ÉîÛÚÎĽõÖ§ÐÐ' END,
|
||
CASE ln_plan_date WHEN '΢ÐÅÖ§¸¶' THEN '±±¾©°²Åô²ý´ï×ʲú¹ÜÀíÓÐÏÞ¹«Ë¾' ELSE '°²Åô¹ú¼ÊÈÚ×Ê×âÁÞ£¨ÉîÛÚ£©ÓÐÏÞ¹«Ë¾' END,
|
||
CASE ln_plan_date WHEN '΢ÐÅÖ§¸¶' THEN '344167318076' ELSE '79220155300000518' END,
|
||
CASE ln_plan_date WHEN '΢ÐÅÖ§¸¶' THEN 'WXPay' ELSE 'WXUnionPay' END
|
||
FROM
|
||
LC_RENT_PLAN O,
|
||
VI_LC_RENT_PLAN vl
|
||
LEFT JOIN customer_account ca ON ca.contract_id=vl.contract_id
|
||
WHERE O.id = vl.id
|
||
AND vl.contract_id =ln_contract_id
|
||
AND vl.plan_list = in_hire_list ) ;
|
||
ELSE
|
||
SELECT 1;
|
||
END IF;
|
||
END$$
|
||
|
||
DELIMITER ; |