⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acc_fee.c

📁 BC3.1编译,小交换机计费系统.使用Dos做出如此好的界面,少有.
💻 C
📖 第 1 页 / 共 2 页
字号:
 * 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 + -