Exemplo n.º 1
0
def print_bill_history(userobj):
    """
    个人中心-账单明细 打印模块
    :param userobj: 用户对象
    :return:
    """
    dates = get_date()
    startdate = dates["start"]
    enddate = dates["end"]
    # 保存所有账单流水的记录列表,数据为一个字符串
    msglist = list()
    # 获取显示模板
    _template = templates.report_bill
    # 获取符合条件的账单明细记录(dict_list 类型)
    _recordlist = dbapi.load_bill_report(userobj.bindcard, startdate, enddate)
    for record in _recordlist:
        tmpmsg = "{time}      {costtype}  {cost}     {crdno}".format(
            time=record["starttime"],
            costtype=record["payfor"].ljust(10),
            cost=str(record["cost"]).ljust(6),
            crdno=record["serialno"])
        msglist.append(tmpmsg)
    # 填充模板并打印
    common.show_message(
        _template.format(cardno=userobj.bindcard,
                         startdate=startdate,
                         enddate=enddate,
                         billdetail="\n".join(msglist)), "NOTICE")
Exemplo n.º 2
0
def print_bill_history(userobj):
    """
    个人中心-账单明细 打印模块
    :param userobj: 用户对象
    :return:
    """
    dates = get_date()
    startdate = dates["start"]
    enddate = dates["end"]
    # 保存所有账单流水的记录列表,数据为一个字符串
    msglist = list()
    # 获取显示模板
    _template = template.report_bill
    # 获取符合条件的账单明细记录(dict_list 类型)
    _recordlist = dbapi.load_bill_report(userobj.bindcard, startdate, enddate)
    for record in _recordlist:
        tmpmsg = "{time}      {costtype}  {cost}     {crdno}".format(time=record["starttime"],
                                                                     costtype=record["payfor"].ljust(10),
                                                                     cost=str(record["cost"]).ljust(6),
                                                                     crdno=record["serialno"])
        msglist.append(tmpmsg)
    # 填充模板并打印
    common.show_message(_template.format(cardno=userobj.bindcard,
                                         startdate=startdate,
                                         enddate=enddate,
                                         billdetail="\n".join(msglist)
                                         ), "NOTICE")
Exemplo n.º 3
0
def create_card_statement(cardno):
    """
    生成信用卡对账单
    :param cardno:卡号
    :return:
    """
    # 获得当前时间
    currday = datetime.now().strftime("%Y-%m-%d")
    today = date.today().day
    # 如果是账单日22号 开始生成账单
    if today == settings.STATEMENT_DAY:
        # 生成对账单数据库中存放对账单数据的字典 key
        startday = (datetime.now() + timedelta(days=-30)).strftime(
            "%Y%m{0}".format(settings.STATEMENT_DAY))
        endday = datetime.now().strftime("%Y%m%d")
        statement_key = "{start}{end}".format(start=startday, end=endday)

        # 从对账单流水中计算出要还款的金额
        startdate = (datetime.now() + timedelta(days=-30)).strftime(
            "%Y-%m-{0} 00:00:00".format(settings.STATEMENT_DAY))
        enddate = datetime.now().strftime("%Y-%m-%d 00:00:00")
        # 获取卡号对应的消费流水记录列表
        bill_list = dbapi.load_bill_report(cardno, startdate, enddate)

        statement_total = 0.00
        # 如果有消费记录,生成对账单
        if len(bill_list) > 0:
            for bill in bill_list:
                # 获取一个对账单日期的消费总费用
                statement_total += bill["cost"]

            # 获取还款日期 下个月10号
            statement_pdate = (datetime.now() +
                               timedelta(days=30)).strftime("%Y-%m-10")

            # 生成对账单的统计数据字典{"2016012220160222":{"账单日":currday,
            #                                             "账单范围":startdate至enddate,
            #                                             "账单金额":statement_bill,
            #                                             "已还款":0,
            #                                             "还款日":pdate
            #                                             "已还完":0}}

            statement_dict = {
                statement_key: {
                    "billdate": currday,
                    "startdate": startdate,
                    "enddate": enddate,
                    "total": statement_total,
                    "payed": 0,
                    "pdate": statement_pdate,
                    "interest": 0,
                    "isfinished": 0
                }
            }
            # 对账单文件名
            file_name = os.path.join(settings.REPORT_PATH,
                                     "statement_{0}".format(cardno))
            # 写入文件
            dbapi.append_db_json(statement_dict, file_name)
Exemplo n.º 4
0
def create_card_statement(cardno):
    """
    生成信用卡对账单
    :param cardno:卡号
    :return:
    """
    # 获得当前时间
    currday = datetime.now().strftime("%Y-%m-%d")
    today = date.today().day

    # 如果是账单日22号 开始生成账单
    if today == settings.STATEMENT_DAY:
        # 生成对账单数据库中存放对账单数据的字典 key

        startday = (datetime.now() + timedelta(days=-30)).strftime("%Y%m{0}".format(settings.STATEMENT_DAY))
        endday = datetime.now().strftime("%Y%m%d")
        statement_key = "{start}{end}".format(start=startday, end=endday)


        # 从对账单流水中计算出要还款的金额
        startdate = (datetime.now() + timedelta(days=-30)).strftime("%Y-%m-{0} 00:00:00".format(settings.STATEMENT_DAY))
        enddate = (datetime.now()  + timedelta(days=1)).strftime("%Y-%m-%d 00:00:00")
        # 获取卡号对应的消费流水记录列表
        bill_list = dbapi.load_bill_report(cardno, startdate, enddate)

        statement_total = 0.00
        # 如果有消费记录,生成对账单
        if len(bill_list) > 0:
            for bill in bill_list:
                # 获取一个对账单日期的消费总费用
                statement_total += bill["cost"]

            # 获取还款日期 下个月10号
            statement_pdate = (datetime.now() + timedelta(days=30)).strftime("%Y-%m-10")

            # 生成对账单的统计数据字典{"2016012220160222":{"账单日":currday,
            #                                             "账单范围":startdate至enddate,
            #                                             "账单金额":statement_bill,
            #                                             "已还款":0,
            #                                             "还款日":pdate
            #                                             "已还完":0}}

            statement_dict = {statement_key: {"billdate": currday,
                                              "startdate": startdate,
                                              "enddate": enddate,
                                              "total": statement_total,
                                              "payed": 0,
                                              "pdate": statement_pdate,
                                              "interest": 0,
                                              "isfinished": 0}}
            # 对账单文件名
            file_name = os.path.join(settings.REPORT_PATH, "statement_{0}".format(cardno))
            # 写入文件
            dbapi.append_db_json(statement_dict, file_name)
Exemplo n.º 5
0
def print_statement_detail(cardno, serino, details):
    """
    还款模块 - 用户选择还款的单号后,显示详细的还款对账单及流水信息
    :param cardno: 信用卡卡号
    :param serino: 对账单编号
    :param statement_list: 对账单列表
    :return: 返回填充后的模板信息
    """
    # 获取显示模板
    show_template = templates.report_statement_detail
    # 获取指定编号的详细信息
    _billdate = details["billdate"]  # 账单日
    _sdate = details["startdate"]  # 账单开始日期
    _edate = details["enddate"]  # 账单结束日期
    _total = details["total"]  # 费用总额
    _payed = details["payed"]  # 已还款金额
    _pdate = details["pdate"]  # 还款日
    _interest = details["interest"]  # 利息

    # 获取详细的流水清单
    _flows = list()
    _recordlist = dbapi.load_bill_report(cardno, _sdate, _edate)
    for info in _recordlist:
        tmpmsg = "{time}      {costtype}  {cost}     {crdno}".format(
            time=info["starttime"],
            costtype=info["payfor"].ljust(10),
            cost=str(info["cost"]).ljust(6),
            crdno=info["serialno"])
        _flows.append(tmpmsg)

    # 填充模板
    result_message = show_template.format(cardno=cardno,
                                          serino=serino,
                                          billdate=_billdate,
                                          sdate=_sdate[0:10],
                                          edate=_edate[0:10],
                                          pdate=_pdate,
                                          total=_total,
                                          payed=_payed,
                                          interest=_interest,
                                          details="\n".join(_flows))
    return result_message
Exemplo n.º 6
0
def print_statement_detail(cardno, serino, details):
    """
    还款模块 - 用户选择还款的单号后,显示详细的还款对账单及流水信息
    :param cardno: 信用卡卡号
    :param serino: 对账单编号
    :param statement_list: 对账单列表
    :return: 返回填充后的模板信息
    """
    # 获取显示模板
    show_template = template.report_statement_detail
    # 获取指定编号的详细信息
    _billdate = details["billdate"]  # 账单日
    _sdate = details["startdate"]  # 账单开始日期
    _edate = details["enddate"]  # 账单结束日期
    _total = details["total"]  # 费用总额
    _payed = details["payed"]  # 已还款金额
    _pdate = details["pdate"]  # 还款日
    _interest = details["interest"]  # 利息

    # 获取详细的流水清单
    _flows = list()
    _recordlist = dbapi.load_bill_report(cardno, _sdate, _edate)
    for info in _recordlist:
        tmpmsg = "{time}      {costtype}  {cost}     {crdno}".format(time=info["starttime"],
                                                                     costtype=info["payfor"].ljust(10),
                                                                     cost=str(info["cost"]).ljust(6),
                                                                     crdno=info["serialno"])
        _flows.append(tmpmsg)

    # 填充模板
    result_message = show_template.format(cardno=cardno,
                                          serino=serino,
                                          billdate=_billdate,
                                          sdate=_sdate[0:10],
                                          edate=_edate[0:10],
                                          pdate=_pdate,
                                          total=_total,
                                          payed=_payed,
                                          interest=_interest,
                                          details="\n".join(_flows))
    return result_message