📄 d.ec
字号:
#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspace();void mess();char y_n();char readdv();char readst();char readch();long ac_num();double get_inte();void prt_inum();void prt_dnum();void addspacef();void prtf_inum();void prtf_dnum();short num_time();void delay();#include </u/ebcsav/include/begin>short ti,i,n,j=0,h=0,p=0;double x;double amm;long k,amt;unsigned char c;char st[30];$ char s_num[2],nam[9],cu_type[2],te[2];$ long a_num,cr_num,ope_date,b_num,o_date,p_date,z_date,a_date;$ double amoun,inte,inte1,amou,bala,amo,am,am1,bala1,amou1;$ short cred_type;$ long cred_num,i_date,l_mon,te1,m1,m2,pas;$ char ope_num[2],s_type[2],sta[2],l_num[2],r_type[2],fg[2];move(0,25);$ database saving;ope_num[0]=op_num;ope_num[1]='\0';s_num[0]=op.num&0x7f;s_num[1]='\0';l_num[1]='\0';r_type[0]=9;r_type[1]='\0';s_type[1]='\0';nam[0]='\0';cu_type[0]='R';cu_type[1]='\0';amoun=0.0;fg[0]=1;fg[1]='\0';a_num=65; $ begin work; $ update r_dated set flag=$fg where sec_num=$s_num and acc_num=$a_num; if(sqlca.sqlerrd[2]!=1) { addstr("写"); mess(14); printw("(%d), ",sqlca.sqlcode); p=1; getch(); } if(p==1) { $ rollback work; } else { $ commit work; }$ close database;#include </u/ebcsav/include/end>#include </u/ebcsav/include/mess>#include </u/ebcsav/include/addspace>#include </u/ebcsav/include/y_n>#include </u/ebcsav/include/prt_inum>#include </u/ebcsav/include/prt_dnum>#include </u/ebcsav/include/readch>#include </u/ebcsav/include/readdv>#include </u/ebcsav/include/readst>#include </u/ebcsav/include/ac_num>#include </u/ebcsav/include/num_time>#include </u/ebcsav/include/addspacef>#include </u/ebcsav/include/prtf_inum>#include </u/ebcsav/include/prtf_dnum>#include </u/ebcsav/include/delay>double get_inte(k,dat,amount,maint)long k,dat;double amount,*maint;{$double rat,dat1,bl;$long k1;$int y,m,sy,sm,sd,wy,wm,wd;char c3;double ll1,ll2,ll3;double lx=0,am,lx1=0,lx2=0,lx3=0,lx4=0;short year,month,day;long tzbz,yy,mm,mm1,dd,zx,t1,t2,t3,t4,dat2,dat3,dat4,ts,ts1,m1,m2,m3,yer,da2;long i,j,lz[3]={360,1080,1800},dq[6]={90,180,360,720,1080,1800}, de[5]={30,90,180,270,360}, tz[16]={15,30,60,90,120,150,180,210,240,270,300,330,360,720,1080,0};num_date(&year,&month,&day);yy=dat/10000;t1=amount;amount=t1;mm=(dat%10000)/100;dd=dat%100;t1=k/100;if(day>=dd)ts=(year-yy)*360+(month-mm)*30+day-dd;else { if(month==1){yer=year-1; mm1=12; } else{ mm1=month-1; yer=year; } m1=yer%400; m2=yer%100; m3=yer%4; if(mm1==1||mm1==3||mm1==5||mm1==7||mm1==8||mm1==10||mm1==12) da2=31; else if(mm1!=2) da2=30; else if(m1==0||m2!=0&&m3==0) da2=29; else da2=28; ts=(yer-yy)*360+(mm1-mm)*30+da2+day-dd; }tzbz=0;if(t1==1807){ if(ts<tz[0]) { tzbz=1; k=180200; } else { i=0; do{ i++; }while(ts>=tz[i]&&i<15); k=t1*100+i; } }t1=k/10000;t2=k%10000;t3=t2/100;t4=t2%100*30;if(t1>32&&t1!=50){ t1-=32; t3=3; k-=320000; }if(t1==50){ t1=18; t3=8; k-=320000; }k1=k;$ declare read1 scroll cursor for select ll,rq into $rat,$dat1 from inter_rate where syh=$k1; if(sqlca.sqlcode!=0) { move(21,20); addstr("申请"); mess((short)9); printw("(%d), ",sqlca.sqlcode); mess((short)3); getch(); return; } $ open read1; if(sqlca.sqlcode !=0) { printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode); getch(); return; }$fetch first read1;dat2=0;dat3=0;do{ if(dat1>=dat2) { dat2=dat1; ll2=rat; } if(dat1<=dat&&dat1>=dat3) { dat3=dat1; ll1=rat; } $fetch next read1; }while(sqlca.sqlcode!=SQLNOTFOUND);$close read1;if(t1==18)k1=t1*10000+200;else k1=t1*10000+1200;$ declare read2 scroll cursor for select ll,rq into $rat,$dat1 from inter_rate where syh=$k1; if(sqlca.sqlcode!=0) { move(21,20); addstr("申请"); mess((short)9); printw("(%d), ",sqlca.sqlcode); mess((short)3); getch(); return; } $ open read2; if(sqlca.sqlcode !=0) { printw("** %d 错误 2: 打开利率表出错 **",sqlca.sqlcode); getch(); return; }$fetch first read2;dat4=0;do{ if(dat1>=dat4) { dat4=dat1; ll3=rat; } $fetch next read2; }while(sqlca.sqlcode!=SQLNOTFOUND);$close read2; if(t1==18) { switch(t3) { case 2: lx=amount*ts*ll3/30/1000; break; case 3: if(day>=dd) ts=(year-yy)*12+month-mm; else ts=(year-yy)*12+month-mm-1; lx=amount*(1+ts)/2*ll2/1000; break; case 1: if(t4>ts) { lx=amount*ts*ll3/30/1000; } else { if(t4>=1080) {if(t4==1080) y=yy+3; else y=yy+5; m=mm; $ select bl,sy,sm,sd,wy,wm,wd into $bl,$sy,$sm,$sd,$wy,$wm,$wd from maint_rate where y=$y and m=$m; if(t4==1080){ if(sy!=0&&sm!=0&&sd!=0) { if(sy<yy||sy==yy&&sm<mm||sy==yy&&sm==mm&&sd<=dd) { ts1=t4; } else ts1=(y-sy)*360+(m-sm)*30+dd-sd; } else ts1=0; } else { if(wy!=0&&wm!=0&&wd!=0) { if(wy<yy||wy==yy&&wm<mm||wy==yy&&wm==mm&&wd<=dd) { ts1=t4; } else ts1=(y-wy)*360+(m-wm)*30+dd-sd; } else ts1=0; } lx1=amount*bl/10000*ts1; } else lx1=0; lx=amount*t4*ll1/30/1000; lx2=amount*(ts-t4)*ll3/30/1000; } break; case 6: lx=amount*t4*ll1/30/1000; break; case 7: if(tzbz==0) lx=amount*ts*ll2/30/1000; else lx=amount*ts*ll3/30/1000; break; case 8: if(t4>ts) { lx=amount*ts*ll3/30/1000; } else { am=amount; j=ts/t4; y=yy; lx=0; lx1=0; for(i=1;i<=j;i++) { if(t4>=1080) {if(t4==1080) y=y+3; else y=y+5; m=mm; $ select bl,sy,sm,sd,wy,wm,wd into $bl,$sy,$sm,$sd,$wy,$wm,$wd from maint_rate where y=$y and m=$m; if(t4==1080){ if(sy!=0&&sm!=0&&sd!=0) { if(sy<yy||sy==yy&&sm<mm||sy==yy&&sm==mm&&sd<=dd) { ts1=t4; } else ts1=(y-sy)*360+(m-sm)*30+dd-sd; } else ts1=0; } else { if(wy!=0&&wm!=0&&wd!=0) { if(wy<yy||wy==yy&&wm<mm||wy==yy&&wm==mm&&wd<=dd) { ts1=t4; } else ts1=(y-wy)*360+(m-wm)*30+dd-sd; } else ts1=0; } lx1+=(long)am*bl/10000*ts1; lx4=(long)am*bl/10000*ts1; if(t4==1080)yy+=3; else yy+=5; } else lx1=0; lx3=(long)am*t4*ll1/30/1000; lx+=(long)am*t4*ll1/30/1000; am+=lx3+lx4;k1=k; $ open read1; if(sqlca.sqlcode !=0) { printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode); getch(); return; }$fetch first read1;dat3=0;dd=dat%100;yy=dat/10000;mm=(dat%10000)/100+t4/30;if((mm%12)!=0)dat=(yy+mm/12)*10000+(mm%12)*100+dd;elseif((mm/12)>0)dat=(yy+mm/12-1)*10000+1200+dd;elsedat=yy*10000+1200+dd;do{ if(dat1<=dat&&dat1>=dat3) { dat3=dat1; ll1=rat; } $fetch next read1; }while(sqlca.sqlcode!=SQLNOTFOUND);$close read1; } lx2=(long)am*(ts%t4)*ll3/30/1000; } break; } } else { switch(t3) { case 12: lx=amount*ts*ll3/30/1000; break; case 3: if(t4>ts) { lx=amount*ts*ll3/30/1000; } else { am=amount; j=ts/t4; move(1,40); y=yy; lx=0; lx1=0; for(i=1;i<=j;i++) { lx3=(long)am*t4*ll1/30/1000; lx+=(long)am*t4*ll1/30/1000; am+=lx3; k1=k; $ open read1; if(sqlca.sqlcode !=0) { printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode); getch(); return; }$fetch first read1;dat3=0;dd=dat%100;yy=dat/10000;mm=(dat%10000)/100+t4/30;if((mm%12)!=0)dat=(yy+mm/12)*10000+(mm%12)*100+dd;elseif((mm/12)>0)dat=(yy+mm/12-1)*10000+1200+dd;elsedat=yy*10000+1200+dd;do{ if(dat1<=dat&&dat1>=dat3) { dat3=dat1; ll1=rat; } $fetch next read1; }while(sqlca.sqlcode!=SQLNOTFOUND);$close read1; } lx2=(long)am*(ts%t4)*ll3/30/1000; } break; case 11: if(t4>ts) { lx=amount*ts*ll3/30/1000; } else { lx=amount*t4*ll1/30/1000; lx2=amount*(ts-t4)*ll3/30/1000; } break; } }t1=lx1;lx1=t1+(long)((lx1-t1)*100+0.50000001)/100.0;*maint=lx1; lx+=lx2;t1=lx;if(t3!=2&&t3!=12&&t3!=3)lx=t1+(long)((lx-t1)*100+0.50000001)/100.0;return(lx);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -