mx_rpt.ec
来自「在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便」· EC 代码 · 共 159 行
EC
159 行
/****************************************************
* 回扣利益明细报表 mx_rpt()
* called by gen_mr()--in gen_rpt.ec
*
* 最后修改: 周国祥 2001/08/24
****************************************************/
#include <stdio.h>
#include <math.h>
#include "all.h"
#include "macro_def.h"
$include "db_struct.h"
$include sqlca;
EXEC SQL WHENEVER SQLERROR CALL error_handler;
EXEC SQL WHENEVER SQLWARNING CALL warning_handler;
EXEC SQL WHENEVER NOT FOUND CALL notfound_handler;
extern void get_tip(S_tran_ls *, double *, double *);
extern int get_son();
extern int check_son();
extern char G_cen_bankid[12];
extern char G_bankid[12];
int mx_rpt(filename, logic_date, bankid, hostid)
char *filename;
$parameter char *logic_date;
char *bankid, *hostid;
{
FILE *fp;
$S_tran_ls ls;
double sd, fk;
char son_bankid[48][12];
char son_hostid[48][3];
if (get_son(bankid, hostid, son_bankid, son_hostid) < 0)
return(-2);
if (!(fp = fopen(filename, "w"))) {
daylog(ERROR, "Open %s for write error!", filename);
return(-1); /* File operate error */
}
if (FileHead_MR(fp, logic_date)) {
fclose(fp);
return(-2); /* Database operate error */
}
$ifdef wyz020514_mod;
$declare mx_cur cursor for
select * from cur_tran_ls
where acq_bank_id != iss_bank_id
and tran_type in (1,2,3,5,6,7,8,9,10,14)
and saf_flag = '0'
and tran_flag = '0'
and manual_flag = 'N'
and resp_code like '00%'
and snd_settle_date = :logic_date
and card_type = '02'
order by card_no;
$else;
$declare mx_cur cursor for
select * from cur_settle_ls
where acq_bank_id != iss_bank_id
and snd_settle_date = :logic_date
and card_type = '02'
order by card_no;
if (SQLCODE) {
daylog(ERROR, "Declare failed![%d]", SQLCODE);
fclose(fp);
return(-2);
}
$endif;
$open mx_cur;
if (SQLCODE) {
daylog(ERROR, "Open mx_cur error![%d]", SQLCODE);
fclose(fp);
return(-2);
}
while (1) {
$fetch mx_cur into :ls;
if (SQLCODE == 100) break;
if (SQLCODE) {
daylog(ERROR, "Fetch mx_cur error![%d]", SQLCODE);
$close mx_cur;
fclose(fp);
return(-2); /* Database operate error */
}
del_st_space("tran_ls", &ls);
if (!check_son(ls.acq_bank_id, ls.acq_host_id, son_bankid, son_hostid)) {
strcpy(ls.acq_bank_id, BOC_CENTER /*"0004"*/);
strcpy(ls.acq_host_id, "00");
}
if (!check_son(ls.iss_bank_id, "00", son_bankid, son_hostid)) {
strcpy(ls.iss_bank_id, BOC_CENTER /*"0004"*/);
}
get_tip(&ls, &sd, &fk);
FileDetail_MR(fp, &ls, sd, -fk);
}
$close mx_cur;
FileTail_MR(fp);
fclose(fp);
return(0);
}
int FileHead_MR(FILE *fp, char *logic_date)
{
$S_sys_param sys;
char date[11], time[9];
char bank_name[128];
char logic_date1[11]; /* YYYY/MM/DD */
$select * into :sys from sys_param;
if (SQLCODE) {
daylog(ERROR, "Select sys_param error!");
return(-1);
}
del_st_space("sys_param", &sys);
getdatef(date, "/");
gettimef(time, ":");
fprintf(fp, "%46s中国银行BTS系统\n", " ");
fprintf(fp, "%46s回扣利益明细报表\n", " ");
str2date(logic_date1, logic_date, "/");
fprintf(fp, "BTS-504%80s清算日期: %s\n", " ", logic_date1);
get_bank_name(G_bankid, "00", bank_name);
fprintf(fp, "%-5.5s%-85s%s %s\n", G_bankid, bank_name, date, time);
fprintf(fp, "-------------------------------------------------------------------------------------------------------------\n");
fprintf(fp, "%-21s %6s %-8s %14s %-10s %-8s %6s %6s %6s %6s %8s\n", "卡 号", "中 心", "交易类型", "交易金额", "交易日期", "交易时间", "收单行", "应 付", "发卡行", "应 收", "中 心 应");
fprintf(fp, "%-21s %6s %-8s %14s %-10s %-8s %6s %6s %6s %6s %8s\n", " ", "流水号", " ", " ", " ", " ", " ", "手续费", " ", "手续费", "收手续费");
fprintf(fp, "-------------------------------------------------------------------------------------------------------------\n");
return(0);
}
int FileDetail_MR(FILE *fp, S_tran_ls *pls, double sd, double fk)
{
char buf[10];
char tmp_date[11]; /* YYYY/MM/DD */
char tmp_time[9]; /* hh:mm:ss */
str2date(tmp_date, pls->local_sys_date, "/");
str2time(tmp_time, pls->local_sys_time, ":");
type2buf(pls->tran_type, buf);
fprintf(fp, "%-6.6s-%-4.4s-%-9.9s %6ld %-8s %14.2lf %-10s %-8s %-6.6s %6.2lf %-6.6s %6.2lf %8.2lf\n", pls->card_no, pls->card_no + 6, pls->card_no + 10, pls->host_ls_no, buf, pls->tran_amt, tmp_date, tmp_time, pls->acq_bank_id, sd, pls->iss_bank_id, fk, sd - fk);
return(0);
}
int FileTail_MR(FILE *fp)
{
fprintf(fp, "-------------------------------------------------------------------------------------------------------------\n");
return(0);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?