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