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

📄 tx_dispatch.c

📁 UNIX/LINUX平台下面SMS网管原代码
💻 C
📖 第 1 页 / 共 4 页
字号:
				else
					amt = atof(tmp2);
			
				memset(tmp3, 0, sizeof(tmp3));
				memset(abstract, 0, sizeof(abstract));
				GetField(room, '|', tmp3, 8);			//摘要
				pub_trim(tmp3);
				get_abstract_type(tmp3, abstract);
				
				memset(tmp4,0, sizeof(tmp4));
				memset(tmp5, 0, sizeof(tmp5));
				GetField(room, '|', tmp4, 6);			//借贷标志
				pub_trim(tmp4);
				if(strcmp(tmp4, "C") == 0)
					strcpy(tmp5, "存入");
				else
					strcpy(tmp5, "支取");
					
				memset(tmp6, 0, sizeof(tmp6));		//一本通,一卡通子帐户序号
				GetField(room, '|', tmp6, 2);
				pub_trim(tmp6);
				
				memset(tmp7, 0, sizeof(tmp7));		//币种
				memset(vox_tmp,0, sizeof(vox_tmp));
				memset(not_tmp,0, sizeof(not_tmp));
				GetField(room, '|', tmp7, 3);		//币种
				pub_trim(tmp7);
				get_currency_type(atoi(tmp7), vox_tmp, not_tmp);
				
				memset(tmp8, 0, sizeof(tmp8));
				GetField(room, '|', tmp8, 7);
				pub_trim(tmp8);
				
				if(strlen(title) == 17 || strlen(title) == 10)
				{
					fprintf(fp_ivr, "第%d笔,帐户序号为%s,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,tmp6,amt, tmp8,tmp5,abstract);
					fprintf(fp_fax, "%2d     %-14s%-15.2lf%-15s%-6s        %s\n", icount,tmp6, amt,tmp8,tmp5, abstract);
				}
				else
				{
					fprintf(fp_ivr, "第%d笔,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,amt, tmp8,tmp5,abstract);
					fprintf(fp_fax, "%2d     %-15.2lf%-15s%-14s%-s\n", icount,amt,tmp8,tmp5, abstract);
				}
				
				break;
			case 1002:			//签约历史明细查询
			case 1102:			//非签约历史明细查询
			case 1803:			//对公历史明细查询
				
				if( (strlen(title)== 17 || strlen(title) == 10) && icount == 1)
				{
					bms_trace("11111111111");
					print_fax_head(fp_fax, title,"历史明细查询");
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "序号   交易日期         帐户序号  交易金额       余额           借贷标志  摘要\n");
				}
				if(strlen(title) == 15 && icount ==1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					print_fax_head(fp_fax, title,"历史明细查询");
					fprintf(fp_fax, "序号   交易日期        交易金额       余额           借贷标志  摘要\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				GetField(room, '|', tmp1, 1);			//交易日期
				pub_trim(tmp1);

				memset(newformat, 0, sizeof(newformat));
				FormatDate(newformat, tmp1);

				memset(tmp2, 0, sizeof(tmp2));		
				GetField(room, '|', tmp2, 5);			//交易金额
				pub_trim(tmp2);
				if((atof(tmp2)) < 0)
					amt = -(atof(tmp2));
				else
					amt = atof(tmp2);

				memset(tmp3, 0, sizeof(tmp3));
				memset(abstract, 0, sizeof(abstract));
				GetField(room, '|', tmp3, 8);			//摘要
				pub_trim(tmp3);
				get_abstract_type(tmp3, abstract);
				pub_trim(abstract);

				memset(tmp4,0, sizeof(tmp4));
				memset(tmp5, 0, sizeof(tmp5));
				GetField(room, '|', tmp4, 6);			//借贷标志
				pub_trim(tmp4);
				if(strcmp(tmp4, "C") == 0)
					strcpy(tmp5, "存入");
				else
					strcpy(tmp5, "支取");
					
				memset(tmp6, 0, sizeof(tmp6));		//一本通,一卡通子帐户序号
				GetField(room, '|', tmp6, 2);
				pub_trim(tmp6);
				
				memset(tmp7, 0, sizeof(tmp7));		//币种
				memset(vox_tmp,0, sizeof(vox_tmp));
				memset(not_tmp,0, sizeof(not_tmp));
				GetField(room, '|', tmp7, 3);		//币种
				pub_trim(tmp7);
				get_currency_type(atoi(tmp7), vox_tmp, not_tmp);
				
				memset(tmp8, 0, sizeof(tmp8));
				GetField(room, '|', tmp8, 7);		//余额
				pub_trim(tmp8);
							
				if(strlen(title) == 17 || strlen(title) == 10)
				{
			
					fprintf(fp_ivr, "第%d笔,交易日期%s,帐户序号为%s,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,newformat,tmp6,amt,tmp8, tmp5,abstract);
		  		fprintf(fp_fax, "%2d     %-17s%-10s%-15.2lf%-15s%-10s%s\n", icount,newformat,tmp6, amt,tmp8,tmp5, abstract);
		
				}
				else
				{
					fprintf(fp_ivr, "第%d笔,交易日期为%s,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,newformat,amt,tmp8, tmp5,abstract);
					fprintf(fp_fax, "%2d     %-16s%-15.2lf%-15s%-10s%-s\n", icount,newformat, amt,tmp8,tmp5, abstract);
				}
				
				break;
			case 1003:			//签约未登折明细查询
			case 1103:			//非签约客户未登折明细查询
					
				if( (strlen(title)== 17 || strlen(title) == 10) && icount == 1)
				{
					print_fax_head(fp_fax, title,"未登折明细查询");
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "序号   交易日期         帐户序号  交易金额       余额           借贷标志  摘要\n");
				}
				if(strlen(title) == 15 && icount ==1)
				{
					print_fax_head(fp_fax, title,"未登折明细查询");
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "序号   交易日期        交易金额       余额           借贷标志  摘要\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				GetField(room, '|', tmp1, 1);			//交易日期
				pub_trim(tmp1);

				memset(newformat, 0, sizeof(newformat));
				FormatDate(newformat, tmp1);

				memset(tmp2, 0, sizeof(tmp2));		
				GetField(room, '|', tmp2, 5);			//交易金额
				pub_trim(tmp2);
				if((atof(tmp2)) < 0)
					amt = -(atof(tmp2));
				else
					amt = atof(tmp2);

				memset(tmp3, 0, sizeof(tmp3));
				memset(abstract, 0, sizeof(abstract));
				GetField(room, '|', tmp3, 8);			//摘要
				pub_trim(tmp3);
				get_abstract_type(tmp3, abstract);
				pub_trim(abstract);

				memset(tmp4,0, sizeof(tmp4));
				memset(tmp5, 0, sizeof(tmp5));
				GetField(room, '|', tmp4, 6);			//借贷标志
				pub_trim(tmp4);
				if(strcmp(tmp4, "C") == 0)
					strcpy(tmp5, "存入");
				else
					strcpy(tmp5, "支取");
					
				memset(tmp6, 0, sizeof(tmp6));		//一本通,一卡通子帐户序号
				GetField(room, '|', tmp6, 2);
				pub_trim(tmp6);
				
				memset(tmp7, 0, sizeof(tmp7));		//币种
				memset(vox_tmp,0, sizeof(vox_tmp));
				memset(not_tmp,0, sizeof(not_tmp));
				GetField(room, '|', tmp7, 3);		//币种
				pub_trim(tmp7);
				get_currency_type(atoi(tmp7), vox_tmp, not_tmp);
				
				memset(tmp8, 0, sizeof(tmp8));
				GetField(room, '|', tmp8, 7);		//余额
				pub_trim(tmp8);
				
				if(strlen(title) == 17 || strlen(title) == 10)
				{
					fprintf(fp_ivr, "第%d笔,交易日期%s,帐户序号为%s,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,newformat,tmp6,amt,tmp8, tmp5,abstract);
					fprintf(fp_fax, "%2d     %-17s%-10s%-15.2lf%-15s%-10s%s\n", icount,newformat,tmp6,amt,tmp8,tmp5, abstract);
				}
				else
				{
					fprintf(fp_ivr, "第%d笔,交易日期为%s,交易金额为,%.2lf元,余额为,%s元,%s,%s,,\n", icount,newformat,amt, tmp8,tmp5,abstract);
					fprintf(fp_fax, "%2d     %-16s%-15.2lf%-15s%-10s%-s\n", icount,newformat, amt,tmp8,tmp5, abstract);
				}
				
				break;
			case 1200:			//还款帐号查询借据号
				
				memset(tmp1, 0, sizeof(tmp1));		
				GetField(room, '|', tmp1, 2);			//借据号
				pub_trim(tmp1);

				fprintf(fp_ivr, "%s@", tmp1);
				strncat(bs->notes6, tmp1,strlen(tmp1));
				strcat(bs->notes6,"&");
				//fprintf(fp_fax, "%d        %s        %s元                %s\n", icount, newformat,tmp2, abstract);
				
				break;
			case 1203:			//贷款帐户还款情况查询
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "应还期数        应还本金        已还期数        已还本金        现有余额\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				GetField(room, '|', tmp1, 5);			//应还期数
				pub_trim(tmp1);
				
				memset(tmp2, 0, sizeof(tmp2));
				GetField(room, '|', tmp2, 13);			//应还本金
				pub_trim(tmp2);
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 6);			//已还期数
				pub_trim(tmp3);
				
				memset(tmp4, 0, sizeof(tmp4));		
				GetField(room, '|', tmp4, 12);			//已还本金
				pub_trim(tmp4);

				memset(tmp5, 0, sizeof(tmp5));
				GetField(room, '|', tmp5, 14);			//当前余额
				pub_trim(tmp5);
				
				fprintf(fp_ivr, "应还期数%s期,应还本金%s元,已还期数%s期,已还本金%s元,现有余额%s元,,\n", tmp1,tmp2,tmp3,tmp4,tmp5);
				fprintf(fp_fax, "%s                %s                %s                %s                %s\n", tmp1,tmp2,tmp3,tmp4,tmp5);
				
				break;
				case 1804:			//对公贷款帐户还款情况查询
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "已还本金        未还本金\n");
				}

				memset(tmp2, 0, sizeof(tmp2));
				GetField(room, '|', tmp2, 14);			//贷款余额
				pub_trim(tmp2);
				
				memset(tmp4, 0, sizeof(tmp4));		
				GetField(room, '|', tmp4, 12);			//已还本金
				pub_trim(tmp4);

								
				fprintf(fp_ivr, "已还本金%s元,未还本金%s元,,\n", tmp4,tmp2);
				fprintf(fp_fax, "%s                %s                %s                %s                %s\n", tmp1,tmp2,tmp3,tmp4,tmp5);
				
				break;
				case 1204:			//查询贷款帐户拖欠情况
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "拖欠本金        当期本金        表外欠息        未付利息\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				GetField(room, '|', tmp1, 9);			//拖欠本金
				pub_trim(tmp1);
				
				memset(tmp2, 0, sizeof(tmp2));
				GetField(room, '|', tmp2, 7);			//当期本金
				pub_trim(tmp2);
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 10);			//表外欠息
				pub_trim(tmp3);
				
				memset(tmp4, 0, sizeof(tmp4));		
				GetField(room, '|', tmp4, 11);			//未付利息
				pub_trim(tmp4);

				fprintf(fp_ivr, "拖欠本金%s元,当期本金,%s元,表外欠息%s元,未付利息%s元,,\n", tmp1,tmp2,tmp3,tmp4);
				fprintf(fp_fax, "%s        %s        %s        %s\n", tmp1,tmp2,tmp3,tmp4);
				
				break;
				
			case 1205:			//查询逾期帐户欠款情况
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "到期日                逾期天数        拖欠本金        拖欠利息\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				memset(newformat, 0, sizeof(newformat));
				GetField(room, '|', tmp1, 2);			//到期日
				pub_trim(tmp1);
				FormatDate(newformat, tmp1);
				
				memset(tmp2, 0, sizeof(tmp2));
				GetField(room, '|', tmp2, 15);			//逾期天数
				pub_trim(tmp2);
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 9);			//拖欠本金
				pub_trim(tmp3);
				
				memset(tmp4, 0, sizeof(tmp4));		
				GetField(room, '|', tmp4, 11);			//拖欠利息
				pub_trim(tmp4);
				
				memset(tmp5, 0, sizeof(tmp5));		
				GetField(room, '|', tmp5, 10);			//表外欠息
				pub_trim(tmp5);
				
				if(atol(tmp1) > GetDate())
				{
					fprintf(fp_ivr, "到期日%s,该帐户尚未逾期,,\n", newformat);
					fprintf(fp_fax, "到期日%s,该帐户尚未逾期\n", newformat);
				}
				else
					fprintf(fp_ivr, "到期日,%s,逾期天数,%s天,拖欠本金,%s元,拖欠利息,%s元,表外欠息,%s元,,\n", newformat,tmp2,tmp3,tmp4,tmp5);
					fprintf(fp_fax, "%s        %s                %s                %s\n", newformat,tmp2,tmp3,tmp4);
				break;
				case 1806:			//查询对公帐户欠本欠息情况
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "到期日                逾期天数        拖欠本金        拖欠利息\n");
				}

				memset(tmp1, 0, sizeof(tmp1));
				memset(newformat, 0, sizeof(newformat));
				GetField(room, '|', tmp1, 2);			//到期日
				pub_trim(tmp1);
				FormatDate(newformat, tmp1);
				
				memset(tmp2, 0, sizeof(tmp2));
				GetField(room, '|', tmp2, 15);			//逾期天数
				pub_trim(tmp2);
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 9);			//拖欠本金
				pub_trim(tmp3);
				
				memset(tmp4, 0, sizeof(tmp4));		
				GetField(room, '|', tmp4, 11);			//拖欠利息
				pub_trim(tmp4);
				
				memset(tmp5, 0, sizeof(tmp5));		
				GetField(room, '|', tmp5, 10);			//表外欠息
				pub_trim(tmp5);
				
				if(atol(tmp1) > GetDate())
				{
					fprintf(fp_ivr, "到期日,%s,该帐户尚未逾期,,\n", newformat);
					fprintf(fp_fax, "到期日,%s,该帐户尚未逾期\n", newformat);
				}
				else
					fprintf(fp_ivr, "到期日,%s,逾期天数,%s天,拖欠本金,%s元,拖欠利息,%s元,表外欠息,%s元,,\n", newformat,tmp2,tmp3,tmp4,tmp5);
					fprintf(fp_fax, "%s        %s                %s                %s\n", newformat,tmp2,tmp3,tmp4);
				break;
			case 1208:			//查询贷款帐户余额
				/*
				if( icount == 1)
				{
					//fprintf(fp_fax, "凭证号:%s        \n", title);
					fprintf(fp_fax, "到期日                逾期天数        拖欠本金        拖欠利息\n");
				}
				*/
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 14);			//拖欠本金
				pub_trim(tmp3);
				
				
				fprintf(fp_ivr, "贷款帐户余额为%s\n", tmp3);
				//fprintf(fp_fax, "%s        %s                %s                %s\n", newformat,tmp2,tmp3,tmp4);
				
				break;
			case 1808:			//查询对公贷款帐户余额
				
				
				memset(tmp3, 0, sizeof(tmp3));		
				GetField(room, '|', tmp3, 14);			//贷款余额
				pub_trim(tmp3);
				
				
				fprintf(fp_ivr, "贷款帐户余额为%s\n", tmp3);
				//fprintf(fp_fax, "%s        %s                %s                %s\n", newformat,tmp2,tmp3,tmp4);
				
				break;
			default:
				break;
			
		}
	}
	fprintf(fp_ivr, "\n", tmp1);

	print_fax_tail(fp_fax);

	fclose( fp_ivr) ;
	fclose( fp_fax) ;
	fclose( fp) ;
	/*
	if(( optcode == 1002 || optcode == 1101 ) && strlen(title) == 16 ) 
	{
		fclose( fp0) ;
		fprintf(stdout, "org=[%s]\n", file);
		fprintf(stdout, "newfile=[%s]\n", newfile);
		unlink(org);
		rename(newfile, org);
	}
	*/

	if( !icount ) return 1006;

	return SUCCESS;
}


/*
 * INPUT	:src yyyyddmm
 * OUTPUT	:des yyyy.mm.dd
 */
static void FormatDate(char *des, char *src)
{
	char newformat[64], year[4 + 1], month[2 + 1],day[2 + 1];

	memset(year, 0, sizeof(year));
        memcpy(year, src, 4);
	year[4] = 0;

	memset(month, 0, sizeof(month));
        memcpy(month, src + 4, 2);
	month[2] = 0;

	memset(day, 0, sizeof(day));
        memcpy(day, src + 6, 2);
	day[2] = 0;

	memset(newformat, 0, sizeof(newformat));
	sprintf(newformat, "%s年%s月%s日", year, month, day);
	strcpy(des, newformat);

	return;
}

static int get_currency_type(int curr,char *vox,char *name)
{
	FILE *fp ;
	char filename[ 80], str[ 256] ;
	char tmp[ 10] ;

	sprintf( filename, "%s/dat/currency.dat", getenv("HOME")) ;
	if ( (fp=fopen( filename, "rb+")) == NULL ) {
		sprintf( vox, " ") ;
		sprintf( name, "----") ;
		return( FAILURE) ;
	}

	while (!feof( fp)) {
		memset( str, '\0', sizeof( str)) ;

		if ( fgets( str, 256, fp) == NULL ) break ;
		
		if ( str[ 0] == '-' || str[ 0] == '[' || str[ 0] == '#' )
			continue ;

		memset( tmp, '\0', sizeof( tmp)) ;
		if ( sscanf( str, "%s %s %s\n", tmp, vox,name) != 3 ) continue ;

		if ( atoi( tmp) == curr ) {
			//COMM_log(__FILE__,__LINE__,"vox[%s]name[%s]",vox,name);
			fclose( fp) ;
			return( SUCCESS) ;
		}
	}
	fclose( fp) ;
	sprintf( vox, " ") ;
	sprintf( name, "----") ;
	return( SUCCESS) ;
}

static int get_abstract_type(char *type, char *abstract)
{
	FILE *fp ;
	char filename[ 80], str[ 256] ;
	char tmp[ 10] ;

	sprintf( filename, "%s/dat/abstract.dat", getenv("HOME")) ;
	if ( (fp=fopen( filename, "rb+")) == NULL ) {
		sprintf( abstract, "未知交易") ;
		return( FAILURE) ;
	}

	while (!feof( fp)) {
		memset( str, '\0', sizeof( str)) ;

		if ( fgets( str, 256, fp) == NULL ) break ;
		
		if ( str[ 0] == '-' || str[ 0] == '[' || str[ 0] == '#' )
			continue ;

		memset( tmp, '\0', sizeof( tmp)) ;
		if ( sscanf( str, "%s	%s\n", tmp, abstract) != 2 ) continue ;

		if ( strcmp(tmp, type) == 0 ){
			//COMM_log(__FILE__,__LINE__,"tmp[%s]abstract[%s]",tmp,abstract);
			fclose( fp) ;
			return( SUCCESS) ;
		}
	}
	fclose( fp) ;
	sprintf( abstract, "未知交易") ;
	return( SUCCESS) ;
}

static int get_save_type(char *save_type, char *abstract)
{
	FILE *fp ;
	char filename[ 80], str[ 256] ;
	char tmp[ 10] ;

	sprintf( filename, "%s/dat/save_type.dat", getenv("HOME")) ;
	if ( (fp=fopen( filename, "rb+")) == NULL ) {
		sprintf( abstract, "未知种类") ;
		return( FAILURE) ;
	}

	while (!feof( fp)) {
		memset( str, '\0', sizeof( str)) ;

		if ( fgets( str, 256, fp) == NULL ) break ;
		
		if ( str[ 0] == '-' || str[ 0] == '[' || str[ 0] == '#' )
			continue ;

		memset( tmp, '\0', sizeof( tmp)) ;
		if ( sscanf( str, "%s	%s\n", tmp, abstract) != 2 ) continue ;

		if ( strcmp(tmp, save_type) == 0 ){
			//COMM_log(__FILE__,__LINE__,"tmp[%s]abstract[%s]",tmp,abstract);
			fclose( fp) ;
			return( SUCCESS) ;
		}
	}
	fclose( fp) ;
	sprintf( abstract, "未知种类") ;
	return( SUCCESS) ;
}

static int get_branch_name(char *brch_no, char *branch_name)
{
	FILE *fp ;
	char filename[ 80], str[ 256] ;
	char tmp[ 10] ;

	sprintf( filename, "%s/dat/branch.dat", getenv("HOME")) ;
	if ( (fp=fopen( filename, "rb+")) == NULL ) {
		sprintf( branch_name, "营业部") ;
		return( FAILURE) ;
	}

	while (!feof( fp)) {
		memset( str, '\0', sizeof( str)) ;

		if ( fgets( str, 256, fp) == NULL ) break ;
		
		if ( str[ 0] == '-' || str[ 0] == '[' || str[ 0] == '#' )
			continue ;

		memset( tmp, '\0', sizeof( tmp)) ;
		if ( sscanf( str, "%s	%s\n", tmp, branch_name) != 2 ) continue ;

		if ( strcmp(tmp, brch_no) == 0 ){
			//COMM_log(__FILE__,__LINE__,"tmp[%s]abstract[%s]",tmp,abstract);
			fclose( fp) ;
			return( SUCCESS) ;
		}
	}
	fclose( fp) ;
	sprintf( branch_name, "营业部") ;
	return( SUCCESS) ;
}


⌨️ 快捷键说明

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