礼券类别
礼券类别是代金券(礼券)的档案:一张券面值多少、什么时候过期、券号怎么编、能攒多少积分,全部在这里定。类别建好之后,六张礼券单据(发放、销售、销售退回、领出、领出退回)才能选到它,礼券明细状态查询 里也才会有券。所有礼券业务的起点都是这一页。
一、功能概述
菜单位置:卡券 → 礼券管理 → 礼券类别(页面地址 /admin/TokenSvr/postokentype/)
| 用途 | 说明 |
|---|---|
| 建类别 | 定类型编号、名称、面值、积分、失效日期或有效天数,并配置券号规则 |
| 控券号 | 用「编号规则」决定券号由哪些段组成、每段几位,直接限制券号总长度 |
| 看数量 | 生成、销售、领取、使用、未使用五个口径在一屏可见,用来判断这个类别还剩多少可动用 |
二、界面布局说明

| 区域 | 内容 |
|---|---|
| 工具栏 | + 新增、导出、回收站、打印、搜索、刷新、全屏 |
| 查询条 | 失效日期 筛选(全部 / 任意日期 / 今天 / 过去7天 / 本月 / 今年 / 没有日期 / 具有日期)+ 关键字框(提示「搜索...」,匹配类型编号、类型名称、助记码) |
| 列表 | 类型编号 / 类型名称 / 面值 / 积分 / 失效日期 / 生成数量 / 销售数量 / 领取数量 / 使用数量 / 未使用数量 / 状态 |
| 行链接 | 点类型编号进入修改页 |
状态不是填出来的,是比出来的:失效日期 ≥ 当前时间显示绿色「有效」,早于当前时间显示红色「已过期」,没填失效日期显示灰色「未设置」。所以想看还能用的类别,把失效日期筛选改成「具有日期」再结合状态列判断。
三、新增与编辑
修改页顶部工具栏是 返回 / 编辑 / 刷新 / 上一行 / 下一行 / 历史版本 / 附件 / 删除,进来先只读,点 编辑 才能改。表单分四个区:

| 分区 | 字段 | 说明 |
|---|---|---|
| 基本信息 | 类型编号 | 会拼进券号,建好后不要改,改了历史券号对不上 |
| 类型名称 | 出现在所有礼券单据的类型下拉里 | |
| 规格 | 可选,用于区分同类不同面额 | |
| 面值 | 代金券的金额口径,参与销售金额与核销金额计算 | |
| 积分 | 购券赠送的积分数,不送积分就留空 | |
| 有效天数 | 与失效日期二选一:按天数推算过期时间 | |
| 失效日期 | 到期日后券不能再销售、领出或核销 | |
| 无号券 | 开关,勾上表示这一类不发实体券号,只做金额账。注意:单据明细里的「类型编号」是手输的,系统不会因为勾了无号券就把它从可选范围里排除,所以无号券类别照样能填进销售单,只是审核时按号段找不到券会报错 | |
| 编号规则 | 编号规则 | 默认 [类别编号],[流水码],[年份],[校验码],可增减段位 |
| 默认编号规则 | 只读展示每段位数,如 "[类别编号] 4位","[流水码] 6位","[年份] 2位","[校验码] 2位" | |
| 数量统计 | 生成数量 / 销售数量 / 销售退货 / 领取数量 / 作废数量 / 使用数量 / 最后流水号 | 全部只读,由入库和各单据审核自动累计 |
| 辅助信息 | 助记码 | 供列表搜索用 |
券号长度有硬限制:按编号规则算出来的券号总长不能超过 30 位,超了保存不了,界面会提示「券号长度达到了N位,超过30位限制,请修改编号规则!」。默认规则下券号形如 类型编号 + 年份2位 + 流水号6位(左补零)+ 校验位2位。

这一堆数量没有一个是手填的,点编辑也改不动,只能由单据审核和入库累计出来;觉得数字不对,要重算累计数,暂时得到客户端跑 更新使用数量统计(网页端列表页没有动作入口,见第五节)。
四、数量口径
列表上四个数量列不是同一个池子,别横向加减:
| 列 | 含义 | 什么时候变 |
|---|---|---|
| 生成数量 | 已入库(分配到券号段)的总张数 | 礼券生成券号入库时增加;本栏目只做类别档案,入库在客户端 |
| 销售数量 | 通过礼券销售单卖出的张数 | 礼券销售 审核后累加 |
| 领取数量 | 通过领出单发给部门/客户的张数 | 礼券领出 审核后累加 |
| 使用数量 | 顾客已到店核销的张数 | 收银前台核销后累计,需刷新统计 |
| 未使用数量 | 销售数量 + 领取数量 − 销售退货 − 已使用 | 计算列,不落库 |
未使用数量是「已发出去但还没被消费」的张数,不是库存。想知道还有多少券没发出去,用生成数量减销售数量和领取数量自己算。
五、批量动作与删除
列表每行左边有勾选框,勾上以后左下角会变成蓝色的「已选 N 条」,但工具栏始终只有 新增 / 导出 / 回收站 / 打印 / ▾,没有动作下拉,表格上下也不会浮出「选择操作 + 执行」那一栏——勾了行也找不到执行入口。

更新使用数量统计:网页端目前点不了
系统里给这一页配了 更新使用数量统计 这个批量动作(按核销记录重算各类型的已使用张数,提示「已更新N条记录的使用数量统计」),但网页端的资料页不渲染动作栏,现阶段执行不了。要重算统计,暂时在客户端的 礼券类别 里做;网页端这一页先用来看数、改档案、导出。 重算的口径要知道两件事:已使用张数是按券号表全表重算的,跟你勾选几行没有关系;只有作废张数才按勾选的类别逐个重算。核销流水对不上账时先重算,再去 查询礼券操作日志 核对。
删除有两种情况:
- 该类别已经生成过券:删除被拦,提示「该券类型已经生成代金券数据,不能删除!」;
- 没有生成过券:删除是逻辑删除,列表不再出现,可在工具栏 回收站 里找回。
要停用而不是删除,正确做法是把失效日期改成已经过去的日期,让它变成「已过期」,历史券的档案关系不会断。
六、常见问题
问:单据里怎么选到刚建的类别? 答:礼券单据明细里的「类型编号」是一列直接输入的文本,不是下拉挑。把这一页的类型编号原样填进明细行即可;填错不会提示「类别不存在」,而是在审核时按号段找不到券,报「未找到对应流水号在[…]内的代金券,或者已过期的代金券」。刚建好类别还只是档案,券号要先在客户端生成入库,网页端的销售、领出单才动得了它。
问:改了面值,已发出的券会按新面值核销吗? 答:不会。券的金额在销售/领出时按当时的价格和折扣落到单据和券上,改类别面值只影响之后新开的单。已经卖出去的券要调价,只能退回重做。
问:未使用数量怎么是负数或和预期差很多? 答:因为它是「销售 + 领取 − 销售退货 − 已使用」的计算列。客户端做过反审核、作废或核销补录时,累计数没刷新就会失真。到客户端跑一次 更新使用数量统计 再判断(网页端这一版没有动作入口,见上文)。
问:有效天数和失效日期都填了,按哪个算? 答:状态列只看失效日期。想让系统按售出日往后推有效期,就只填有效天数、把失效日期留空,此时状态显示「未设置」,过期判断由前台按有效天数执行。
