# EZpos 交接说明 2026-08-28（Mac 无知 → Windows 无知）

- 时间：2026-08-28 02:25（UTC-1）
- 来源：Mac 侧无知（workspace/ezpos/），阿杰现场验收后定稿
- 文件：EZpos-Source_20260828.zip（源码 + demo.db 演示数据；已排除本机 machine.key/secret.key/票据存档）

## 本交接新增/修改功能（8-28 凌晨，自 8-27 交接后）

1. **💳 会员卡**：members 表；/members 管理页（发卡/编辑/停用/销售记录弹窗）；POS 输卡号识别 + 自动折扣；累计消费
2. **🎯 打折系统（用户管理页统一配置）**：
   - 权限分模式：discount_manual / discount_member / discount_holiday（收银员默认无手动打折）
   - 规则：平时会员/客户折扣；**节假日模式开启（当天）→ 会员/客户折扣失效，只用节假日折扣**（替代非取最高）
   - 用户管理页「🎯 打折方式与节假日日历」卡片：三个开关 + 折扣% + 日期列表 + CV 日历按钮
3. **📅 佛得角节假日日历**：cv_holidays() 9 固定 + 3 变动（复活节算法按年算）；/api/holidays/cv；一键填入
4. **📡 离网/联网双模式**：Bootstrap 本地化（static/vendor/）；网络监控线程 30s（SSL 错误=网络通）；联网自动补传 pending 票据；侧边栏 🟢/🔴 徽章 + 待传数
5. **👤 添加客户权限点** customer_create（收银员默认有，开票建档用）
6. **🔍 金额一致性修复**：VIP/客户类型折扣前端计算；挂起单存真实应收；checkout 价格强制 DB 标价（防篡改）
7. **✅ 支付二次确认弹窗**：确认支付 → 确认收款弹窗（金额/方式/找零/票据/客户）→ 确认才提交
8. **🧾 开票客户增强**：全名框 F4 客户列表；NIF 输 9 位自动查询自动填充（本地库；e-Fatura 凭据接入后自动连税务局）
9. **📦 商品条码增强**：商品编辑功能（原只有新增）+ 一个商品多条码（product_barcodes 表，全库防重）+ 搜索/扫码全链路匹配
10. **📊 批发数量门槛**：products.wholesale_min_qty（如 24 瓶起）→ 数量达标自动按批发价（散客也适用）；购物车实时切换 + 徽章
11. **🎨 视觉**：侧边栏渐变 + 图标彩色底、POS 标题/班次栏/表头/底栏配色

## 待办（Windows 侧继续）

- **e-Fatura 上传**：等阿杰给 DNRE 认证资料（Client ID/Secret）→ 接真实 DFE 上传（tax_queue 已就绪，自动补传逻辑已通）
- **Windows 重新打包**：build.bat + inventory.spec + installer.iss 已就绪，Mac 无法出 exe
- **收银台模式两台联调**（需要真实硬件）
- 批量改价（可选）
- 品牌定名最终确认（EZpos 已用）

## 关键说明

- **配置文件**：license_server 默认 http://47.245.165.8/license；激活码 SMM-XZNG-F3PQ-J3VQ（Supermais 生产码）
- **数据库**：data/demo.db（SQLite，WAL；启动自动迁移新增列/表，无需手工）
- **测试数据**：会员卡 001 Maria Fernandes（10%）、商品 Arroz 5kg 附加条码 999000111/888777666、Cerveja Strela 批发价 110/24 瓶起
- **三语**：中文/葡语/英语，词条 796/语言；PT 页面 0 残留是项目标准
- **文件注意**：源码部分 CRLF 混合（Windows/Mac 编辑过），python 脚本改最稳；Jinja 模板有 `${{` 坑
- 下载：http://47.245.165.8/download/ezpos/EZpos-Source_20260828.zip
