📄 dated_canc1.ec
字号:
/* 零整销户 */#include </u/ebcsav/include/sav.h>$include sqlca;$include sqlda;void addspace();void mess();char y_n();char fv_date();char readdv();char readst();char readch();long ac_num();double get_rate();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 n,ti,i,j=0;double x;double ba1;long k,inte1;unsigned char c,yn;char st[30],ss[11];FILE *pf;$ char s_num[2],nam[9],cu_type[2],addres[25],l_num[2];$ long a_num,pas,pas1,cr_num,ope_date,b_num;$ double amoun,inte,i_rate,bala;$ short cred_type;$ long cred_num,o_date,i_date,l_date,s_date,a_date;$ char ope_num[2],s_type[2],sta[2],r_type[2],te[2],fg[2];move(0,25);$ database saving;printw("零 存 整 取 销 户");ope_num[0]=op_num;ope_num[1]='\0';s_num[0]=op.num&0x7f;s_num[1]='\0';s_type[1]='\0';r_type[0]=8;r_type[1]='\0';nam[0]='\0';fg[1]='\0';te[1]='\0';cu_type[0]='R';cu_type[1]='\0';amoun=0.0;addres[0]='\0';pas=0;pf=fopen("/u/ebcsav/data/sav_sect.dat","r");fseek(pf,(op.num&0x7f)*34-10,0);fread(ss,10,1,pf);fclose(pf);ss[10]='\0';$ declare blot scroll cursor for select blot_num from r_blot;move(23,16);standout();mess(1);standend();move(3,10);addstr("帐 号: ");move(3,20);prt_inum(s_num[0],2);addstr("-");move(5,10);addstr("密 码: ");while(1) { while(1) { move(3,24); c=readdv(&x,9); if(c==10) a_num=x; move(3,24); prt_inum(a_num,9); move(5,22); c=readdv(&x,7); if(c==10) pas=x; move(5,20); addspace(40); cred_type=3; s_type[0]=cred_type; $ select name,pass,cur_type,term,amount,balance,address,cre_num, open_date,inte_date,status,flag,last_date,inte_rate,interest,line_num into $nam,$pas1,$cu_type,$te,$amoun,$bala, $addres,$cr_num,$o_date,$i_date,$sta,$fg,$l_date,$i_rate,$inte,$l_num from r_dated where sec_num=$s_num and acc_num=$a_num; move(20,20); if(sqlca.sqlcode!=0) { mess(19); break; } else if(pas!=pas1) { mess(20); break; } ope_date=year*10000+month*100+day; s_date=te[0]/12*10000+o_date; if(s_date%100<15) if((s_date%10000)/100<2) a_date=(s_date/10000-1)*10000+1200+30+(s_date%100)-15; else a_date=s_date/10000*10000+((s_date%10000)/100-1)+30+(s_date%100)-15; else a_date=s_date-15; if(((s_date>ope_date)&&(fg[0]&1)==0)||((a_date>ope_date)&&(fg[0]&1==1))) { move(20,20); mess(45); c=y_n('Y','Y','N'); if(c=='N')break; move(20,20); addspace(30); k=0; k+=((toupper(cu_type[0])-64)*10000+200); inte=inte+get_inte(k,i_date,bala,&ba1); inte1=inte; inte=inte1+(long)((inte-inte1)*100+0.50000001)/100.0; } else { k=te[0]; k+=((toupper(cu_type[0])-64)*10000+cred_type*100);/* move(20,20); printw("k=%d date=%d bala=%f",k,o_date,bala); getch();*/ inte=get_inte(k,o_date,bala,&ba1); } move(7,10); addstr("姓 名: "); move(9,10); addstr("存 期: "); move(11,10); addstr("金 额: "); move(13,10); addstr("利 息: "); move(15,10); addstr("地 址: "); move(17,10); addstr("凭 证 号: "); move(19,10); addstr("利 率: "); move(7,20); printw("%-8s",nam); move(9,20); prt_inum(te[0]/12,1); printw("年"); move(11,20); prt_dnum(bala,13); move(13,20); c=readdv(&x,13); if(c==10)inte=x; move(13,30); prt_dnum(inte,13); move(15,20); printw("%-24s",addres); move(17,20); prt_inum(cr_num,7); move(19,20); prt_dnum(i_rate,13); if(l_num[0]==0) { move(20,10); addstr("存折行号: "); move(20,34); c=readdv(&x,2); if(c==10) l_num[0]=x; } else l_num[0]++; if(l_num[0]>40) { move(20,20); mess(37); break; }/*更新记录开始*/ move(20,20); if(ope_date==o_date) { mess(21); break; } if(sta[0]!='A') if(sta[0]=='a') { beep(); move(19,20); standout(); mess(26); standend(); } else if(toupper(sta[0])=='F'||toupper(sta[0])=='V') { yn=fv_date(l_date,toupper(sta[0])); if(yn!='Y') break; else { move(20,20); mess(68); break; } } else { mess(22); break; } move(20,20); mess(5); c=y_n('Y','N','C'); move(19,20); addspace(42); move(20,20); addspace(42); move(20,20); if(c=='N')break; else if(c=='Y') { j=0; $ begin work; for(n=0;n<7;n++) if(op.name[n]!='\0')st[n]=op.name[n]^0xff; else st[n]='\0'; ti=num_time(); $ update r_dated set balance=0,interest=$inte,last_date=$ope_date, status='E' where sec_num=$s_num and acc_num=$a_num; if(sqlca.sqlerrd[2]!=1) { addstr("写"); mess(14); j=1; printw("(%d), ",sqlca.sqlcode); } else { for(n=0;n<5;n++) { $ insert into r_blot values (0,$ope_num,$s_num,$a_num,$nam,$s_type, $cu_type,$te,$cr_num,"E",$bala,0,$inte); if(sqlca.sqlcode!=-271) break; printw("*"); refresh(); delay(5l); } if(sqlca.sqlcode==-271) { mess((short)73); j=1; break; } else if(sqlca.sqlcode!=0) { addstr("写"); mess(16); printw("(%d), ",sqlca.sqlcode); j=1; } else { $ open blot; $ fetch last blot into $b_num; $ close blot; $ insert into r_dated_sch values ($s_num,$a_num,$ope_date,$b_num, $nam,$cu_type,$bala,0,$inte,$r_type); if(sqlca.sqlcode!=0) { addstr("写"); mess(18); printw("(%d), ",sqlca.sqlcode); j=1; } else { move(20,20); addspace(30); move(20,20); mess(23); j=0; } } } if(j==1) { $ rollback work; } else { $ commit work; } break; } break;/*更新记录结束*/ } move(20,46); mess(15); c=y_n('Y','N','N'); if(c=='N') break; move(20,20); addspace(56); move(3,24); addspace(40); }$ 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/fv_date>#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_rate(k,dat)long k,dat;{$double rat;$long k1,dat1;double ll2;int dat2;long tz[16]={15,30,60,90,120,150,180,210,240,270,300,330,360,720,1080,0};short year,month,day;long i,yy,mm,mm1,dd,t1,ts,m1,m2,m3,yer,da2;num_date(&year,&month,&day);yy=dat/10000;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; }if(t1==1807){ if(ts<15)k=180200; else { i=0; do{ i++; }while(ts>=tz[i]&&i<15); k=t1*100+i; } }k1=k;$ declare read3 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 read3; if(sqlca.sqlcode !=0) { printw("** %d 错误 1: 打开利率表出错 **",sqlca.sqlcode); getch(); return; }$fetch first read3;dat2=0;do{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -