apzl_leasing/src_sql/procedure/batch_income.sql

125 lines
3.4 KiB
SQL

create procedure batch_income()
begin
declare eb_id varchar(32);
declare eb_contract_id varchar(50);
declare eb_payment_number varchar(50);
declare eb_rent_list_income varchar(50);
declare eb_fact_date varchar(20);
declare eb_client_bank varchar(200);
declare eb_client_account varchar(200);
declare eb_client_acc_number varchar(200);
declare eb_own_bank varchar(200);
declare eb_own_account varchar(200);
declare eb_ownacc_number varchar(200);
declare done boolean default false;
declare ebank_data cursor for
select id,
contract_id,
payment_number,
rent_list_income,
fact_date,
client_bank,
client_account,
client_acc_number,
own_bank,
own_account,
ownacc_number from lc_ebank where id in(select ebank_number from lc_ebank_process);
declare continue handler for not found set done=true;
open ebank_data;
myLoop:loop
fetch ebank_data into eb_id,
eb_contract_id,
eb_payment_number,
eb_rent_list_income,
eb_fact_date,
eb_client_bank,
eb_client_account,
eb_client_acc_number,
eb_own_bank,
eb_own_account,
eb_ownacc_number;
if done then leave myLoop;
end if;
if eb_contract_id is not null and eb_contract_id<>''
and eb_payment_number is not null and eb_payment_number<>''
and eb_rent_list_income is not null and eb_rent_list_income<>''
then
INSERT INTO lc_rent_income (id,
quot_id,
cust_id,
project_id,
project_plan_number,
contract_id,
contract_plan_number,
payment_number,
plan_id,
plan_list,
hire_list,
hire_date,
rent,
corpus,
interest,
penalty,
corpus_adjust,
interest_adjust,
penalty_adjust,
coin,
ebank_number,
hire_bank,
hire_account,
hire_number,
own_bank,
own_account,
own_number,
memo,
roll_back,
inputuserid,
inputorgid,
inputtime,
updateuserid,
updateorgid,
updatetime)
SELECT REPLACE(UUID(),'-',''),
quot_id,
cust_id,
project_id,
project_plan_number,
contract_id,
contract_plan_number,
payment_number,
id,
plan_list,
1,
eb_fact_date,
rent,
corpus,
interest,
penalty,
0,
0,
0,
coin,
eb_id,
eb_client_bank,
eb_client_account,
eb_client_acc_number,
eb_own_bank,
eb_own_account,
eb_ownacc_number,
memo,
0,
inputuserid,
inputorgid,
inputtime,
updateuserid,
updateorgid,
updatetime FROM lc_rent_plan WHERE contract_id=eb_contract_id AND payment_number=eb_payment_number AND plan_list=eb_rent_list_income;
delete from lc_ebank_process where ebank_number=eb_id;
update lc_ebank set had_money=had_money+mayope_money,mayope_money=mayope_money-mayope_money where id=eb_id;
delete from lc_occupy_rent_list where payment_number=eb_payment_number and plan_list=eb_rent_list_income and flow_name='网银批量核销';
end if;
end loop myLoop;
close ebank_data;
end;