📄 svrf313.ec
字号:
#include "../incl/serverpub.h"
$include sqlca;
/***************************
联社日终累计总帐
日期:2003/03/14
参数:工作日期
****************************/
SvrF313(int argc,char *argv[])
{
$char e_cDate[11],e_cYM[7],e_cBeforDate[11],e_bank_no[11];
int i,viYear,viMonth,viFlag;
$char e_bef_sub[7],e_aft_sub[7],e_bef_form[2];
$char e_aft_form[2],e_source[5],e_attribute[3];
$double e_banlance,e_interest,e_corpus;
$int e_num,e_lCount;
#ifdef QDCS
for(i=0;i<argc;i++)
WriteTest("argv[%d]:%s\n",i,argv[i]);
#endif
strcpy(e_cDate,argv[0]);
strncpy(e_cYM,e_cDate,6);
e_cYM[6]=0;
viFlag=0;
$delete from sumacct_tmp;
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
$select count(*) into $e_lCount from sumacct where trade_date[1,6]=$e_cYM;
if(e_lCount==0)
{/*取上月数据*/
viMonth=atoi(e_cYM+4);
e_cYM[4]=0;
viYear=atoi(e_cYM);
viMonth--;
if(viMonth<=0)
{
viMonth+=12;
viYear--;
}
sprintf(e_cYM,"%04d%02d",viYear,viMonth);
viFlag=1;
}
$insert into sumacct_tmp select * from sumacct
where trade_date[1,6]=$e_cYM;
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
if(viFlag==1)
$update sumacct_tmp set trade_date=$e_cDate,
loan_amt=0.0,
repay_amt=0.0,
repay_int=0.0;
else
$update sumacct_tmp set trade_date=$e_cDate;
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
$declare s_ur cursor for select bank_no,bef_sub,aft_sub,bef_form,aft_form,source,attribute,banlance,interest,corpus from trade_log where attribute in ('11','12','13','14') and state='0';
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
$open s_ur;
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
$fetch s_ur into $e_bank_no,$e_bef_sub,$e_aft_sub,
$e_bef_form,$e_aft_form,$e_source,
$e_attribute,$e_banlance,$e_interest,$e_corpus;
if(SQLCODE<0)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
while(SQLCODE==0)
{
if(e_banlance==NULL) e_banlance=0.0;
if(e_interest==NULL) e_interest=0.0;
if(e_corpus==NULL) e_corpus=0.0;
WriteTest("bank[%s]sub[%s][%s]form[%s][%s]source[%s]attri[%s]amt[%.2f][%.2f][%.2f]\n",e_bank_no,e_bef_sub,e_aft_sub,e_bef_form,e_aft_form,e_source,e_attribute,e_corpus,e_interest,e_banlance);
//01 新增,02 修改,03 删除,11 放贷,12 还贷,13 转形态,14 核销
switch(atoi(e_attribute))
{
case 11:
$select count(*) into $e_lCount from sumacct_tmp
where bank_no=$e_bank_no
and subject=$e_aft_sub
and source=$e_source;
if(e_lCount!=0)
$update sumacct_tmp set loan_num=loan_num+1,
loan_amt=loan_amt+$e_corpus,
loan_bal=loan_bal+$e_corpus
where bank_no=$e_bank_no
and subject=$e_aft_sub
and source=$e_source;
else
$insert into sumacct_tmp
values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
$e_corpus,0,0,$e_corpus,1);
if(SQLCODE)
{
WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
break;
case 12:
case 14:
//0 正常,1 逾期,2呆滞,3 呆帐,5 归还
if(atoi(e_aft_form)==5)
e_num=1;
else
e_num=0;
$select count(*) into $e_lCount from sumacct_tmp
where bank_no=$e_bank_no
and subject=$e_bef_sub
and source=$e_source;
if(e_lCount!=0)
$update sumacct_tmp set loan_num=loan_num-$e_num,
repay_amt=repay_amt+$e_corpus,
repay_int=repay_int+$e_interest,
loan_bal=loan_bal-$e_corpus
where bank_no=$e_bank_no
and subject=$e_bef_sub
and source=$e_source;
else
{
e_banlance=0-e_corpus;
e_num=0-e_num;
$insert into sumacct_tmp
values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
0,$e_corpus,$e_interest,$e_banlance,$e_num);
}
if(SQLCODE)
{
WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
break;
case 13:
e_corpus=e_banlance;
$select count(*) into $e_lCount from sumacct_tmp
where bank_no=$e_bank_no
and subject=$e_bef_sub
and source=$e_source;
if(e_lCount!=0)
$update sumacct_tmp set loan_num=loan_num-1,
repay_amt=repay_amt+$e_corpus,
loan_bal=loan_bal-$e_corpus
where bank_no=$e_bank_no
and subject=$e_bef_sub
and source=$e_source;
else
{
e_banlance=0-e_corpus;
$insert into sumacct_tmp
values($e_bank_no,$e_bef_sub,$e_source,$e_cDate,
0,$e_corpus,0,$e_banlance,-1);
}
if(SQLCODE)
{
WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
$select count(*) into $e_lCount from sumacct_tmp
where bank_no=$e_bank_no
and subject=$e_aft_sub
and source=$e_source;
if(e_lCount!=0)
$update sumacct_tmp set loan_num=loan_num+1,
loan_amt=loan_amt+$e_corpus,
loan_bal=loan_bal+$e_corpus
where bank_no=$e_bank_no
and subject=$e_aft_sub
and source=$e_source;
else
$insert into sumacct_tmp
values($e_bank_no,$e_aft_sub,$e_source,$e_cDate,
$e_corpus,0,0,$e_corpus,1);
if(SQLCODE)
{
WriteTest("insert sumacct_tmp err[%d] LINE=[%d]\n",SQLCODE,__LINE__);
CreateStruct("返回码","020");
return 0;
}
break;
}
$fetch s_ur into $e_bank_no,$e_bef_sub,$e_aft_sub,
$e_bef_form,$e_aft_form,$e_source,
$e_attribute,$e_banlance,$e_interest,$e_corpus;
}//end while
$close s_ur;
$free s_ur;
if(viFlag==0)
$delete from sumacct where trade_date[1,6]=$e_cYM;
$insert into sumacct select * from sumacct_tmp;
if(SQLCODE)
{
WriteTest("SQLCODE=%d,LINE=%d\n",SQLCODE,__LINE__);
return 0;
}
/*更新合同状态*/
$update contract set state="1"
where end_date is not null and end_date<=$e_cDate;
if(sqlca.sqlcode!=0)
WriteTest("svrf313:update contract err[%d]\n",SQLCODE);
/*年终结转,增加月底结转,放到日初始化中处理
if(strcmp(e_cDate+4,"1231")==0)
{
$delete from due_hisbill;
$insert into due_hisbill select * from due_bill where state1<>"5";
}*/
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -