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

📄 s11010.ec.c

📁 源程序是银行综合业务平台中基本业务里的其中几个子业务的c语言的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
/******************************************************************
*	功    能:	公私活期,公私定期,内部帐开户 Server 程序
*	交 易 码:	110100
*	作    者:	E.C. 	1998.05  珠海
******************************************************************/

#ifndef NORMAL
#define EXTERN
#endif

#include 	"easy.h"
#include        "ybt.h"
$ include	"dbbuf.h";
$ include	"sqlca.h";
# define 	JBKHJYM	"110100"
# define 	DHCZH	6
$struct	struct_received   {
		int	gyh;
		int 	jym;
		struct ffhz3 	rfhz;
	}s_rec1101;
$struct	struct_send {
		int flag;
		long lsh;
		long dyhh;
		char gyxm[13];
		char zh[14];
		char errmsg[80];
}s_snd1101;

char		_address[10],filename[80];
$char	kh_jgm[10];
int	getflag;
FILE    *fp;

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

	int	flag,i,tmpint,zt;
	char	pjgm[4],nbzh[14],MY[17];
	$long	kmxh,mybs,czcdh,wxbh;
	$double   djye;
	$double	ye,zxll=0.00;
     FILE 	*fp;
	long	zhxh,intkl;
	short	mdy[3];
	$char	xjzh[14],zdsx[7];
	$char	pxqsh[9],pxjsh[9],chqsh1[9],chjsh1[9];
	char	checkbit;
	char	zl;
	$char	note[13];
	$struct	ffhz1	rxjzh;
	int	get_period();
	long cal_dqrq();
     long   xh;
     $long   rq,dycdzh;
  
#ifndef NORMAL
strcpy ( argv[1] , cSock );
strcpy ( argv[2] , cJym );
#endif

	memset ( &s_snd1101 , 0 , sizeof ( s_snd1101 ) );
	memset ( &s_rec1101 , 0 , sizeof ( s_rec1101 ) );

	flag = recv_from( argv[1] , argv[2] , _address , (void *)&s_rec1101, NULL );
printf("flag=[%d]\n",flag);fflush(stdout);
	if ( flag < 0 ){
		 s_snd1101.flag = 1;
		 strcpy(s_snd1101.errmsg,"中心接受信息错!");
		 errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		 send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
		 return 0;
	}
/* add by tl 2001/05/21  因为没有开通银税系统*/
	strcpy(s_rec1101.rfhz.nsbh,"000000");
/*add end*/
printf("gyh=%d,jym=%d\n",s_rec1101.gyh,s_rec1101.jym);fflush(stdout);
	if ( strcmp (argv[2],JBKHJYM)!=0){
		 s_snd1101.flag = 1;
		 strcpy(s_snd1101.errmsg,"中心接受信息错!");
		 errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		 send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
		 return 0;
	}

/* add by tl 因为贷款开户时会自动开13210,10700科目*/
	if ( s_rec1101.rfhz.kmh == 10600 /*|| s_rec1101.rfhz.kmh == 10702 || s_rec1101.rfhz.kmh == 10800*/){ 
		 s_snd1101.flag = 1;
		 strcpy(s_snd1101.errmsg,"该科目不能开户!");
		 errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		 send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
		 return 0;
	}
/*
	if ( s_rec1101.rfhz.kmh == 10600 ||  s_rec1101.rfhz.kmh == 10800){ 
		 s_snd1101.flag = 1;
		 strcpy(s_snd1101.errmsg,"该科目不能开户!");
		 errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		 send_to(argv[1],argv[2],_address,(void*)&s_snd1101,NULL);
		 return 0;
	}
*/
/* add end */

	s_snd1101.flag = 0;
	s_snd1101.dyhh = 0;
	strcpy(s_snd1101.zh,"\0");
	memset(MY,0,17);
	intkl=0;

#ifdef NORMAL
     $database easydb;
#endif

	if((i=chk_gyqx(s_rec1101.gyh,0,"",s_rec1101.jym,0.00,0))!=0){
		strcpy ( s_snd1101.errmsg , g_errmsg );
		errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1101.flag = 1;
		goto return_back;
	}
	zl=s_rec1101.rfhz.zl[0];
	if((zl<'0')||(zl>'8')||(zl=='5')){  /* zl is error! */
		strcpy ( s_snd1101.errmsg , "上传帐类错!");
		errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1101.flag=1;
		goto return_back;
	}
	/***** modi by zwq 20000614 *********/
	if(s_rec1101.rfhz.czh==60){
		switch(s_rec1101.rfhz.cq){
/************modify by fq  20010718*******
			case 81:
				if(fabs(s_rec1101.rfhz.ye)-1650.00>0.005){   
					strcpy ( s_snd1101.errmsg , "教育储蓄开户余额一年期不能超1650元!");
					errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
					s_snd1101.flag=1;
					goto return_back;
				}
				break;
			case 83:
				if(fabs(s_rec1101.rfhz.ye)-550.00>0.005){   
					strcpy ( s_snd1101.errmsg , "教育储蓄开户余额三年期不能超550元!");
					errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
					s_snd1101.flag=1;
					goto return_back;
				}
				break;
			case 86:
				if(fabs(s_rec1101.rfhz.ye)-250.00>0.005){   
					strcpy ( s_snd1101.errmsg , "教育储蓄开户余额六年期不能超250元!");
					errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
					s_snd1101.flag=1;
					goto return_back;
				}
				break;
*********add end********/
			case 81:
			case 83:
			case 86:
				if(fabs(s_rec1101.rfhz.ye)-20000.00>0.005){   
					strcpy ( s_snd1101.errmsg , "教育储蓄开户余亩畈荒艹20000元!");
					errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
					s_snd1101.flag=1;
					goto return_back;
				}
			default:
				break;
			}	
	}
	/***** modi by zwq 20000614 *********/

/*控制前后台利率唯一*/
	if(s_rec1101.rfhz.czh!=DHCZH ){
		$select nll into $zxll from sllb 
			where czh=$s_rec1101.rfhz.czh and hbh=$s_rec1101.rfhz.hbh 
			and cq=$s_rec1101.rfhz.cq and bz='0';
		if ( sqlca.sqlcode ) {
printf("czh=%d,hbh=%d,cq=%d",s_rec1101.rfhz.czh,s_rec1101.rfhz.hbh,s_rec1101.rfhz.cq);fflush(stdout);
			s_snd1101.flag = 1;
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			sprintf(s_snd1101.errmsg,"取后台利率失败[%d]!",sqlca.sqlcode);
			goto return_back;
		}
		if ( s_rec1101.rfhz.czh!=6 && s_rec1101.rfhz.czh!=7 && s_rec1101.rfhz.czh!=71){
			   s_rec1101.rfhz.ll=zxll;	
	/*****************/
			   if ( s_rec1101.rfhz.ll != zxll ) {
				   s_snd1101.flag = 1;
				   errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
				   sprintf(s_snd1101.errmsg,"利率不同,前台[%7.4f]后台[%7.4f]!",
						   s_rec1101.rfhz.ll,zxll);
				   goto return_back;
			   }   
		}
	}
	else
		s_rec1101.rfhz.ll=0.00;
/*判断是否一本通异所开户*****/
	strcpy(kh_jgm,s_rec1101.rfhz.jgm);

	$begin work;
/*判断纳税编号是否存在或唯一*/
	if (strncmp(s_rec1101.rfhz.nsbh,"000000",6) && s_rec1101.rfhz.nsbh[0]!=0 && s_rec1101.rfhz.nsbh[0]!=' ') {
		if ( zl=='1' ) 
		    $select * from ffhz1 where nsbh=$s_rec1101.rfhz.nsbh and zhzt[1]!='2';
		else if ( zl=='2' ) 
		    $select * from ffhz2 where nsbh=$s_rec1101.rfhz.nsbh and zhzt[1]!='2';
		if (sqlca.sqlcode && sqlca.sqlcode!=100) {
			s_snd1101.flag = 1;
			sprintf ( s_snd1101.errmsg , "检索分户帐错[%d]!" , sqlca.sqlcode );
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			$rollback work;
			goto return_back;
		}
		else if (!sqlca.sqlcode){
			s_snd1101.flag = 1;
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			strcpy ( s_snd1101.errmsg , "纳税编号已存在!");
			$rollback work;
			goto return_back;
		}
	}

/* insert kmzz ,insert by wei hua wu 1998 6 1 modify by lwy 1999 09 13*/

	if(s_rec1101.rfhz.kbz!=1 || s_rec1101.rfhz.zl[0]!='3'){

	memcpy(rzkmzz.jgm,s_rec1101.rfhz.jgm,9);
	rzkmzz.jgm[9]=0;
	rzkmzz.hbh=s_rec1101.rfhz.hbh;
	rzkmzz.kmh=s_rec1101.rfhz.kmh;
	
	$select * from zkmzz where jgm=$rzkmzz.jgm and
		hbh=$rzkmzz.hbh and kmh=$rzkmzz.kmh;

	if((sqlca.sqlcode!=0)&&(sqlca.sqlcode!=SQLNOTFOUND)){
		errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		s_snd1101.flag = 1;
		sprintf ( s_snd1101.errmsg , "检索科目总帐错[%d]!" , sqlca.sqlcode );
		$rollback work;
		goto return_back;
	}

	if(sqlca.sqlcode==SQLNOTFOUND){
	rzkmzz.ye=rzkmzz.jye=rzkmzz.js=rzkmzz.jjs=0.00;
	rzkmzz.rcye=rzkmzz.rcjye=rzkmzz.rjfse=rzkmzz.rdfse=0.00;
	rzkmzz.rjbs=rzkmzz.rdbs=0;
	rzkmzz.ycjs=rzkmzz.ycjjs=rzkmzz.ycye=rzkmzz.ycjye=rzkmzz.yjfse=rzkmzz.ydfse=0.00;
	rzkmzz.yjbs=rzkmzz.ydbs=0;
	rzkmzz.jcjs=rzkmzz.jcjjs=rzkmzz.jcye=rzkmzz.jcjye=rzkmzz.jjfse=rzkmzz.jdfse=0.00;
	rzkmzz.jjbs=rzkmzz.jdbs=0;
	rzkmzz.ncjs=rzkmzz.ncjjs=rzkmzz.ncye=rzkmzz.ncjye=rzkmzz.njfse=rzkmzz.ndfse=0.00;
	rzkmzz.njbs=rzkmzz.ndbs=0;
	rzkmzz.rkhs=rzkmzz.ykhs=rzkmzz.jkhs=rzkmzz.nkhs=rzkmzz.ljkhs=1;
	rzkmzz.rxhs=rzkmzz.yxhs=rzkmzz.jxhs=rzkmzz.nxhs=rzkmzz.ljxhs=0;
	memcpy(rzkmzz.yef,s_rec1101.rfhz.yef,1);    
	rzkmzz.yef[1]=0;
	rzkmzz.fsrq=rcxtzt.yyrq;  
	rjulmdy(rcxtzt.yyrq,mdy);
	rzkmzz.yf=mdy[0];
	rzkmzz.nf=mdy[2];
	$insert into zkmzz values($rzkmzz);
	if(sqlca.sqlcode!=0){
		errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
		printf("sqlca.errm=[%s]\n",sqlca.sqlerrm);
		sprintf ( s_snd1101.errmsg , "插入科目总帐失败[%d]!" , sqlca.sqlcode );
		s_snd1101.flag = 1;
		$rollback work;
		goto return_back;
	}
	}
	else{
		$update zkmzz set (rkhs,ykhs,jkhs,nkhs,ljkhs)=
			(rkhs+1,ykhs+1,jkhs+1,nkhs+1,ljkhs+1) 
			where jgm=$rzkmzz.jgm and
			hbh=$rzkmzz.hbh and kmh=$rzkmzz.kmh;
		if(sqlca.sqlcode || sqlca.sqlerrd[2]!=1){
			errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			sprintf ( s_snd1101.errmsg , "更新科目总帐失败[%d]!" ,sqlca.sqlcode );
			s_snd1101.flag = 1;
			$rollback work;
			goto return_back;
		}
	}

	}
		
/* insert fhz */
	switch(zl){
	case '0':
	case '6':
	case '7':
	case '8':
		$select kmxh into $kmxh from skmzd where kmh=$s_rec1101.rfhz.kmh;
		if(sqlca.sqlcode){
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			strcpy ( s_snd1101.errmsg , "中心科目字典错!");
			s_snd1101.flag = 1;
			$rollback work;
		     goto return_back;
		}
		if ( zl=='6' ) {
		    xh=atoi(s_rec1101.rfhz.zh);
		    if (( xh>=1 ) && ( xh<10 ))
			   s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh + xh ;
              if (( xh>=10 ) && ( xh<100 ))
		        s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*10 + xh;
              if (( xh>=100 ) && ( xh<1000 ))
			   s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*100 + xh;
              if (( xh>=1000 ) && ( xh<10000 ))
			   s_rec1101.rfhz.cwdh=s_rec1101.rfhz.kmh*1000 + xh;
		}
		strcpy(pjgm,"\0");
		strncpy(pjgm,s_rec1101.rfhz.jgm+6,3);
		pjgm[3]=0;
		sprintf ( nbzh , "%3s%03d%04s%02d%c" , pjgm , kmxh , killblank(s_rec1101.rfhz.zh) , s_rec1101.rfhz.hbh , zl );

		strcpy(s_rec1101.rfhz.zh,nbzh);
		$select * from ffhz3 where zh=$s_rec1101.rfhz.zh;
		if (!sqlca.sqlcode) {
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1101.flag = 1;
			strcpy ( s_snd1101.errmsg , "分户帐中已存在该帐号!");
			$rollback work;
			goto return_back;
		}

		if (sqlca.sqlcode != SQLNOTFOUND) {
			errout("现金开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1101.flag = 1;
			sprintf ( s_snd1101.errmsg , "检索分户帐错[%d]!" , sqlca.sqlcode );
			$rollback work;
			goto return_back;
		}
	
		$select * from dkxhdjb where zh=$s_rec1101.rfhz.zh;
		if (!sqlca.sqlcode) {
			errout("开户",argv[2],__FILE__,__LINE__,sqlca.sqlcode);
			s_snd1101.flag = 1;
			strcpy ( s_snd1101.errmsg , "开销户登记簿中已存在该帐号!");
			$rollback work;
			goto return_back;
		}

⌨️ 快捷键说明

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