gen_dz_rpt.ec

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

EC
625
字号
	char		tmp_file[128];
	char filename[128], path[80];
	char file[3][80], mer_id[20];
	int mer_cnt, ret, i;
	static char pflag[3], first = 1;
	char *pfile[3] = {"mer_bc_mx", "edc_bc_mx", "edc_bhz"};

	if ( first ) {
		first = 0;
		memset ( pflag , 1 , 3 );
	}

	sprintf(filename, "/tmp/.gen_frgn_shdz.%d", getpid());
	scr_dump(filename);
	
	$select * into $sys from sys_param ;
	if ( SQLCODE ) {
		errcall(ERROR, "Unable select sys_param %d !", SQLCODE);
		return -1;
	}
	del_st_space("sys_param", &sys);

	disp_below("国际卡商户日对帐报表");
	clear_wline(stdscr, LINES-1);
	h_prompt(LINES-1, 1, "                                                                 < ESC 退出 > ", 0, 0);
	h_prompt(LINES-1, 1, "国际卡商户日对帐报表", 0, 0);
	my_win = newwin(19, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	set_prompt(PROMPT_OFF);

#ifndef wyz_mod_020408
	getdatef(s_logic_date, "");
#else
	get_settle_date(s_logic_date);
#endif

	mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", s_logic_date);
	if (in_item(my_win, "", 2, 21, s_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_frgn_shdz;

	strcpy ( e_logic_date , s_logic_date );

	mvwprintw(my_win, 3, 4, "请确认清算日期: [%s]", e_logic_date);
	if (in_item(my_win, "", 3, 21, e_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_frgn_shdz;
	
#ifdef Wubin20020827_del
	if (strcmp(s_logic_date, e_logic_date) != 0) {
		goto end_frgn_shdz;
	}
#endif
	
	memset(mer_id, 0, sizeof(mer_id));	
	mvwprintw(my_win, 4, 4, "请输入商户编号: [%15s]", " ");
	if (in_item(my_win, "", 4, 21, mer_id, 15, NULL, NULL, 0, 0) !=
	    ENTER) goto end_frgn_shdz;

	DelSpace(mer_id);
	if ( mer_id[0] > '9' || mer_id[0] < '0' )
		mer_cnt = 0;
	else
		mer_cnt = 1;
	
	print_enable=0;
	print_enable|=MER_BC_MX|EDC_BC_MX|EDC_BHZ;

	createsbox ( 10 , 30 , 8 , 1 , 1 , "请选择生成报表类型      " );
	
	additem ( 0 , "商户批次明细报表" , pflag[0] );
	additem ( 0 , "EDC 批次明细报表" , pflag[1] );
	additem ( 0 , "EDC 批次汇总报表" , pflag[2] );
	
	clear_wline(stdscr, LINES-1);
	mvwprintw(stdscr, LINES-1, 23, "切换: Space  确认: Enter  取消: ESC");
	refresh();

	ret = dispsbox();
	
	if ( ret != 0 ) {
		freesbox();
	        goto end_frgn_shdz;
	}
	else {
		print_enable = 0;
		for ( i=0 ; i < 3 ; i++ ) {
			getitemflag ( 0 , i , &(pflag[i]) );
			if ( pflag[i] == 1 ) {
				switch ( i ) {
				case 0:
				print_enable |= MER_BC_MX;
				break;
				case 1:
				print_enable |= EDC_BC_MX;
				break;
				case 2:
				print_enable |= EDC_BHZ;
				break;
				}
			}
		}
		freesbox();
	}
			
	daylog(DEBUG, "正在生成国际卡商户日对帐报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date , e_logic_date );

	mvwprintw(my_win, 6, 4, "正在生成国际卡商户日对帐报表, 请稍候 ...");
	
	wrefresh(my_win);
	
	shdz_rpt_flag=FOREIGN_RPT;
	ret = shdz_rpt( mer_id , mer_cnt );
	if (ret < 0) {
		h_winprompt(my_win, 17, 4, "生成国际卡报表出错!", 1, 0);
		goto end_frgn_shdz;
	}

	daylog(DEBUG, "国际卡商户日对帐报表生成成功!");

	strcpy(path, getenv("WORKDIR"));
	memset(file, 0, sizeof(file));
	for (i = 0; i < 3; i++) {
		if (pflag[i] == 1) {
			sprintf(file[i], "%s/prt/%s/frgn.%s", path, G_bankid, pfile[i]);
		}
	}
	print_file(my_win, 8, 17, 3, file[0], file[1], file[2]);
			
end_frgn_shdz:
	delwin(my_win);
	scr_restore(filename);
	unlink(filename);
	return(0);
}

int gen_shbhz ()
{
	$S_sys_param sys;
	char debit_bhz[128], credit_bhz[128];
	char filename[128];
	WINDOW *my_win;
	SETTLE_RESULT	s_r;
	FILE		*fp;
	char		tmp_file[128];
	int ret;

	sprintf(filename, "/tmp/.gen_shbdz.%d", getpid());
	scr_dump(filename);
	
	$select * into $sys from sys_param ;
	if ( SQLCODE ) {
		errcall ( ERROR , "Unable select sys_param %d !" ,\
		SQLCODE );
		return -1;
	}
	del_st_space("sys_param", &sys);

	disp_below("人民币卡商户批汇总报表");
	clear_wline(stdscr, LINES-1);
	h_prompt(LINES-1, 1, "                                                                 < ESC 退出 > ", 0, 0);
	h_prompt(LINES-1, 1, "人民币卡商户批汇总报表", 0, 0);
	my_win = newwin(19, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	set_prompt(PROMPT_OFF);

	print_enable=0;
	print_enable|=MER_BHZ;

#ifndef wyz_mod_020408
	getdatef(s_logic_date, "");
#else
	get_settle_date(s_logic_date);
#endif
	mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", s_logic_date);
	if (in_item(my_win, "", 2, 21, s_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_shbhz;

	strcpy ( e_logic_date , s_logic_date );

	mvwprintw(my_win, 3, 4, "请确认清算日期: [%s]", e_logic_date);
	if (in_item(my_win, "", 3, 21, e_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_shbhz;

#ifdef Wubin20020827_del
	if (strcmp(s_logic_date, e_logic_date) != 0) {
		goto end_shbhz;
	}
#endif
	
	daylog(DEBUG, "正在生成人民币卡商户批汇总报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date , e_logic_date );

	mvwprintw(my_win, 6, 4, "正在生成人民币卡商户批汇总报表, 请稍候 ...");
	
	wrefresh(my_win);
	
	shdz_rpt_flag=DEBIT_RPT;
	ret = shdz_rpt( NULL , 0 );
	if (ret < 0) {
		h_winprompt(my_win, 17, 4, "生成借记卡报表出错!", 1, 0);
		goto end_shbhz;
	}

	shdz_rpt_flag=CREDIT_RPT;
	ret = shdz_rpt( NULL , 0 );
	if (ret < 0) {
		h_winprompt(my_win, 17, 4, "生成信用卡报表出错!", 1, 0);
		goto end_shbhz;
	}

	daylog(DEBUG, "人民币卡商户批汇总报表生成成功!");

	sprintf(debit_bhz, "%s/prt/%s/debit.mer_bhz", getenv("WORKDIR"), G_bankid);
	sprintf(credit_bhz, "%s/prt/%s/credit.mer_bhz", getenv("WORKDIR"), G_bankid);
	print_file(my_win, 8, 17, 2, credit_bhz, debit_bhz);

end_shbhz:
	delwin(my_win);
	scr_restore(filename);
	unlink(filename);
	return(0);
}

int gen_bank_shdz()
{
	$S_sys_param sys;
	char	tmp_file[128];
	char	cre_hz[80], cre_mx[80], cre_bd[80], cre_yd[80];
	char	deb_hz[80], deb_mx[80], deb_bd[80], deb_yd[80];
	char	filename[128], path[64];
	char	settle_date[9];
	WINDOW *my_win;
	int	ret;

	sprintf(filename, "/tmp/.gen_bank_shdz.%d", getpid());
	scr_dump(filename);
	
	$select * into $sys from sys_param ;
	
	if (SQLCODE) {
		errcall(ERROR, "Unable select sys_param![%d]", SQLCODE);
		return(-1);
	}

	disp_below("人民币卡商户入帐报表");
	clear_wline(stdscr, LINES-1);
	h_prompt(LINES-1, 1, "                                                                 < ESC 退出 > ", 0, 0);
	h_prompt(LINES-1, 1, "人民币卡商户入帐报表", 0, 0);
	my_win = newwin(19, 80, 3, 0);
	mvwprintw(my_win, 0, 0, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━");
	wrefresh(my_win);

	set_prompt(PROMPT_OFF);

#ifndef wyz_mod_020408
	getdatef(s_logic_date, "");
#else
	get_settle_date(settle_date);
	strcpy(s_logic_date, settle_date);
#endif

	mvwprintw(my_win, 2, 4, "请输入清算日期: [%s]", s_logic_date);
	if (in_item(my_win, "", 2, 21, s_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_bank_shdz;

	strcpy(e_logic_date, s_logic_date);
	mvwprintw(my_win, 3, 4, "请确认清算日期: [%s]", e_logic_date);
	if (in_item(my_win, "", 3, 21, e_logic_date, 8, NULL, NULL, 0, 0) !=
	    ENTER) goto end_bank_shdz;
	
#ifdef Wubin20020827_del
	if (strcmp(s_logic_date, e_logic_date) != 0) {
		goto end_bank_shdz;
	}
#endif

	daylog(DEBUG, "正在生成人民币卡商户入帐报表, 清算日期: %s-%s, 请稍候 ...", s_logic_date, e_logic_date);

	mvwprintw(my_win, 5, 4, "正在生成人民币卡商户入帐报表, 请稍候 ...");
	
	wrefresh(my_win);
	
	ret = bank_shdz(sys, s_logic_date, e_logic_date);
	if (ret < 0) {
		h_winprompt(my_win, 17, 4, "生成报表出错!", 1, 0);
		goto end_bank_shdz;
	}

	daylog(DEBUG, "人民币卡商户入帐报表生成成功!");

	strcpy(path, getenv("WORKDIR"));
	sprintf(cre_hz, "%s/prt/%s/credit.mer_dz_hz", path, G_bankid);
	sprintf(deb_hz, "%s/prt/%s/debit.mer_dz_hz", path, G_bankid);
	sprintf(cre_mx, "%s/prt/%s/credit.mer_dz_mx", path, G_bankid);
	sprintf(deb_mx, "%s/prt/%s/debit.mer_dz_mx", path, G_bankid);
	sprintf(cre_bd, "%s/prt/%s/credit.mer_bd_mx", path, G_bankid);
	sprintf(deb_bd, "%s/prt/%s/debit.mer_bd_mx", path, G_bankid);
	sprintf(cre_yd, "%s/prt/%s/credit.mer_yd_mx", path, G_bankid);
	sprintf(deb_yd, "%s/prt/%s/debit.mer_yd_mx", path, G_bankid);

	print_file(my_win, 7, 17, 8, cre_hz, cre_mx, cre_bd, cre_yd,
		   deb_hz, deb_mx, deb_bd, deb_yd);

end_bank_shdz:
	delwin(my_win);
	scr_restore(filename);
	unlink(filename);
	return(0);
}

⌨️ 快捷键说明

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