📄 s13010.ec.c
字号:
/*********************************************************n
*
* FILENAME: S13010.ec
* FUNCTION: 无折存款
* 交 易 码: 130101
* 作 者: 李 昕
* LASTCHANG: 1998.05, 珠海
***********************************************************/
#ifndef NORMAL
#define EXTERN
#endif
# include "easy.h"
$ include "dbbuf.h";
# define WZCKJYM "130101"
# define TDKMH 41604
# define DGCZH 15
$ struct{
int gyh;
int jym;
char jgm[10];
char zdh[11];
char zh[14];
double je;
int pzzl;
char pzhm[9];
int zy;
}s_rec;
$ struct{
int flag;
int gylsh;
char mc[41];
double ye;
long kmh;
char errmsg[80];
}s_snd;
int getflag;
#ifdef NORMAL
main(argc,argv)
int argc;
char *argv[];
{
#else
int s13010 ( cSock , cJym )
char *cSock , *cJym;
{
char argv[3][20];
#endif
char jym[7],_address[10];
$int gy_lsh,zxlsh;
$int czh,hbh;
/****add by yxb 99.4.7******/
/**********end**********/
$long zxrq,xtrq;
$char zhzt[4],jgm[10],zhkz[9];
int td_flag,i;
FILE *file1;
char tmp[4];
char *format="%h%i%s", *get_time();
$struct ffhz3 rfh;
memset( &s_snd, 0, sizeof(s_snd) );
memset( &s_rec, 0, sizeof(s_rec) );
#ifndef NORMAL
strcpy ( argv[1] , cSock );
strcpy ( argv[2] , cJym );
#endif
if ( recv_from(argv[1],argv[2],_address,&s_rec,NULL)<0 ){
s_snd.flag = 1;
strcpy(s_snd.errmsg, "中心接受交易失败!");
send_to(argv[1],argv[2],_address,&s_snd,NULL);
return -1;
}
if ( strcmp (argv[2],WZCKJYM)!=0){
s_snd.flag = 1;
strcpy(s_snd.errmsg, "中心接受交易失败!");
send_to(argv[1],argv[2],_address,&s_snd,NULL);
return -1;
}
s_snd.flag=0;
s_snd.ye=0.0;
strcpy(s_snd.mc,"\0");
s_snd.kmh=0;
#ifdef NORMAL
$database easydb;
if (sqlca.sqlcode) {
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
sprintf(s_snd.errmsg,"打开数据库错[%d]!",sqlca.sqlcode);
s_snd.flag=sqlca.sqlcode;
goto return_back;
}
#endif
/* insert by zjh 99.4.7 */
strncpy(tmp,&(s_rec.zh[10]),2);
tmp[2]=0 ;
hbh=atoi(tmp);
$select * into $rczdflb from czdflb
where jgm=$s_rec.jgm and hbh=$hbh and ywzl=13;
if (sqlca.sqlcode) {
sprintf(s_snd.errmsg,"取自动分录表错[%d]!",sqlca.sqlcode);
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd.flag=sqlca.sqlcode;
goto return_back;
}
if((i=chk_gyqx(s_rec.gyh,0,"",s_rec.jym,0.00,0))!=0){
s_snd.flag=i;
strcpy(s_snd.errmsg,g_errmsg);
goto return_back;
}
switch(s_rec.zh[12]){
case '1':
$select * into $rffhz1 from ffhz1 where zh=$s_rec.zh;
strcpy(jgm,rffhz1.jgm);
hbh = rffhz1.hbh;
czh = rffhz1.czh;
strcpy(zhzt,rffhz1.zhzt);
strcpy(zhkz,rffhz1.zhkz);
break;
case '2':
$select * into $rffhz2 from ffhz2 where zh=$s_rec.zh;
strcpy(jgm,rffhz2.jgm);
hbh = rffhz2.hbh;
czh = rffhz2.czh;
strcpy(zhzt,rffhz2.zhzt);
strcpy(zhkz,rffhz2.zhkz);
break;
case '3':
$select * into $rffhz3 from ffhz3 where zh=$s_rec.zh;
strcpy(jgm,rffhz3.jgm);
hbh = rffhz3.hbh;
czh = rffhz3.czh;
strcpy(zhzt,rffhz3.zhzt);
strcpy(zhkz,rffhz3.zhkz);
break;
default: s_snd.flag=-999;
strcpy(s_snd.errmsg,"无效的帐类!");
goto return_back;
}
if (sqlca.sqlcode && sqlca.sqlcode!=100) {
sprintf(s_snd.errmsg,"取分户帐信息错[%d]!",sqlca.sqlcode);
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd.flag=sqlca.sqlcode;
goto return_back;
}
if (sqlca.sqlcode==100) {
strcpy(s_snd.errmsg,"无此帐户!");
s_snd.flag=5;/*无此帐户*/
goto return_back;
}
if(zhzt[0]=='2'){
s_snd.flag=14;/*销户*/
strcpy(s_snd.errmsg,"帐户已销户!");
goto return_back;
}
if(zhzt[2]=='3'){
s_snd.flag=6;/*帐户封*/
strcpy(s_snd.errmsg,"帐户已封锁!");
goto return_back;
}
/** Add 99.06.14 ***/
if(zhzt[1]!='0'){
s_snd.flag=6;/*帐户封*/
strcpy(s_snd.errmsg,"帐户已挂失!");
goto return_back;
}
/*** End of Add *****/
if (s_rec.zh[12]=='3' && czh!=3 && czh!=60) {
strcpy(s_snd.errmsg,"该帐号储种不允许做此交易!");
s_snd.flag=30;/*该储种不允许做此交易*/
goto return_back;
}
td_flag=0;/*yun xu*/
/**********
if (strncmp(jgm,s_rec.jgm,10)) {
if (td_yn1(s_rec.jgm)) {
strcpy(s_snd.errmsg,"本行未开通通存通兑!");
s_snd.flag=13;
goto return_back;
}
if (td_yn1(jgm)) {
strcpy(s_snd.errmsg,"开户行未开通通存通兑!");
s_snd.flag=13;
goto return_back;
}
td_flag=td_yn(czh,hbh);
}
if (td_flag!=0) {
strcpy(s_snd.errmsg,"该帐户储种未开通通存通兑!");
s_snd.flag=13;
goto return_back;
}
if (strncmp(jgm,s_rec.jgm,10)) td_flag=-1;*yunxu*
else td_flag=0;
closed for xinhui**************/
/* add for xinhui */
if( (td_flag = tc_td(s_rec.jgm,jgm,czh,hbh,zhkz,'2')) < 0) {
strcpy(s_snd.errmsg,g_errmsg);
s_snd.flag=13;
goto return_back;
}
/*****************/
zxrq = rcxtzt.yyrq;
if(lz_cl(rcxtzt.yyrq,&rffhz3,s_rec.je)){
s_snd.flag=7;
strcpy(s_snd.errmsg,g_errmsg);
goto return_back;
}
zxlsh=get_zxlsh();
if (zxlsh<0) {
s_snd.flag=19;
strcpy(s_snd.errmsg,g_errmsg);
goto return_back;
}
/******** mody by zwq 20000614 *******/
if (rffhz3.czh==60) {
if ((20000.00-(fabs(rffhz3.ye)+fabs(s_rec.je)))<0.005) {
strcpy(s_snd.errmsg,"教育储蓄余额不能超过20000元!");
s_snd.flag=13;
goto return_back;
}
}
/******** mody by zwq 20000614 *******/
$begin work;
gy_lsh=get_gylsh(g_jzgy); /****modify by yxb 99.4.7***/
s_snd.gylsh=gy_lsh;
if (gy_lsh<0) {
s_snd.flag=7;
strcpy(s_snd.errmsg,g_errmsg);
$rollback work;
goto return_back;
}
switch(s_rec.zh[12]){
case '1':
/*分户DAC错*/
if(fhz_dac(rffhz1,rffhz1.dac,2)){
strcpy(s_snd.errmsg,"帐户已被非法修改!");
s_snd.flag=27;
$rollback work;
goto return_back;
}
strncpy(g_dac,rffhz1.dac,17);
$select * into $rszdxx from szdxx where zdlx=$rffhz1.czcdlx;
if (sqlca.sqlcode) {
sprintf(s_snd.errmsg,"取折单信息表错[%d]!",sqlca.sqlcode);
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd.flag=sqlca.sqlcode;
$rollback work;
goto return_back;
}
/********* _____
if ( ((rffhz1.dyyh-1)*rszdxx.mybs+rffhz1.dyhh+1)>(rszdxx.mybs*rszdxx.ys) ) {
strcpy(s_snd.errmsg,"请先更换存折!");
s_snd.flag=25; *请先更换存折*
$rollback work;
goto return_back;
}
*******_________*****/
getflag = get_dqhh(1,rffhz1.czcdlx,&rffhz1.dyhh,&rffhz1.dyyh,0);
if(getflag!=0 && getflag != 1) {
s_snd.flag = 1;
strcpy(s_snd.errmsg,g_errmsg);
$rollback work;
goto return_back;
}
if( getflag == 1 ){
strcpy(s_snd.errmsg,"存折已满,请先换折!");
s_snd.flag=25;
$rollback work;
goto return_back;
}
/* 可删除未登折笔数判断 */
/************* 封未登折超过20笔 ZWQ 20000315*************
if (rffhz1.wdzxs>=MAXWDZBS && (rffhz1.czh==10 || rffhz1.czh==DGCZH )){
strcpy(s_snd.errmsg,"未登折项超过20笔,请先补登折!");
s_snd.flag=11;
$rollback work;
goto return_back;
}
********************************************************/
/***delete 19991112
if (rffhz1.zhkz[0]!='0')
rffhz1.js=rffhz1.js+rffhz1.ye*(zxrq-rffhz1.jyrq);
****/
if (rffhz1.zhkz[0]!='0')
rffhz1.js = get_fhjs(rffhz1,zxrq);
printf("qqq 3 js [%lf]\n", rffhz1.js);
fflush(stdout);
rffhz1.ye=rffhz1.ye-s_rec.je;
if (td_flag!=0) rffhz1.tcje=rffhz1.tcje + s_rec.je;
rffhz1.jyrq=zxrq;
rffhz1.zqcs=rffhz1.zqcs+1;
rffhz1.wdzxs=rffhz1.wdzxs+1;
/*************
if (rffhz1.dyhh+1>rszdxx.mybs) {
rffhz1.dyyh=rffhz1.dyyh+1;
rffhz1.dyhh=1;
}
else rffhz1.dyhh=rffhz1.dyhh+1;
***************/
getflag = get_dqhh(2,rffhz1.czcdlx,&rffhz1.dyhh,&rffhz1.dyyh,0);
if(getflag<0) {
s_snd.flag = 1;
strcpy(s_snd.errmsg,g_errmsg);
$rollback work;
goto return_back;
}
strcpy(s_snd.mc,rffhz1.hm);
if (td_flag!=0) s_snd.kmh=TDKMH;
else s_snd.kmh=rffhz1.kmh;
s_snd.ye=rffhz1.ye;
fhz_dac(rffhz1,rffhz1.dac,1);
$update ffhz1 set (ye,tcje,js,jyrq,zqcs,wdzxs,dyyh,dyhh,dac)
=($rffhz1.ye,$rffhz1.tcje,$rffhz1.js,$rffhz1.jyrq,$rffhz1.zqcs,$rffhz1.wdzxs,$rffhz1.dyyh,$rffhz1.dyhh,$rffhz1.dac)
where zh=$s_rec.zh and dac=$g_dac;
if (sqlca.sqlcode || sqlca.sqlerrd[2]!=1) {
sprintf(s_snd.errmsg,"更新分户帐错[%d][%d]!",sqlca.sqlcode,sqlca.sqlerrd[2]);
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd.flag=68;
$rollback work;
goto return_back;
}
/****** add by zwq 20000428 ********/
memcpy(&rfh,&rffhz1,sizeof(rffhz1));
/****** add by zwq 20000428 ********/
memset(&rfdrmx,0,sizeof(rfdrmx));
rfdrmx.kmh=rffhz1.kmh;
rfdrmx.hbh=rffhz1.hbh;
strncpy(rfdrmx.zh,rffhz1.zh,14);
strncpy(rfdrmx.dljg,s_rec.jgm,10);
strncpy(rfdrmx.jgm,rffhz1.jgm,10);
rtoday(&rfdrmx.xtrq);
rfdrmx.jyrq=zxrq;
rfdrmx.zxlsh=zxlsh;
rfdrmx.gylsh=gy_lsh;
rfdrmx.jym=s_rec.jym;
rfdrmx.jyje=s_rec.je;
rfdrmx.ye=rffhz1.ye;
rfdrmx.js=rffhz1.js;
rfdrmx.pzbz[0]='1';
if (td_flag!=0) rfdrmx.tdbz[0]='1';
else rfdrmx.tdbz[0]='0';
rfdrmx.zy=s_rec.zy;
rfdrmx.dycs=0;
rfdrmx.pzzl=s_rec.pzzl;
strncpy(rfdrmx.pzhm,s_rec.pzhm,9);
rfdrmx.jdbz[0]='2';
rfdrmx.dqyc=rffhz1.dyyh;
rfdrmx.dqybs=rffhz1.dyhh;
rfdrmx.pj=0.00;
/* modify by zjh 99.4.1 ***********/
rfdrmx.cngy=g_cngy;
rfdrmx.gy1=g_jzgy;
get_cur_time( rfdrmx.jysj );
$select * into $rczdflb from czdflb
where jgm=$s_rec.jgm and hbh=$hbh and ywzl=13;
strcpy( rfdrmx.dyzh,rczdflb.zh );
/***** end ****/
rfdrmx.gy2=0;
rfdrmx.zl[0]=rffhz1.zl[0];
strcpy(rfdrmx.sqm, " " );
rfdrmx.dac[0]='1';
$insert into fdrmx values($rfdrmx);
break;
case '2':
/*分户DAC错*/
if(fhz_dac(rffhz2,rffhz2.dac,2)){
strcpy(s_snd.errmsg,"帐户已被非法修改!");
s_snd.flag=27;
$rollback work;
goto return_back;
}
strncpy(g_dac,rffhz2.dac,17);
$select * into $rszdxx from szdxx where zdlx=$rffhz2.czcdlx;
if (sqlca.sqlcode) {
sprintf(s_snd.errmsg,"取折单信息表错[%d]!",sqlca.sqlcode);
errout ("无折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
s_snd.flag=sqlca.sqlcode;
$rollback work;
goto return_back;
}
if ( rffhz2.czh==DGCZH) {
/********
if ( ((rffhz2.dyyh-1)*rszdxx.mybs+rffhz2.dyhh+1)>(rszdxx.mybs*rszdxx.ys) ) {
strcpy(s_snd.errmsg,"请先更换存折!");
s_snd.flag=25;
$rollback work;
goto return_back;
}
********/
getflag = get_dqhh(1,rffhz2.czcdlx,&rffhz2.dyhh,&rffhz2.dyyh,0);
if(getflag!=0 && getflag != 1) {
s_snd.flag = 1;
strcpy(s_snd.errmsg,g_errmsg);
$rollback work;
goto return_back;
}
if( getflag == 1 ){
strcpy(s_snd.errmsg,"存折已满,请先换折!");
s_snd.flag=25;
$rollback work;
goto return_back;
}
/* 可删除未登折笔数判断 */
if (rffhz2.wdzxs>=MAXWDZBS) {
strcpy(s_snd.errmsg,"未登折项超过20笔,请先补登折!");
s_snd.flag=11; /*未登折项数超过20笔,请先补登折*/
$rollback work;
goto return_back;
}
rffhz2.wdzxs++;
}
/*delete at 19991112
if (rffhz2.zhkz[0]!='0')
rffhz2.js=rffhz2.js+rffhz2.ye*(zxrq-rffhz2.jyrq);
*/
if (rffhz2.zhkz[0]!='0')
rffhz2.js=get_fhjs(rffhz2,zxrq);
printf("qqq 4 js [%lf]\n", rffhz2.js);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -