📄 acc_fee.c
字号:
* date : 1993.10.5
*/
UC print_a_acc(ACC_STRUCT *acc, UC isacc)
{
double total_f;
UC serial_no[13];
get_s_no(acc, serial_no);
total_f = (double)(acc->local_charge)/100+\
((double)(acc->nation_charge)+(double)(acc->intern_charge))/100+\
(double)(acc->addfee[0])/100+\
(double)(acc->addfee[1])/100+\
(double)(acc->addfee[2])/100+\
(double)(acc->addfee[3])/100+\
(double)(acc->addfee[4])/100;
if(prnf("%12s", serial_no) == FALSE)
return(FALSE);
if(isacc == FEE_ACC || isacc == HFEE_ACC)
{
if(prnf(" %7lu",acc->phone_no) == FALSE)
return(FALSE);
}
else if(isacc == BAN_ACC || isacc == HBAN_ACC)
{
if(prnf(" %7lu",(UL)(acc->seral_no.hour/8 + 1) ) == FALSE)
return(FALSE);
}
else if(isacc == DAY_ACC || isacc == HDAY_ACC)
{
if(prnf(" %7lu",(UL)(acc->seral_no.day) ) == FALSE)
return(FALSE);
}
else if(isacc == MON_ACC || isacc == HMON_ACC)
{
if(prnf(" %7lu",(UL)(acc->seral_no.month) ) == FALSE)
return(FALSE);
}
else if(isacc == YEAR_ACC || isacc == YEAR_ACC)
{
if(prnf(" %7lu",(UL)(acc->seral_no.year) ) == FALSE)
return(FALSE);
}
if(prnf(" %4u", acc->local_count) == FALSE)
return(FALSE);
if(prnf(" %8.2f %4u",
(double)(acc->local_charge)/100,\
acc->nation_count) == FALSE)
return(FALSE);
if(prnf(" %8.2f %4u",
(double)(acc->nation_charge)/100,\
acc->intern_count) == FALSE)
return(FALSE);
if(prnf(" %8.2f %8.2f %8.2f\n",
(double)(acc->intern_charge)/100,\
(double)(acc->addfee[0])/100+\
(double)(acc->addfee[1])/100+\
(double)(acc->addfee[2])/100+\
(double)(acc->addfee[3])/100+\
(double)(acc->addfee[4])/100,
total_f) == FALSE)
return(FALSE);
return(TRUE);
}
UC print_accrpt_head(UC isacc)
{
UC *head[5] = {" 已 结 算 话 费 清 单",
" 班 电 话 营 业 报 表",
" 日 电 话 营 业 报 表",
" 月 电 话 营 业 报 表",
" 年 电 话 营 业 报 表"};
if(isacc == FEE_ACC || isacc == HFEE_ACC)
{
if(prnfd("\n%s\n\n", head[0]) == FALSE)
return(FALSE);
}
else if(isacc == BAN_ACC || isacc == HBAN_ACC)
{
if(prnfd("\n%s\n\n", head[1]) == FALSE)
return(FALSE);
}
else if(isacc == DAY_ACC || isacc == HDAY_ACC)
{
if(prnfd("\n%s\n\n", head[2]) == FALSE)
return(FALSE);
}
else if(isacc == MON_ACC || isacc == HMON_ACC)
{
if(prnfd("\n%s\n\n", head[3]) == FALSE)
return(FALSE);
}
else if(isacc == YEAR_ACC || isacc == HYEAR_ACC)
{
if(prnfd("\n%s\n\n", head[4]) == FALSE)
return(FALSE);
}
if(print_acctbl() == FALSE)
return(FALSE);
if(prnf(" 市 内 电 话 国 内 长 话 国 际 长 话 月租及\n") == FALSE)
return(FALSE);
if(isacc == FEE_ACC || isacc == HFEE_ACC)
{
if(print_accdtal(" 分 机 ") == FALSE)
return(FALSE);
}
else if(isacc == BAN_ACC || isacc == HBAN_ACC)
{
if(print_accdtal(" 班 次 ") == FALSE)
return(FALSE);
}
else if(isacc == DAY_ACC || isacc == HDAY_ACC)
{
if(print_accdtal(" 日 期 ") == FALSE)
return(FALSE);
}
else if(isacc == MON_ACC || isacc == HMON_ACC)
{
if(print_accdtal(" 月 份 ") == FALSE)
return(FALSE);
}
else if(isacc == YEAR_ACC || isacc == HYEAR_ACC)
{
if(print_accdtal(" 年 份 ") == FALSE)
return(FALSE);
}
if(print_acctbl() == FALSE)
return(FALSE);
return(TRUE);
}
UC print_accdtal(UC *name)
{
if(prnf("流 水 号%s次数 话费 次数 话费 次数 话费 附加费 费用合计\n", name) == FALSE)
return(FALSE);
return(TRUE);
}
UC print_acctbl(void)
{
if(prnf("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n") == FALSE)
return(FALSE);
return(TRUE);
}
UC print_accrpt_tail(UC isacc)
{
FILE *fp;
struct date now;
TIME_STRUCT stime, etime;
if(isacc == FEE_ACC || isacc == HFEE_ACC)
fp = fopen("gfsdata\\acctime.dat","rb");
else if(isacc == BAN_ACC || isacc == HBAN_ACC)
fp = fopen("gfsdata\\bantime.dat","rb");
else if(isacc == DAY_ACC || isacc == HDAY_ACC)
fp = fopen("gfsdata\\daytime.dat","rb");
else if(isacc == MON_ACC || isacc == HMON_ACC)
fp = fopen("gfsdata\\montime.dat","rb");
else if(isacc == YEAR_ACC || isacc == HYEAR_ACC)
fp = fopen("gfsdata\\yeartime.dat","rb");
if(fp == NULL)
{
message(ACCTIME_FILE_ERR);
return(FALSE);
}
fread(&stime, sizeof(TIME_STRUCT), 1, fp);
fread(&etime, sizeof(TIME_STRUCT), 1, fp);
fclose(fp);
getdate(&now);
if(print_acctbl() == FALSE)
return(FALSE);
if(prnf("起止时间:%-4u年%2u月%2u日%2u时~%-4u年%2u月%2u日%2u时 制单时间:%-4u年%2u月%2u日\n",\
stime.year, stime.month, stime.day, stime.hour,\
etime.year, etime.month, etime.day, etime.hour, \
now.da_year, now.da_mon, now.da_day )\
== FALSE)
return(FALSE);
if(new_page() == FALSE)
return(FALSE);
return(TRUE);
}
UC print_accrpt_detail(ACC_STRUCT *acc, UI num, UC isacc)
{
if(num%Page_len !=0 )
{
if(print_a_acc(acc, isacc)==FALSE)
return(FALSE);
}
else
{
if(print_accrpt_tail(isacc) == FALSE)
return(FALSE);
if(print_accrpt_head(isacc) == FALSE)
return(FALSE);
if(print_a_acc(acc, isacc)==FALSE)
return(FALSE);
}
return(TRUE);
}
FILE *open_acc_file(UC mode)
{
FILE *fp;
switch(mode)
{
case FEE_ACC:
fp = fopen("gfsdata\\feeacc.dat","rb");
if(fp == NULL)
{
message(ACCFEE_FILE_ERR);
return NULL;
}
break;
case BAN_ACC:
fp = fopen("gfsdata\\banacc.dat","rb");
if(fp == NULL)
{
message(BANACC_FILE_ERR);
return NULL;
}
break;
case DAY_ACC:
fp = fopen("gfsdata\\dayacc.dat","rb");
if(fp == NULL)
{
message(DAYACC_FILE_ERR);
return NULL;
}
break;
case MON_ACC:
fp = fopen("gfsdata\\monacc.dat","rb");
if(fp == NULL)
{
message(MONACC_FILE_ERR);
return NULL;
}
break;
case YEAR_ACC:
fp = fopen("gfsdata\\yearacc.dat","rb");
if(fp == NULL)
{
message(YEARACC_FILE_ERR);
return NULL;
}
break;
case HFEE_ACC:
fp = fopen("gfsdata\\feeacc.hst","rb");
if(fp == NULL)
{
message(HACCFEE_FILE_ERR);
return NULL;
}
break;
case HBAN_ACC:
fp = fopen("gfsdata\\banacc.hst","rb");
if(fp == NULL)
{
message(HBANACC_FILE_ERR);
return NULL;
}
break;
case HDAY_ACC:
fp = fopen("gfsdata\\dayacc.hst","rb");
if(fp == NULL)
{
message(HDAYACC_FILE_ERR);
return NULL;
}
break;
case HMON_ACC:
fp = fopen("gfsdata\\monacc.hst","rb");
if(fp == NULL)
{
message(HMONACC_FILE_ERR);
return NULL;
}
break;
case HYEAR_ACC:
fp = fopen("gfsdata\\yearacc.hst","rb");
if(fp == NULL)
{
message(HYEARACC_FILE_ERR);
return NULL;
}
break;
default:
break;
}
return fp;
}
void acc_proc(UC isacc)
{
UC *title1 = "注意:";
UC *warn1 = "因打印机出错导致扎帐不成功, 请检查打印机后重新扎帐!";
if(cal_acc_fee(isacc) == TRUE)
{
if(inq_acc_fee(isacc-1) == TRUE)
{
if(prn_acc_fee(isacc-1) == TRUE)
{
clr_acc_rcd(isacc);
}
else
{
sound_alarm();
set_msg_color(7, 0, 0);
msg_win(120, 160, title1, warn1, 200);
}
}
}
else
{
if(isacc == BAN_ACC)
message(ACCFEE_FILE_ERR);
else if(isacc == DAY_ACC)
message(BANACC_FILE_ERR);
else if(isacc == MON_ACC)
message(DAYACC_FILE_ERR);
else if(isacc == YEAR_ACC)
message(MONACC_FILE_ERR);
else
;
}
return;
}
/* 已 结 算 话 费 清 单
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
市内电话 国内长话 国际长话
--------------------------------------------------------------------------------
流 水 号 次数 话费 次数 话费 次数 话费 附加费 费用合计
012345678901 0123 01234567 0123 01234567 0123 01234567 01234567 0123456789
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
01234567890123456789012345678901234567890123456789012345678901234567890123456789
1 5 10 5 20 5 30 5 40 5 50 5 60 5 70 5
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
市内电话 国内长话 国际长话
--------------------------------------------------------------------------------
流 水 号 分 机 次数 话费 次数 话费 次数 话费 附加费 费用合计
012345678901 0123456 0123 01234567 0123 01234567 0123 01234567 01234567 01234567
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
01234567890123456789012345678901234567890123456789012345678901234567890123456789
1 5 10 5 20 5 30 5 40 5 50 5 60 5 70 5
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -