📄 tx_dispatch.c
字号:
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 + -