18 Commits
Author SHA1 Message Date
jerron 48e5f177c4 fix(docker): 简化site存在性检查
- 只检查site目录是否存在,避免复杂的数据库检查
- 移除不可靠的frappe.ping检查
- 防止每次重启都重新创建site
2026-10-18 11:10:19 +08:00
jerron 0a4d6aabb6 fix(docker): 使用list-apps准确检查yierp安装状态
- 改用bench list-apps命令检查已安装应用
- 避免IPython console exit()的问题
- 确保只有真正安装的应用才会被跳过
2026-10-18 11:03:32 +08:00
jerron 89c6808388 fix(docker): 修正yierp安装检查逻辑
- 使用frappe.get_installed_apps()准确判断应用是否已安装
- 避免仅检查模块存在但实际未完整安装的问题
- 确保installed_apps列表正确更新
2026-10-18 11:00:43 +08:00
jerron 39ae7a6091 feat(docker): 优化应用存在性检查逻辑
- 分别判断frappe和yierp是否已安装
- Frappe检查: apps/frappe/frappe/__init__.py是否存在
- YiERP检查:
  * apps目录symlink是否存在
  * apps.txt中是否有记录
  * 数据库中是否有模块记录
- 已安装的应用自动跳过初始化,加快启动速度
- 即使应用已安装,也确保symlink和依赖正确
2026-10-18 10:57:13 +08:00
jerron 451d7d1850 fix(docker): 修复assets构建和依赖问题
- 确保yierp symlink在bench init后仍然存在
- 自动安装onscan.js依赖(POS必需)
- 安装yierp后自动构建assets
- 解决桌面图标和单据无法打开的问题
2026-10-18 09:43:39 +08:00
jerron 92d0a7382f docs(docker): 添加演示数据配置说明
- 说明如何控制演示数据安装
- 提供手动加载演示数据的命令
- 更新README文档
2026-10-18 09:35:22 +08:00
jerron bf5c32b7e3 fix(docker): 修正演示数据安装逻辑
- 移除不存在的 --with-all-fixtures 参数
- 在安装完成后提示如何手动加载fixtures
- 提供正确的fixtures同步命令
2026-10-18 09:33:50 +08:00
jerron 9c6812eb01 feat(dn): 添加 is_exchange 字段支持换货场景库存更新
问题描述:
- DN 收退货时,明细行有正负数量导致总数量=0时,提交后库存未更新
- 原因:代码中多处过滤条件会跳过 actual_qty=0 的记录

解决方案:
1. 在 Delivery Note DocType 中添加内置字段 is_exchange (Check)
2. 替换所有 custom_is_exchange 自定义字段引用为 is_exchange
3. 修改库存更新逻辑,在 is_exchange=1 时允许数量为0的明细行更新库存
4. 在 SLE 生成时传递 is_exchange 字段到 Stock Ledger Entry

修改文件:
- delivery_note.json: 添加 is_exchange 字段定义
- delivery_note.py: 替换字段引用
- selling_controller.py: 修改库存更新条件并传递 is_exchange 到 SLE
- stock_ledger.py: 修改 SLE 创建和过账条件
- accounts_controller.py: 替换字段引用
- status_updater.py: 替换字段引用

影响范围:
- 仅当 DN 的 is_exchange=1 时生效
- 不影响其他单据类型的校验逻辑
- 正常 DN (is_exchange=0) 保持原有行为
2026-10-18 09:29:33 +08:00
jerron 855cec25f9 feat(docker): 添加演示数据安装选项
- 新增 INSTALL_DEMO_DATA 环境变量控制是否安装演示数据
- 默认安装演示数据 (INSTALL_DEMO_DATA=yes)
- 使用 --with-all-fixtures 参数安装完整演示数据
- 设置 no 可跳过演示数据,仅安装基础应用
2026-10-18 09:28:24 +08:00
jerron 14b362ec03 fix(docker): 使用main分支克隆frappe 2026-10-18 09:16:00 +08:00
jerron 10b7d7019b chore(docker): 使用内部Git服务器
- frappe: https://git.yierp.vip/erp/frappe-v16.git
- yierp: https://git.yierp.vip/erp/yierp-v16.git

避免GitHub连接问题,提高克隆速度
2026-10-18 09:15:07 +08:00
jerron 1357707a3b fix(docker): 改进site创建检查逻辑
- 同时检查site目录和数据库是否存在
- 如果数据库不可用则重新创建site
- 使用--force参数确保site正确初始化
- 避免旧volume数据与新数据库不匹配的问题
2026-10-18 09:12:28 +08:00
jerron 5762614186 chore(docker): 使用 Gitee 镜像替代 GitHub
- entrypoint.sh: 直接使用 Gitee frappe 镜像,移除 GitHub fallback
- pyproject.toml: 更新 Repository 和 Bug Reports 为 Gitee 地址

提高国内克隆速度和稳定性
2026-10-18 08:56:34 +08:00
jerron c740ed5844 fix(docker): 修复 yierp 应用安装和启动问题
- 修正 yierp symlink 结构为 apps/yierp/yierp -> /workspace/yierp
- 通过 pip install -e /workspace 正确安装 yierp Python 模块
- 改进应用安装检测逻辑,同时检查 list-apps 和数据库
- 添加 apps.txt 更新确保 bench 能识别 yierp
- 使用 Gitee 镜像加速 frappe 克隆(回退到 GitHub)
2026-10-18 08:18:59 +08:00
jerron be6c121d38 fix(docker): 修复 Docker 开发环境启动问题
- 添加 init-permissions 容器设置 frappe-bench volume 权限
- 将 frappe 服务用户改为 frappe (uid 1000)
- 修复 bench new-site 参数: --db-root-user -> --mariadb-root-username
- 替换弃用的 --no-mariadb-socket 为 --mariadb-user-host-login-scope '%'
- 改进 entrypoint.sh bench 验证逻辑,处理不完整的 bench 目录
- 创建站点前清理已存在的数据库,使用 --force 参数
2026-10-18 04:15:42 +08:00
jerron cb566ec363 chore(docker): 完善 Docker 开发环境配置
- 分离 Redis 为 redis-cache 和 redis-queue 两个独立服务
- 优化 entrypoint.sh 自动初始化流程(bench init/new-site/install-app)
- 更新 devcontainer.json 配置,添加端口转发和 VSCode 扩展
- 完善 README.md 文档,添加服务架构图和使用说明
- 新增 .env.example 环境变量示例和 .gitignore
- 移除 mailpit 邮件测试服务
2026-10-18 03:51:45 +08:00
jerron 1e9025ca27 添加docker文档 2026-10-18 03:39:07 +08:00
jerron 90bf73d175 添加docker 开发模式 2026-10-18 00:20:35 +08:00