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

📄 tx_dispatch.c

📁 UNIX/LINUX平台下面SMS网管原代码
💻 C
📖 第 1 页 / 共 4 页
字号:
	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);

	bms_trace("FormNFile beginning........");
	ret = FormNFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if(ret)
	{
			bs->result = 1406;
			return FAILURE;
	}
	
	return( SUCCESS) ;
}

/* 
 * 交易码:1806
 * 功能  :查询对公帐户欠本欠息情况
 * 客户  :签约客户
 */
int b1806( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
			
	return( SUCCESS) ;
}

/* 
 * 交易码:1808
 * 功能  :贷款帐户余额查询
 * 客户  :签约客户
 */
int b1808( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
		
	if(CallHost(bs) == FAILURE) return FAILURE;
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
return( SUCCESS) ;
}

/******贷款业务***********/
/* 
 * 交易码:1200
 * 功能  :根据还款帐号查询借据号
 * 客户  :签约客户
 */
int b1200( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	

	if(CallHost(bs) == FAILURE) return FAILURE;
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
	return( SUCCESS) ;
}

/* 
 * 交易码:1201
 * 功能  :查询贷款信息
 * 客户  :签约客户
 */
int b1201( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);

	bms_trace("FormNFile beginning........");
	ret = FormNFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if(ret)
	{
			bs->result = 1406;
			return FAILURE;
	}
	
	return( SUCCESS) ;
}
/* 
 * 交易码:1202
 * 功能  :(暂无)查询贷款帐户每月明细
 * 客户  :签约客户
 */
int b1202( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
	return( SUCCESS) ;
}

/* 
 * 交易码:1203
 * 功能  :查询贷款帐户还款情况
 * 客户  :签约客户
 */
int b1203( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);	
	
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
	return( SUCCESS) ;
}

/* 
 * 交易码:1204
 * 功能  :查询贷款帐户拖欠情况
 * 客户  :签约客户
 */
int b1204( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
	return( SUCCESS) ;
}

/* 
 * 交易码:1205
 * 功能  :查询逾期帐户欠款情况
 * 客户  :签约客户
 */
int b1205( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	char orgfile[128];
	
	memset(orgfile, '\0', sizeof(orgfile));
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	sprintf(bs->address, "%05d.%04d",bs->trade_serial,bs->optcode);
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
			
	return( SUCCESS) ;
}

/* 
 * 交易码:1206
 * 功能  :查询还款帐户余额
 * 客户  :签约客户
 */
int b1206( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
	int pAccType;
	
	if (strlen(bs->debi_acct) <=4) 
	{
		strcpy(bs->debi_aid,bs->debi_acct);
		memset(bs->debi_acct,'\0',sizeof(bs->debi_acct));
		if ((ret = DB_search_acct(bs->debi_acct,bs->cid,bs->debi_aid,pAccType)) != SUCCESS)
		{
			bs->result = ret ; 
			return (FAILURE);
		}
	}	
	if(CallHost(bs) == FAILURE) return FAILURE;
			
	if ( (ret=FormFile(bs->optcode, bs->address, bs->debi_acct, bs)) != SUCCESS) 
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
	return( SUCCESS) ;
}

/* 
 * 交易码:1207
 * 功能  :抵押物、质押物信息查询
 * 客户  :签约客户
 */
int b1207( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
		
	if(CallHost(bs) == FAILURE) return FAILURE;

	return( SUCCESS) ;
}

/* 
 * 交易码:1208
 * 功能  :贷款帐户余额查询
 * 客户  :签约客户
 */
int b1208( TRADE_HEAD *tr_h, BIG_STRC *bs)
{
	int ret = -1;
		
	if(CallHost(bs) == FAILURE) return FAILURE;
	bms_trace("FormFile beginning........");
	ret = FormFile(bs->optcode, bs->address, bs->debi_acct, bs);
	if( ret )
	{
		if( ret == 1006)
		{
			bs->result = 1006;
			return FAILURE;
		}
		else
		{
			bs->result = 1406;
			return FAILURE;
		}
	}
return( SUCCESS) ;
}

/**** 辅助处理函数 ****/

static int FormNFile(int optcode, char *file, char *title, BIG_STRC *bs)
{
	FILE *fp ;
	FILE *fp_ivr;
	FILE *fp_fax;
	char org[128];
	char ivr[128];
	char fax[128];
	char newformat1[16];
	char newformat2[16];
	float rate;

	memset(org, 0, sizeof(org));
	memset(ivr, 0, sizeof(ivr));
	memset(fax, 0, sizeof(fax));
	memset(newformat1,'\0', sizeof(newformat1));
	memset(newformat2,'\0', sizeof(newformat2));
	sprintf(org, "%s/tmp/%s", getenv("HOME"), file);
	sprintf(ivr, "%s/tmp/%s.ivr", getenv("HOME"), file);
	sprintf(fax, "%s/tmp/%s.fax", getenv("HOME"), file);

	if((fp = fopen(org, "wb+")) == NULL) 
	{
		bms_trace("Write original file failed[%s]", org);
		return FAILURE;
	}
	if ( (fp_ivr = fopen(ivr, "wb+")) == NULL || (fp_fax = fopen(fax, "wb+")) == NULL ) 
	{
		fclose( fp) ;
		return FAILURE;
	}

	//print_fax_head(fp_fax, title);
	
	switch(optcode)
	{
	case 1201:
	case 1805:
		FormatDate(newformat1, bs->date1);
		FormatDate(newformat2, bs->date2);
		rate = atof(bs->rate);
		fprintf(fp,"%s|%s|%.2lf|%s|%s|%.3lf\n", bs->cred_acct, bs->name, bs->debi_amt, newformat1, newformat2,rate);
		fprintf(fp_fax,"%s|%s|%.2lf|%s|%s|%.3lf|\n", bs->cred_acct, bs->name, bs->debi_amt, newformat1, newformat2,rate);
		fprintf(fp_ivr,"贷款帐号%s,户名%s,贷款金额%.2lf元,放款日期%s,到期日期%s,年利率为,%.3lf,,\n",bs->cred_acct, bs->name, bs->debi_amt, newformat1, newformat2,rate);
	  break;
	case 1005:
		FormatDate(newformat2, bs->date2);
		pub_trim(bs->name);
		get_branch_name(bs->notes2, bs->notes3);

		fprintf(fp,"%s|%s|%s|%s|%s|%.2lf|%d|\n", bs->name,bs->notes4, bs->date2, bs->notes2, bs->notes3,bs->cred_amt, bs->bill_flg);
		fprintf(fp_ivr,"户名为%s\n", bs->name);
	
	  /*
	case 1203:
		fprintf(fp_fax,"%s|%.2lf|%s|%.2lf|%.2lf|", bs->detail_num, bs->debi_amt, bs->source_ser, bs->money2, bs->debi_bala);
		fprintf(fp_ivr,"应还期数%d|应还余额%.2lf|已还期数%d|已还本金%.2lf|余额%.2lf|",bs->detail_num, bs->debi_amt, bs->source_ser, bs->money2, bs->debi_bala);
	  break;
	case 1204:
		fprintf(fp_fax,"%.2lf|%.2lf|%.2lf|%.2lf|", bs->debi_bala, bs->debi_amt, bs->cred_bala, bs->money1, bs->debi_bala);
		fprintf(fp_ivr,"拖欠本金%.2lf|当期本金%.2lf|表外欠息%.2lf|拖欠利息%s|",bs->debi_bala, bs->debi_amt, bs->cred_bala, bs->money1, bs->debi_bala);
	  break; 
	case 1205:
		FormatDate(newformat2, bs->date2);
		fprintf(fp_fax,"%s|%.2lf|%.2lf|", bs->date2, bs->debi_bala, bs->money1);
		fprintf(fp_ivr,"到期日%s|拖欠本金%.2lf|拖欠利息%.2lf|",bs->date2, bs->debi_bala, bs->money1);
	  break; 
	  */
	default:
		break;
	}
	
	fclose( fp) ;
	fclose( fp_ivr) ;
	fclose( fp_fax) ;
	return( SUCCESS) ;
}

static int FormFile(int optcode, char *file, char *title, BIG_STRC *bs)
{
	FILE *fp, *fp0;
	FILE *fp_ivr;
	FILE *fp_fax;
	char org[128];
	char ivr[128];
	char fax[128];
	char newfile[128];
	char room[2048];
	int  counter = 0, icount = 0;
	char tmp[128],tmp1[128],tmp2[128],tmp3[128],tmp4[128];
	char tmp5[128],tmp6[128],tmp7[128], tmp8[128], tmp9[128], dir[128];
	char status[2];
	char newformat[64];
	double amt = 0.00;
	char vox_tmp[5];
	char not_tmp[19];
	char abstract[128]; 
	char file_abs[100];

	memset(org, 0, sizeof(org));
	sprintf(org, "%s/tmp/%s", getenv("HOME"), file);
	if((fp = fopen(org, "rb")) == NULL) 
	{
		bms_trace("Open original file failed[%s]", org);
		return FAILURE;
	}
	
	memset(ivr, 0, sizeof(ivr));
	sprintf(ivr, "%s/tmp/%s.ivr", getenv("HOME"), file);
	sprintf(fax, "%s/tmp/%s.fax", getenv("HOME"), file);

	if ( (fp_ivr = fopen(ivr, "wb+")) == NULL || (fp_fax = fopen(fax, "wb+")) == NULL ) 
	{
		fclose( fp) ;
		return FAILURE;
	}
/*
	memset(newfile, 0, sizeof(newfile));
	sprintf(newfile, "%s/tmp/%s.%s", getenv("HOME"), file, title);
	if(( optcode == 1002 || optcode == 1101 ) && strlen(title) == 16 ) 
	{
		if ( (fp0 = fopen(newfile, "wb+")) == NULL ) 
		{
			fclose(fp);
			fclose(fp_ivr);
			fclose(fp_fax);
			return FAILURE;
		}
	}
*/

	//print_fax_head(fp_fax, title,file_abs);
	
  while(!feof(fp))
	{
		memset(room, 0, sizeof(room));
		if(fgets(room, 2048, fp) == NULL ) break ;

		++icount;

		switch(optcode) 
		{
			case 1000:		//签约余额查询
			case 1100:		//非签约余额查询
			case 1801:		//对公余额查询
				
				if((strlen(title) == 10 ||strlen(title) == 17) && 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(tmp4, 0, sizeof(tmp4));
				memset(abstract, 0, sizeof(abstract));
				GetField(room, '|', tmp4, 4);		//科目类别
				pub_trim(tmp4);	
				get_save_type(tmp4, abstract);
				pub_trim(abstract);
				
				memset(tmp2, 0, sizeof(tmp2));
				memset(vox_tmp,0, sizeof(vox_tmp));
				memset(not_tmp,0, sizeof(not_tmp));
				GetField(room, '|', tmp2, 6);		//币种
				pub_trim(tmp2);
				get_currency_type(atoi(tmp2), vox_tmp, not_tmp);
				
				memset(tmp3, 0, sizeof(tmp3));	//帐户余额
				GetField(room, '|', tmp3, 5);
				pub_trim(tmp3);
				
				if(strlen(title) == 10 ||strlen(title) == 17)					//一本通帐户||一卡通客户
				{
						fprintf(fp_ivr, "子帐户序号为,%s,%s,币种为%s,余额为%s元,,\n", tmp1, abstract,not_tmp, tmp3);
						fprintf(fp_fax, "%2d      %-10s        %-20s    %-10s  %s元\n", icount, tmp1, abstract,not_tmp, tmp3);
				}
				
				if(strlen(title) == 15)					//普通存折
				{
						fprintf(fp_ivr, "帐号为,%s,%s,币种为,%s,金额为,%s元,,\n", title,abstract, not_tmp, tmp3);
						fprintf(fp_fax, "%-20s    %-20s    %-10s     %s元\n", title, abstract,not_tmp, tmp3);
				}
				break;
			case 1206:		//还款帐户余额查询
				//print_fax_head(fp_fax, title,"还款帐户余额查询");
				memset(tmp1, 0, sizeof(tmp1));
				GetField(room, '|', tmp1, 1);		//子帐户序号
				pub_trim(tmp1);	
				
				memset(tmp2, 0, sizeof(tmp2));
				memset(vox_tmp,0, sizeof(vox_tmp));
				memset(not_tmp,0, sizeof(not_tmp));
				GetField(room, '|', tmp2, 6);		//币种
				pub_trim(tmp2);
				get_currency_type(atoi(tmp2), vox_tmp, not_tmp);
				
				memset(tmp3, 0, sizeof(tmp3));	//帐户余额
				GetField(room, '|', tmp3, 5);
				pub_trim(tmp3);
				
				fprintf(fp_ivr, "还款帐号为,%s,币种为,%s,金额为,%s元,,\n", title, not_tmp, tmp3);
				fprintf(fp_fax, "%s        %s        %s元\n", title, not_tmp, tmp3);
				
			break;
			case 1001:			//当日明细查询
			case 1101:			//当日明细查询
			case 1802:			//对公当日明细查询
				
				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));	
				amt = 0.00;	
				GetField(room, '|', tmp2, 5);			//交易金额
				pub_trim(tmp2);
				if((atof(tmp2)) < 0)
					amt = -(atof(tmp2));

⌨️ 快捷键说明

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