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

📄 s13030.ec.c

📁 源程序是银行综合业务平台中基本业务里的其中几个子业务的c语言的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************************************************
*
*	FILENAME:	S13030.ec
*	FUNCTION:	有折存款
*	交 易 码:	130301
*	作    者:	李  昕
*	LASTCHANG:	1998.05, 珠海
***********************************************************/

#ifndef NORMAL
#define EXTERN
#endif

# include 	"easy.h"
$ include 	"dbbuf.h";
# define 	YZCKJYM	"130301"
# define	TDKMH	41604
# define	DGCZH	15

FILE	*fpw;
$	struct{
		int gyh;
		int jym;
		int hbh;
		char jgm[10];
		char zdh[11];
		char zh[14];
		double fse;
		int zy;
		}s_rec1303;
$	struct{
		int flag;
		int dyhh;
		int dzlx;
		int wdzxs;
		long  gylsh;
		char mc[41];
		double ye;
		long	kmh;                
		char	errmsg[80];
		}s_snd1303;

int		getflag;

#ifdef NORMAL
main(argc,argv)
int	argc;
char	*argv[];
{
#else
int s13030( cSock , cJym )
char *cSock , *cJym;
{
char argv[3][20];
#endif

	char	jym[7],_address[10];
	$long	gy_lsh,zxlsh;
	$int    czh;
	$long 	zxrq,xtrq;
	$char	zhzt[4],zhkz[9],jgm[10],sendfile[20],tmpfile[60],tmpnr[1024];
	int	td_flag,i,chk_jym;
	char	*format="%h%i%s",	*get_time();
	char	rq[7];
	$struct ffhz3 rfh;

#ifndef NORMAL
strcpy ( argv[1] , cSock );
strcpy ( argv[2] , cJym );
#endif

	memset( &s_snd1303, 0, sizeof( s_snd1303 ) );
	memset( &s_rec1303, 0, sizeof( s_rec1303 ) );
	memset( &tmpnr, 0, 1024 );

	s_snd1303.flag=0;
	strcpy(s_snd1303.errmsg,"\0");

	if ( recv_from(argv[1],argv[2],_address,&s_rec1303,NULL)<0 ){
		s_snd1303.flag = 1;
		strcpy(s_snd1303.errmsg, "中心接受交易失败!");
		send_to(argv[1],argv[2],_address,&s_snd1303,NULL);
		return -1;
	}

	if ( strcmp (argv[2],YZCKJYM)!=0) { 
		s_snd1303.flag = 1;
		strcpy(s_snd1303.errmsg, "中心接受交易失败!");
		send_to(argv[1],argv[2],_address,&s_snd1303,NULL);
		return -1;
	}


	s_snd1303.wdzxs=0;
	s_snd1303.ye=0;
	strcpy(s_snd1303.mc,"\0");
	s_snd1303.kmh=0;                
trace("jgm=[%s] gyh=[%d]",s_rec1303.jgm,s_rec1303.gyh);

#ifdef NORMAL
	$database	easydb;
	if (sqlca.sqlcode)   {
		sprintf(s_snd1303.errmsg,"打开数据库错[%d]!",sqlca.sqlcode);
		errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1303.flag=sqlca.sqlcode;
		goto  return_back;
	}
#endif

	/**add by lwy****/
	chk_jym = s_rec1303.jym;
	s_rec1303.jym = fabs(s_rec1303.jym);
	/****************/

	if((i=chk_gyqx(s_rec1303.gyh,0,"",s_rec1303.jym,0.00,0))!=0){
		strcpy(s_snd1303.errmsg,g_errmsg);
		s_snd1303.flag=i; 
		goto return_back1;
	}

	sprintf(sendfile,"easyfile.%05d",g_jzgy);
	sprintf(tmpfile,"%s/%s",getenv("UDTFILEDIR"),sendfile);
	if((fpw=fopen(tmpfile,"w"))==NULL){
		strcpy(s_snd1303.errmsg,"主机打开文件错!");
		s_snd1303.flag=37;  /*打开文件错  */
		errout("打开文件错",argv[2],__FILE__,__LINE__,-1);
		goto  return_back1;
	}

     $select * into $rczdflb from czdflb 
	  	where jgm=$s_rec1303.jgm and hbh=$s_rec1303.hbh and ywzl=13;
	if (sqlca.sqlcode)   {
		if(sqlca.sqlcode != 100)
			sprintf(s_snd1303.errmsg,"取自动分录表错[%d]!",sqlca.sqlcode);
		else
			sprintf(s_snd1303.errmsg,"自动分录表无现金交易记录!");
		errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1303.flag=sqlca.sqlcode;
		goto  return_back;
	}

	switch(s_rec1303.zh[12]){
	case '1':
		  $select * into $rffhz1 from ffhz1 where zh=$s_rec1303.zh;
		  strcpy(jgm,rffhz1.jgm);
		  czh = rffhz1.czh;
		  strcpy(zhzt,rffhz1.zhzt);
		  strcpy(zhkz,rffhz1.zhkz);
		  break;
	case '2': /***增加对公活期户(15)*/
		  $select * into $rffhz2 from ffhz2 where zh=$s_rec1303.zh;
		  strcpy(jgm,rffhz2.jgm);
		  czh = rffhz2.czh;
		  strcpy(zhzt,rffhz2.zhzt);
		  strcpy(zhkz,rffhz2.zhkz);
		  break;
	case '3':
		  $select * into $rffhz3 from ffhz3 where zh=$s_rec1303.zh;
		  strcpy(jgm,rffhz3.jgm);
		  czh = rffhz3.czh;
		  strcpy(zhzt,rffhz3.zhzt);
		  strcpy(zhkz,rffhz3.zhkz);
		  break;
	default:  
		  s_snd1303.flag=-999;
		  strcpy(s_snd1303.errmsg,"帐户无效!");
		  goto return_back;
	}

	if (sqlca.sqlcode && sqlca.sqlcode!=100)   {
		sprintf(s_snd1303.errmsg,"取分户信息错[%d]!",sqlca.sqlcode);
		errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1303.flag=sqlca.sqlcode;
		goto  return_back;
	}
	if (sqlca.sqlcode==100)   {
		strcpy(s_snd1303.errmsg,"无此帐户!");
		s_snd1303.flag=5;/*无此帐户*/
		goto  return_back;
	}
	if(zhzt[0]=='2'){
		strcpy(s_snd1303.errmsg,"帐户已销户!");
		s_snd1303.flag=14;/*销户*/
		goto  return_back;
	}
	if(zhzt[1]=='1' || zhzt[1]=='2'){
		strcpy(s_snd1303.errmsg,"帐户已挂失!");
		s_snd1303.flag=1;/*帐户挂失*/
		goto  return_back;
	}
	if(zhzt[2]=='3'){
		strcpy(s_snd1303.errmsg,"帐户已封锁!");
		s_snd1303.flag=6;/*帐户封锁*/
		goto  return_back;
	}
	if (s_rec1303.zh[12]=='3' && czh!=3 && czh!=60) {
		strcpy(s_snd1303.errmsg,"本交易不允许该储种操作!");
		s_snd1303.flag=30;/*该储种不允许做此交易*/
		goto  return_back;
	}
	/******** mody by zwq 20000614 *******/
	if (rffhz3.czh==60) {
		if ((20000.00-(fabs(rffhz3.ye)+fabs(s_rec1303.fse)))<-0.005) {
			strcpy(s_snd1303.errmsg,"教育储蓄余额不能超过20000元!");
			s_snd1303.flag=13;
			goto  return_back;
		}
	}
	/******** mody by zwq 20000614 *******/
	/**** add by jm 1999.04.26 ***/
	if (s_rec1303.zh[12]=='2' && czh!=DGCZH) {
		strcpy(s_snd1303.errmsg,"本交易不允许该储种操作!");
		s_snd1303.flag=30;/*该储种不允许做此交易*/
		goto  return_back;
	}
	td_flag=0;

	/* add for xinhui */
	if( (td_flag = tc_td(s_rec1303.jgm,jgm,czh,s_rec1303.hbh,zhkz,'2')) < 0) {
		strcpy(s_snd1303.errmsg,g_errmsg);
		s_snd1303.flag=13;
		goto  return_back;
	}	
	/*****************/

	/***add by lwy 2000.03.31***/
	if(s_rec1303.zh[12]=='1'){
		killblank(rffhz1.dbr);
		if( rffhz1.cwdh==0 && (strlen(rffhz1.dbr)==0) && (chk_jym>0)){
			   s_snd1303.flag = 1000;
			   goto  return_back;
		}
	}
	if(s_rec1303.zh[12]=='3'){
		killblank(rffhz3.dbr);
		if( rffhz3.cwdh==0 && strlen(rffhz3.dbr)==0 && (chk_jym>0)){
			   s_snd1303.flag = 1000;
			   goto  return_back;
		}
	}
	/***************************/
		
	zxrq = rcxtzt.yyrq;
/* modify by tl 2001/02/13 因为零整的漏二补五情况已发生,但追帐时实际系统未处理
	if(lz_cl(rcxtzt.yyrq,&rffhz3,s_rec1303.fse)){
		s_snd1303.flag=7;
		strcpy(s_snd1303.errmsg,g_errmsg);
		goto  return_back;
	}
*/

	zxlsh=get_zxlsh();
	if (zxlsh<0) {
		strcpy(s_snd1303.errmsg,g_errmsg);
		s_snd1303.flag=19;
		goto  return_back;
	}	
	rfmtdate(zxrq,"yymmdd",rq);

	$begin work;
	gy_lsh=get_gylsh(g_jzgy);
	s_snd1303.gylsh=gy_lsh;
	if (gy_lsh<0) {
		strcpy(s_snd1303.errmsg,g_errmsg);
		s_snd1303.flag=7;
		$rollback work;
		goto  return_back;
	}	
	switch(s_rec1303.zh[12]){
	case '1':
		if(fhz_dac(rffhz1,rffhz1.dac,2)){
			strcpy(s_snd1303.errmsg,"帐户被非法改动过!");
			s_snd1303.flag=27; /*分户DAC错*/
			$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_snd1303.errmsg,"取折单信息错[%d]!",sqlca.sqlcode);
			errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1303.flag=sqlca.sqlcode;
			$rollback work;
			goto  return_back;
		}

		/*请先更换存折*/
		/********************
		if ( ((rffhz1.dyyh-1)*rszdxx.mybs+rffhz1.dyhh+1)>(rszdxx.mybs*rszdxx.ys) ) {
			strcpy(s_snd1303.errmsg,"请先更换存折!");
			s_snd1303.flag=25; 
			$rollback work;
			goto  return_back;
		}
		***************/
		getflag = get_dqhh(1,rffhz1.czcdlx,&rffhz1.dyhh,&rffhz1.dyyh,0);
		if(getflag<0) {
			s_snd1303.flag = 1;
			strcpy(s_snd1303.errmsg,g_errmsg);
			$rollback work;
			goto return_back;
		}
		if(getflag) {
			strcpy(s_snd1303.errmsg,"请先更换存折!");
			s_snd1303.flag=25; 
			$rollback work;
			goto  return_back;
		}
/******
		if (rffhz1.wdzxs>0)	{
			strcpy(s_snd1303.errmsg,"有未登折项,请先补登折!");
			s_snd1303.flag=11;
			$rollback work;
			goto 	return_back;
		}	
******/
		if (rffhz1.wdzxs!=0)  {
			s_snd1303.wdzxs=rffhz1.wdzxs;
			i=get_wdz(fpw,s_rec1303.zh,rffhz1.wdzxs,rffhz1.czcdlx);
			if (i!=0)	{
				strcpy(s_snd1303.errmsg,g_errmsg);
				s_snd1303.flag=1; /*未登折有错*/
				$rollback work;
				goto  return_back;
			}
		}
		s_snd1303.dyhh=(rffhz1.dyyh-1)*rszdxx.mybs+rffhz1.dyhh-rffhz1.wdzxs+1;

		s_snd1303.dzlx=rffhz1.czcdlx;
		/*
		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);

		rffhz1.ye=rffhz1.ye-s_rec1303.fse; 	
		if (td_flag!=0)	rffhz1.tcje=rffhz1.tcje + s_rec1303.fse;
		rffhz1.jyrq=zxrq; 	
		rffhz1.zqcs=rffhz1.zqcs+1; 	
		rffhz1.wdzxs=0; 	
		/*****************
		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_snd1303.flag = 1;
			strcpy(s_snd1303.errmsg,g_errmsg);
			$rollback work;
			goto return_back;
		}

		strcpy(s_snd1303.mc,rffhz1.hm);
		if (td_flag!=0)	s_snd1303.kmh=TDKMH;
			else	s_snd1303.kmh=rffhz1.kmh;               
		s_snd1303.ye=rffhz1.ye; 	
		fhz_dac(rffhz1,rffhz1.dac,1); 
		/***add by lwy****/
		rffhz1.bsxj = get_czye(rffhz1.czh,rffhz1.wdzxs,rffhz1.ye,rffhz1.bsxj);

		$update ffhz1 set (ye,tcje,bsxj,js,jyrq,zqcs,wdzxs,dyyh,dyhh,dac)
			=($rffhz1.ye,$rffhz1.tcje,$rffhz1.bsxj,$rffhz1.js,$rffhz1.jyrq,$rffhz1.zqcs,$rffhz1.wdzxs,$rffhz1.dyyh,$rffhz1.dyhh,$rffhz1.dac) 
			where zh=$s_rec1303.zh and dac=$g_dac;
		if (sqlca.sqlcode || sqlca.sqlerrd[2]!=1)   {
			sprintf(s_snd1303.errmsg,"更新分户错[%d][%d]!",sqlca.sqlcode,sqlca.sqlerrd[2]);
			errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1303.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_rec1303.jgm,10);
		strncpy(rfdrmx.jgm,rffhz1.jgm,10);
		rtoday(&rfdrmx.xtrq);
		rfdrmx.jyrq=zxrq;
		rfdrmx.zxlsh=zxlsh;
		rfdrmx.gylsh=gy_lsh;
		rfdrmx.jym=s_rec1303.jym;
		rfdrmx.jyje=s_rec1303.fse;
		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_rec1303.zy;
		rfdrmx.dycs=1;
		rfdrmx.pzzl=0;
		strcpy(rfdrmx.pzhm,"00000000");
		rfdrmx.jdbz[0]='2';
		rfdrmx.dqyc=rffhz1.dyyh;
		rfdrmx.dqybs=rffhz1.dyhh;
		rfdrmx.pj=0.00;
		rfdrmx.gy1=g_jzgy;
		rfdrmx.cngy=g_cngy;	
		get_cur_time( rfdrmx.jysj );
		$select * into $rczdflb from czdflb 
			where jgm=$s_rec1303.jgm and hbh=$s_rec1303.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);
		if (sqlca.sqlcode)   {
			sprintf(s_snd1303.errmsg,"增加当日明细错[%d]!",sqlca.sqlcode);
			errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1303.flag=sqlca.sqlcode;
			$rollback work;
			goto  return_back;
		}

		rfdrmx.ye=0-rfdrmx.ye;
		gen_czline(tmpnr,rfdrmx.jdbz[0],rfdrmx.jyrq,rfdrmx.zy,rfdrmx.jyje,rfdrmx.ye,rfdrmx.gy1,rffhz1.czcdlx);
		fprintf(fpw,"%s\n",tmpnr);

		break;
	case '2':
		if(fhz_dac(rffhz2,rffhz2.dac,2)){
			strcpy(s_snd1303.errmsg,"帐户被非法改动过!");
			s_snd1303.flag=27; /*分户DAC错*/
			$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_snd1303.errmsg,"取折单信息错[%d]!",sqlca.sqlcode);
			errout ("有折存款",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1303.flag=sqlca.sqlcode;
			$rollback work;
			goto  return_back;
		}

		/*请先更换存折*/
		/*****************
		if ( ((rffhz2.dyyh-1)*rszdxx.mybs+rffhz2.dyhh+1)>(rszdxx.mybs*rszdxx.ys) ) {
			strcpy(s_snd1303.errmsg,"请先更换存折!");
			s_snd1303.flag=25;
			$rollback work;
			goto  return_back;
		}
		******************/
		getflag = get_dqhh(1,rffhz2.czcdlx,&rffhz2.dyhh,&rffhz2.dyyh,0);
		if(getflag<0) {
			s_snd1303.flag = 1;
			strcpy(s_snd1303.errmsg,g_errmsg);
			$rollback work;
			goto return_back;
		}
		if(getflag) {
			strcpy(s_snd1303.errmsg,"请先更换存折!");
			s_snd1303.flag=25;
			$rollback work;
			goto  return_back;
		}

/*******
		if (rffhz2.wdzxs>0)	{	
			strcpy(s_snd1303.errmsg,"有未登折项,请先补登折!");
			s_snd1303.flag=11;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -