bank_rpt.ec

来自「在SCO UNIX制定界面程序 可根据文件配制菜单,而不必修改源程序,非常方便」· EC 代码 · 共 685 行 · 第 1/2 页

EC
685
字号
	fclose(c_bd);
	fclose(d_bd);
	fclose(c_yd);
	fclose(d_yd);

	return(0);
}

int FileHead_bank_shhz(fp, title, sy, s_date, e_date, date, time)
	FILE *fp;
	char *title;
	S_sys_param sy;
	char *s_date;
	char *e_date;
	char *date;
	char *time;
{
	char	bank_name[128];
	char	ss_date[11];
	char	ee_date[11];
	char	date1[11];
	char	time1[9];

	if (strlen(s_date) == 8) {
		sprintf(ss_date, "%4.4s/%2.2s/%2.2s", s_date, s_date+4, s_date+6);
		sprintf(ee_date, "%4.4s/%2.2s/%2.2s", e_date, e_date+4, e_date+6);
	}
	if (strlen(date) == 8) {
		sprintf(date1, "%4.4s/%2.2s/%2.2s", date, date+4, date+6);
		sprintf(time1, "%2.2s:%2.2s:%2.2s", time, time+2, time+4);
	}
	fprintf(fp, "%23s中国银行BTS系统%6.6s\n", " ", title);
	fprintf(fp, "%23s商户交易入帐汇总\n", " ");
	fprintf(fp, "BTS-400%30s清算日期: %s-%s\n", " ", ss_date, ee_date);
	get_bank_name(sy.bank_id, sy.host_id, bank_name);
	fprintf(fp, "%-5.5s%-44s%s %s\n", sy.bank_id, bank_name, date1, time1);
	fprintf(fp, "-------------------------------------------------------------------------\n");
	fprintf(fp, "%-15s %-20s %12s %10s %12s\n", "商 户 号", "商 户 名 称", "总计金额", "总计回扣", "总计净额");
	fprintf(fp, "-------------------------------------------------------------------------\n");
}

int FileHead_bank_shmx(fp, title, sy, s_date, e_date, date, time)
	FILE *fp;
	char *title;
	S_sys_param sy;
	char *s_date;
	char *e_date;
	char *date;
	char *time;
{
	char	bank_name[128];
	char	ss_date[11];
	char	ee_date[11];
	char	date1[11];
	char	time1[9];

	if (strlen(s_date) == 8) {
		sprintf(ss_date, "%4.4s/%2.2s/%2.2s", s_date, s_date+4, s_date+6);
		sprintf(ee_date, "%4.4s/%2.2s/%2.2s", e_date, e_date+4, e_date+6);
	}
	if (strlen(date) == 8) {
		sprintf(date1, "%4.4s/%2.2s/%2.2s", date, date+4, date+6);
		sprintf(time1, "%2.2s:%2.2s:%2.2s", time, time+2, time+4);
	}

	fprintf(fp, "%25s中国银行BTS系统%6.6s\n", " ", title);
	fprintf(fp, "%25s商户交易入帐明细\n", " ");
	fprintf(fp, "BTS-401%32s清算日期: %s-%s\n", " ", ss_date, ee_date);
	get_bank_name(sy.bank_id, sy.host_id, bank_name);
	fprintf(fp, "%-5.5s%-46s%s %s\n", sy.bank_id, bank_name, date1, time1);
}

int FileSubHead_bank_shmx(fp, m_data)
	FILE *fp;
	M_DATA m_data;
{
	fprintf(fp, "\n\n商户号: %-15.15s 商户名称: %s\n", m_data.merch, m_data.name);
	fprintf(fp, "---------------------------------------------------------------------------\n");
	fprintf(fp, "%-19s %12s %10s %6s %-10s %-8s\n", "卡  号", "交易金额", "手续费", "授权码", "交易日期", "交易时间");
	fprintf(fp, "---------------------------------------------------------------------------\n");
}

int FileDetail_bank_shhz(fp, m_data, data)
	FILE *fp;
	M_DATA m_data;
	DATA data;
{
	if (!data.num) return(0);

	fprintf(fp, "%-15.15s %-20.20s %12.2lf %10.2lf %12.2lf\n", m_data.merch, m_data.name, data.amt, data.tip, data.amt - data.tip);
}

int FileDetail_bank_shmx(fp, pls, tip)
	FILE *fp;
	S_tran_ls *pls;
	double tip;
{
	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, ":");

	fprintf(fp, "%-19.19s %12.2lf %10.2lf %6.6s %-10.10s %-8.8s\n", pls->card_no, - pls->tran_amt, tip, pls->auth_no, tmp_date, tmp_time);
}

int FileSubTail_bank_shmx(fp, data)
	FILE *fp;
	DATA data;
{
	if (!data.num) return(0);

	fprintf(fp, "---------------------------------------------------------------------------\n");
	fprintf(fp, "%6s  %12s  %10s  %12s\n", "笔  数", "交易金额", "手续费", "入帐金额");
	fprintf(fp, "%6ld  %12.2lf  %10.2lf  %12.2lf\n", data.num, data.amt, data.tip, data.amt - data.tip);
}

int FileTail_bank_shhz(fp, data)
	FILE *fp;
	DATA data;
{
	fprintf(fp, "-------------------------------------------------------------------------\n");
	if (data.total_num) fprintf(fp, "合  计  --  金额 :%12.2lf  回扣 :%10.2lf  净额 :%12.2lf\n", data.total_amt, data.total_tip, data.total_amt - data.total_tip);
}

int FileTail_bank_shmx(fp, data)
	FILE *fp;
	DATA data;
{
	if (!data.total_num) return(0);

	fprintf(fp, "\n\n");
	fprintf(fp, "%6s  %12s  %10s  %12s\n", "合  计", "交易金额", "手续费", "入帐金额");
	fprintf(fp, "%6s  %12.2lf  %10.2lf  %12.2lf\n", " ", data.total_amt, data.total_tip, data.total_amt - data.total_tip);
}

int FileHead_bank_mx(fp, title, card, sy, s_date, e_date, date, time)
	FILE *fp;
	char *title;
	char *card;
	S_sys_param sy;
	char *s_date;
	char *e_date;
	char *date;
	char *time;
{
	char	bank_name[128];
	char	ss_date[11];
	char	ee_date[11];
	char	date1[11];
	char	time1[9];

	if (strlen(s_date) == 8) {
		sprintf(ss_date, "%4.4s/%2.2s/%2.2s", s_date, s_date+4, s_date+6);
		sprintf(ee_date, "%4.4s/%2.2s/%2.2s", e_date, e_date+4, e_date+6);
	}
	if (strlen(date) == 8) {
		sprintf(date1, "%4.4s/%2.2s/%2.2s", date, date+4, date+6);
		sprintf(time1, "%2.2s:%2.2s:%2.2s", time, time+2, time+4);
	}

	fprintf(fp, "%15s中国银行BTS系统%6.6s\n", " ", title);
	fprintf(fp, "%15s商户%6.6s交易明细清单\n", " ", card);
	fprintf(fp, "BTS-402%14s清算日期: %s-%s\n", " ", ss_date, ee_date);
#ifdef wyz020429_mod
	get_bank_name(sy.bank_id, sy.host_id, bank_name);
	fprintf(fp, "%-5.5s%-28.28s%s %s\n", sy.bank_id, bank_name, date1, time1);
#else
	get_bank_name(G_bankid, "00", bank_name);
	fprintf(fp, "%-5.5s%-28.28s%s %s\n", G_bankid, bank_name, date1, time1);
#endif
	fprintf(fp, "---------------------------------------------------------\n");
	fprintf(fp, "%-19s %12s %-10s %-8s\n", "卡  号", "交易金额", "交易日期", "交易时间");
	fprintf(fp, "---------------------------------------------------------\n");
}

int FileDetail_bank_mx(fp, pls)
	FILE *fp;
	S_tran_ls *pls;
{
	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, ":");

	fprintf(fp, "%-19.19s %12.2lf %-10.10s %-8.8s\n", pls->card_no, - pls->tran_amt, tmp_date, tmp_time);
}

int FileTail_bank_mx(fp)
	FILE *fp;
{
	fprintf(fp, "---------------------------------------------------------\n");
}

int debit_jymx(file, sys, logic_date, his_flag)
	char *file;
	$parameter S_sys_param sys;
	$parameter char *logic_date;
	int	his_flag;
{
	FILE	*fp;
	$char	sqlstr[512];
	$S_tran_ls ls;
	char	table_name[32];
	char	sign_bankid[12], sign_hostid[3];

	fp = fopen(file, "w");
	if (!fp) {
		daylog(ERROR, "Open %s for write error!", file);
		return(-1);
	}

	FileHead_debit_jymx(fp, sys, logic_date);

	/* 原2,3,4,5,8,11:消费,退货,取款,存款,转帐,确认 
	 * 现1,2,3,5,6,7,8,9,10,14:消费,授权消费,取款,确认,
     	 * 转出,存款,调帐,转入,退货,双转 */
$ifdef wyz020508_mod;
	$declare d_cur cursor for select * from cur_tran_ls
	where (acq_bank_id = :sys.bank_id or iss_bank_id = :sys.bank_id)
	and tran_type in (1,2,3,5,6,7,8,9,10,14)
	and snd_settle_date = :logic_date
	and resp_code like '00%'
	and manual_flag = 'N'
	and card_type = '02'	/* 借记卡02 */
	and tran_flag in ('0', '4')
	and saf_flag = '0'
	order by acq_bank_id, merchant_id, terminal_id;
$else;
	if (his_flag == 1) 
		sprintf(table_name, "his_settle_ls");
	else
		sprintf(table_name, "cur_settle_ls");

	sprintf(sqlstr, "select * from %s	\
		where (acq_bank_id = \'%s\'	\
		or iss_bank_id = \'%s\')	\
		and snd_settle_date = \'%s\'	\
		and card_type = '02'		\
		order by merchant_id, terminal_id",
		table_name, sys.bank_id, sys.bank_id,
		logic_date);

	EXEC SQL PREPARE sel_ls from :sqlstr;
	if (SQLCODE) {
		daylog(ERROR, "PREPARE failed(%d)", SQLCODE);
		fclose(fp);
		return -1;
	}

	EXEC SQL DECLARE d_cur cursor for sel_ls;
	if (SQLCODE) {
		daylog(ERROR, "DECLARE FAILED![%d]", SQLCODE);
		fclose(fp);	
		return(-1);
	}
	
$endif;

	$open d_cur;
	if (SQLCODE) {
		errcall(ERROR, "Open d_cur error![%d]", SQLCODE);
		fclose(fp);
		return(-1);
	}

	while (1) {
		$fetch d_cur into :ls;
		if (SQLCODE == 100) break;
		if (SQLCODE) {
			errcall(ERROR, "Fetch d_cur error![%d]", SQLCODE);
			$close d_cur;
			fclose(fp);
			return(-1);
		}
		
		del_st_space("tran_ls", &ls);

		if (strcmp(G_cen_bankid, G_bankid)) {
			get_sign_bank(ls.merchant_id, sign_bankid, sign_hostid);
			if (strcmp(G_bankid, sign_bankid)) 
				continue;
		}

		FileDetail_debit_jymx(fp, &ls);
	}
	$close d_cur;

	FileTail_debit_jymx(fp);

	fclose(fp);
	return(0);
}

int FileHead_debit_jymx(fp, sys, logic_date)
	FILE *fp;
	S_sys_param sys;
	char *logic_date;
{
	char date[11], time[9];
	char	bank_name[128];
	
	getdatef(date, "/");
	gettimef(time, ":");

	fprintf(fp, "%42s中国银行BTS系统借记卡\n", " ");
	fprintf(fp, "%42s全辖交易明细清单\n", " ");
	fprintf(fp, "BTS-808%77s清算逻辑日: %s\n", " ", logic_date);
#ifdef wyz020429_mod
	get_bank_name(sys.bank_id, sys.host_id, bank_name);
	fprintf(fp, "%-5.5s%-82s%s %s\n", sys.bank_id, bank_name, date, time);
#else
	get_bank_name(G_bankid, "00", bank_name);
	fprintf(fp, "%-5.5s%-82s%s %s\n", G_bankid, bank_name, date, time);
#endif
	fprintf(fp, "----------------------------------------------------------------------------------------------------------\n");
	fprintf(fp, "%-21s %-8s %14s %6s %-15s %-8s %-6s %-6s %-10s %-8s\n", "卡  号", "交易类型", "交易金额", "授权码", "商户号", "EDC 号", "收单行", "发卡行", "交易日期", "交易时间");
	fprintf(fp, "----------------------------------------------------------------------------------------------------------\n");
}

int FileDetail_debit_jymx(fp, pls)
	FILE *fp;
	S_tran_ls *pls;
{
	char buf[16];
	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 %-8s %14.2lf %6s %-15.15s %-8.8s %-6.6s %-6.6s %-10s %-8s\n", pls->card_no, pls->card_no + 6, pls->card_no + 10, buf, pls->tran_amt, pls->auth_no, pls->merchant_id, pls->terminal_id, pls->acq_bank_id, pls->iss_bank_id, tmp_date, tmp_time);
}

int FileTail_debit_jymx(fp)
	FILE *fp;
{
	fprintf(fp, "----------------------------------------------------------------------------------------------------------\n");
}

⌨️ 快捷键说明

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