⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 s13010.ec.c

📁 源程序是银行综合业务平台中基本业务里的其中几个子业务的c语言的源码
💻 C
📖 第 1 页 / 共 2 页
字号:

/*********************************************************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 + -