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

📄 s11060.ec.c

📁 源程序是银行综合业务平台中基本业务里的其中几个子业务的c语言的源码
💻 C
📖 第 1 页 / 共 4 页
字号:
/*功    能:	帐户销转开户 SERVER 程序
*	交 易 码:	110600
*	作    者:	E.C. 	1998.05  珠 海
******************************************************************/
#include 	"easy.h"
$ include	dbbuf.h;
#define	EXTERN
#define	ZHXHJYM  "110600"

$struct snd_str{
	int	flag;
	long	lsh;
	int	dyhh;
	long	tzcq;
	double	tzll;
	double	lx;
	double	bj;
	double	ye ;
	char	hm[41];
	char	errmsg[80];
	char	zh[14];
	char	xhnbzh[14];
	char	khybtzh[14];
	int	khzhxh;
	int     khdyhh;
	}s_snd;

$struct rec_str{
	int	gyh;
	int	jym;
	int	xhlx;
	int	bz;
	int	khbz;
	int	pzzl;
	char	jgm[10];
	char	xhzh[14];
	char	zhmm[9];
	char	czcdh[9];
	char	sqgymm[9];
	char	pzhm[9];
	long	sqgy;
	struct	ffhz1 rfhz;
	}s_rec;

double	get_int_rate();
$struct	ffhz3 rxhfh,rlxfh,rdffh,rbwfh,rgxfh,rlxsfh;
int	lxs_bz;
char	ybtfile[80];
FILE	*fpw,*fp,*fp1;
int	getflag;
$char	lxzczh[14],lxs_zdflzh[14],xjzh[14];
double 	xhfhye;
$double  bj,lx,mylxs,mylx;


/*
double	fabs();
*/

main(argc,argv)
int	argc;
char	*argv[];
{
	char	_address[10],buf[100];
	char	fname[41];
	char	sendfile[41];
	$char	note[13];
	int	i,jcz,flag_xh;
	$int	mybs,ys,czh;
	$short	ind;
	$char	ybt_xh[9];
	double	cal_int0();
	$double	qxye;
	$char	cq[3];

/*初始化数据*/

	init();
	if ( recv_from(argv[1],argv[2],_address,(void *)&s_rec,NULL)<0 )
		return;
	if ( strcmp (argv[2],ZHXHJYM)!=0)  return;
printf("OK xhlx[%d] khbz[%d]",s_rec.xhlx,s_rec.khbz);fflush(stdout);

	lx=bj=0.00;
	lxs_bz=jcz=0;
	mylxs=mylx=0.00;
	strcpy(lxs_zdflzh,"\0");

	$database easydb;

	if(is_ybt(s_rec.xhzh)){
		sprintf(ybt_xh,"%08d",s_rec.jym%100);
		s_rec.jym = s_rec.jym/100;
	}

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

/* 打开相关文件 */
	if ( file_open(sendfile,fname) ) {
		errout ("帐户销户","打开文件错",__FILE__,__LINE__,0);
		goto  return_back1;
	}
	

	$begin work;
printf("\npzhm[%s],pzzl[%d]\n",s_rec.pzhm,s_rec.pzzl); fflush(stdout);

/* 得到销户分户信息并且进行检查 */
	if ( get_check_xhfh(ybt_xh,xhfhye,jcz) ) {
		errout ("帐户销户","",__FILE__,__LINE__,0);
		goto  return_back1;
	}

	if(rxhfh.czh==DGCZH || rxhfh.zh[12]=='1' || rxhfh.zh[12]=='3' ||
	   rxhfh.zh[12]=='4') flag_xh = 1;
	else flag_xh = 2;

	switch(flag_xh){
	  case 1 : /*有折户销户*/
		bj=fabs(rxhfh.ye);
		if(rxhfh.zhkz[0]!='0'){
			if((lx=cal_int0(rxhfh,rxhfh.czh,rxhfh.ye))<-0.005){
				s_snd.flag=1;
				strcpy(s_snd.errmsg,"利息计算错, 不能销户 !");
				$rollback work;
				goto  return_back1;
			}

		}
		else{
			lx=0.00;
			rlxdgs.lxs=0.00;
		}

printf("\npzhm[%s],pzzl[%d]\n",s_rec.pzhm,s_rec.pzzl); fflush(stdout);
		mylx=lx;

/*利息单凭证销号*/

		$select * into $rsxxbm from sxxbm where zlbz="5" and bh=$s_rec.pzzl; 
		if ( sqlca.sqlcode ) {
			strcpy ( s_snd.errmsg ,"取凭证错!");
			errout("现金开户",argv[2],__FILE__,__LINE__,0);
			s_snd.flag=1;
			$rollback work;
			goto return_back1;
		}
printf("\n test lx[%16.2f] \n",lx);fflush(stdout);
printf("\n line [%d] test lx[%16.2f] \n",__LINE__,s_snd.lx);fflush(stdout);

/*
s_snd.lx=lx;
*/
	        if ( rsxxbm.sx[1] == '1' && s_rec.pzhm[0]!=0 ) {
			if (fabs(lx)>0.005){
				if((px_del1(atol(s_rec.pzhm),atol(s_rec.pzhm),s_rec.jgm,g_jzgy,s_rec.pzzl,rcxtzt.yyrq,s_rec.jym))!=0){
					strcpy ( s_snd.errmsg ,"取利息单凭证错!");
					errout("现金开户",argv[2],__FILE__,__LINE__,0);
					s_snd.flag=1;
					$rollback work;
					goto return_back1;
				}
			}
		}



/*
		if(fabs(lx)>0.005){
			if((px_del1(atol(s_rec.pzhm),atol(s_rec.pzhm),s_rec.jgm,g_jzgy,89,rcxtzt.yyrq,s_rec.jym))!=0){
				s_snd.flag=1;
				strcpy(s_snd.errmsg,"利息单凭证错, 不能销户 !");
				$rollback work;
				goto  return_back1;
			}
		}
*/

		/* 在销转开户登记簿中登记*/
		if ( add_dxzkhdjb(bj,lx) ) {
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}

		if ( lxsfh_cl() ) {
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}

		/************准备rflxdwj数据******************/
		if(rxhfh.zhkz[0]!='0'){
			if ( lxdwj_cl(lx) ) {
				errout ("帐户销户","",__FILE__,__LINE__,0);
				goto  return_back1;
			}
		}

		if(s_rec.xhlx==1) { /*本金转开户,利息支取现金*/
			if ( xjfh_cl(bj,lx) ) {/*现金分户处理*/
				errout ("帐户销户","",__FILE__,__LINE__,0);
				goto  return_back1;
			}

		}
		else{
			/*本金利息转开户*/
			/** lxs_cl  **/
			if( !lxs_bz )  rlxdgs.lxs=0.00;
			if( s_rec.khbz==1 && kh_cl(bj+lx-rlxdgs.lxs,argv[2])) { /*开户处理*/
				   $rollback work;
				   goto  return_back1;
			}
		}

		if(rxhfh.zhkz[0]!='0'){
			if ( fabs(lx)>0.005 && lxfh_cl(lx) ) {
				errout ("帐户销户","",__FILE__,__LINE__,0);
				goto  return_back1;
			}
		}

		if ( wdz_cl(bj,lx) ) {/*未登折处理*/
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}

		if(rxhfh.zhkz[0]!='0'){
			if ( lxfhmx_cl(lx) ) {/*利息分户明细处理*/
				errout ("帐户销户","",__FILE__,__LINE__,0);
				goto  return_back1;
			}
		}

		if ( xhfhmx_cl(bj,lx) ) {/*销户分户明细处理*/
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}

		if ( kxh_lxd_cl(bj,lx) ) {/*开销户和利息单处理*/
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}
		
		break;
	default:
		 /* 无折户内部帐的销户 */
		if((fabs(rxhfh.js)>0.005 && rxhfh.zhkz[0]!=0) || fabs(rxhfh.ye)>0.005)
		{
			s_snd.flag=1;
			strcpy(s_snd.errmsg,"余额或积数不为 0, 不能销户 !");
			$rollback work;
			goto  return_back1;
		}
		
		if ( dkfh_cl() ) {/*贷款分户处理*/
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}
	     /* 无余额帐销户处理 */
		if ( wyefhxh_cl() ) {
			errout ("帐户销户","",__FILE__,__LINE__,0);
			goto  return_back1;
		}
		break;
	}

	if ( zz_qt_cl() ) {/*总账及其他处理*/

		errout ("帐户销户","",__FILE__,__LINE__,0);
		goto  return_back1;
	}

	$commit work;

	fclose(fpw);
	fclose(fp);
	$close	database;
	if(s_rec.rfhz.zl[0]=='3' && s_snd.flag==0 && s_rec.rfhz.kbz!=1)
		sprintf(s_snd.errmsg,"%.2f",s_rec.rfhz.lfzje);
	if(s_rec.rfhz.kbz==1 && s_rec.rfhz.zl[0]=='3'){
		sprintf(buf,"%s+%s+%s",sendfile,fname,ybtfile);
		killblank(s_snd.errmsg);
	}
	else {
		sprintf(buf,"%s+%s",sendfile,fname);
	}
	send_to(argv[1],argv[2],_address,(void *)&s_snd,buf);
	return 0;
return_back1:
	fclose(fpw);
	fclose(fp);
	$close	database;
	send_to(argv[1],argv[2],_address,(void *)&s_snd,NULL);
	return 0;
}

initlxdgs()
{
	$char	jymc[13],zwjx[7];

	$select jymc into $jymc from sjymb where jym=$s_rec.jym;
	strcpy(rlxdgs.jymc,jymc);
	rlxdgs.rq=rcxtzt.yyrq;
	rlxdgs.gylsh=rfdrmx.gylsh;
	$select zwjx into $zwjx from shbxx where hbh=$rxhfh.hbh;
	strcpy(rlxdgs.hbmc,zwjx);
	rlxdgs.jfkm=rlxfh.kmh;
	strcpy(rlxdgs.jfzh,rlxfh.zh);
	strcpy(rlxdgs.jfhm,rlxfh.hm);
	strcpy(rlxdgs.jfjgm,rlxfh.jgm);
	rlxdgs.dfkm=rxhfh.kmh;
	strcpy(rlxdgs.dfzh,rxhfh.zh);
	strcpy(rlxdgs.dfhm,rxhfh.hm);
	strcpy(rlxdgs.dfjgm,rdffh.jgm);
	rlxdgs.gyh=g_jzgy;
	strcpy(rlxdgs.rzbz,"1");
}

kh_cl(khje,file)
$double	khje;
char	*file;
{
	int	flag,i,tmpint,zt;
	char	pjgm[4],nbzh[14],MY[17];
	$long	kmxh,mybs,czcdh,wxbh;
	$double	ye;
	long	zhxh,intkl;
	short	mdy[3];
	$char	zdsx[7];
	$char	pxqsh[9],pxjsh[9],chqsh1[9],chjsh1[9];
	char	checkbit;
	char	zl;
	$char	note[13];
	int	get_period();
	long cal_dqrq();
	$long   xh,dycdzh;

	strcpy(s_snd.zh,"\0");
	memset(MY,0,17);
	intkl=0;

/*控制前后台利率唯一*/
	if ( check_ll() ) {
		errout ("帐户销户","检查利率",__FILE__,__LINE__,0);
		return (-1);
	}

	$select sum(fse) into $khje from dxzkhdjb where gyh=$g_jzgy and jyrq=$rcxtzt.yyrq and bz=0;
	if (sqlca.sqlcode && sqlca.sqlcode!=100) {
		s_snd.flag = 1;
		sprintf ( s_snd.errmsg , "检索销转开户登记簿错[%d]!" , sqlca.sqlcode );
		return (-1);
	}

	$update dxzkhdjb set bz=1 where gyh=$g_jzgy and jyrq=$rcxtzt.yyrq and bz=0;
	if (sqlca.sqlcode && sqlca.sqlcode!=100) {
		s_snd.flag = 1;
		sprintf ( s_snd.errmsg , "修改销转开户登记簿错[%d]!" , sqlca.sqlcode );
		return (-1);
	}


	s_rec.rfhz.ye = s_rec.rfhz.ye * khje;
	s_snd.bj=s_rec.rfhz.ye;
	zl=s_rec.rfhz.zl[0];
	if((zl<'0')||(zl>'8')||(zl=='5')){  /* zl is error! */
		strcpy ( s_snd.errmsg , "开户帐类错!");
		s_snd.flag=1;
		return (-1);
	}

	/*判断纳税编号是否存在或唯一*/
	if (strncmp(s_rec.rfhz.nsbh,"000000",6) && s_rec.rfhz.nsbh[0]!=0 && s_rec.rfhz.nsbh[0]!=' ') {
		$select * from ffhz2 where nsbh=$s_rec.rfhz.nsbh and zhzt[1]!='2';
		if (sqlca.sqlcode && sqlca.sqlcode!=100) {
			s_snd.flag = 1;
			sprintf ( s_snd.errmsg , "检索分户帐错[%d]!" , sqlca.sqlcode );
			return (-1);
		}
		else if (!sqlca.sqlcode){
			s_snd.flag = 1;
			strcpy ( s_snd.errmsg , "纳税编号已存在!");
			return (-1);
		}
	}
	/* insert kmzz ,insert by wei hua wu 1998 6 1 modify by lwy 1999 09 13*/
	if(s_rec.rfhz.kbz!=1 || s_rec.rfhz.zl[0]!='3'){

	memcpy(rzkmzz.jgm,s_rec.rfhz.jgm,9);
	rzkmzz.jgm[9]=0;
	rzkmzz.hbh=s_rec.rfhz.hbh;
	rzkmzz.kmh=s_rec.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("销转开户",file,__FILE__,__LINE__,sqlca.sqlcode);
		s_snd.flag = 1;
		sprintf ( s_snd.errmsg , "检索科目总帐错[%d]!" , sqlca.sqlcode );
		return (-1);
	}

	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_rec.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("销转开户",file,__FILE__,__LINE__,sqlca.sqlcode);
		   sprintf ( s_snd.errmsg , "插入科目总帐失败[%d]!" , sqlca.sqlcode );
		   s_snd.flag = 1;
		   return (-1);
	  }
	}
	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("销转开户",file,__FILE__,__LINE__,sqlca.sqlcode);
			sprintf ( s_snd.errmsg , "更新科目总帐失败[%d]!" ,sqlca.sqlcode );
			s_snd.flag = 1;
			return (-1);
		}
	}

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

		strcpy(s_rec.rfhz.zh,nbzh);
		$select * from ffhz3 where zh=$s_rec.rfhz.zh;
		if (!sqlca.sqlcode) {
			s_snd.flag = 1;
			strcpy ( s_snd.errmsg , "分户帐中已存在该帐号!");
			return (-1);
		}

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

		if (sqlca.sqlcode != SQLNOTFOUND) {
			errout("销转开户",file,__FILE__,__LINE__,sqlca.sqlcode);
			sprintf ( s_snd.errmsg , "检索开销户登记簿错[%d]!" , sqlca.sqlcode );
			s_snd.flag = 1;
			return (-1);
		}

	      	
	     sprintf(MY,"000%13s",s_rec.rfhz.zh);
		killblank(s_rec.rfhz.zhmm);
		intkl=atol(s_rec.rfhz.zhmm);
		compmm(MY,intkl,s_rec.rfhz.zhmm);

		if (fhz_dac(s_rec.rfhz,s_rec.rfhz.dac,1) !=0) {
			strcpy ( s_snd.errmsg , g_errmsg );
			s_snd.flag = 1;
			return (-1);
		}

		$insert into ffhz3 values($s_rec.rfhz);
		if (sqlca.sqlcode) {
			errout("现金开户",file,__FILE__,__LINE__,sqlca.sqlcode);
			sprintf ( s_snd.errmsg , "插入分户帐失败[%d]!" , sqlca.sqlcode );
			s_snd.flag = 1;
			return (-1);
		}
		
		sprintf(note,"%02d-%-5d",s_rec.rfhz.hbh,s_rec.rfhz.kmh);
		$insert into dkxhdjb values($s_rec.rfhz.jgm,$s_rec.rfhz.zh,
			$s_rec.rfhz.hm,$s_rec.rfhz.khrq,$note,$g_jzgy,0, "0");

		if (sqlca.sqlcode) {
			errout("现金开户",file,__FILE__,__LINE__,sqlca.sqlcode);

⌨️ 快捷键说明

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