Commit Graph

  • 2624f9189b feat(dayend): 切日端点改 catch-up 语义——循环三步(日结余额快照→总账→日期+1)直至追平今天,停机多日/cron漏跑一次调用补齐不漏日;同日重放0步跳过;business_date超前今天拒绝;_MAX_CATCHUP=400防御异常配置(达上限时已推进天数完整生效,报错要求人工核查续跑) main yumoqing 2026-09-09 14:43:49 +08:00
  • c40f7f665a fix(businessdate): 修 dayend_balance/ledger 错误 import accounting.businessdate(实际在 appbase)——导入即 ModuleNotFoundError,切日/日结链路从未可用;dayend_balance 支持注入 sor 复用调用方事务上下文+返回快照日;新增 wwwroot/api/dayend.dspy 切日端点(localhost 门禁+当日幂等守卫,三步:日结余额快照→总账→business_date+1)供生产 cron 调用(2026-09-09 生产增量部署前置) yumoqing 2026-09-09 13:45:08 +08:00
  • 8cc85098a9 docs(README): 补账务页面主题约定——禁硬编码暗色,用css:card/subcard跟随宿主data-theme双主题 yumoqing 2026-09-08 15:56:45 +08:00
  • 51ee9ed234 fix(主题): 我的信用额度/充值错帐处理去硬编码暗色——卡片改css:card、金额盒改css:subcard、文字颜色继承data-theme双主题;保留语义色(状态徽章/进度条阈值色)两主题通用 yumoqing 2026-09-08 15:48:20 +08:00
  • 985e044dd5 fix(代客充值): 页面样式改用bricks主题类(css:card),去掉硬编码暗色(#1E293B/#334155/#F1F5F9/#94A3B8)——跟随pipeline-app的data-theme暗/亮双主题,标题与说明文字颜色继承body yumoqing 2026-09-08 15:21:23 +08:00
  • 9bfd3fc556 fix(权限): 代客充值授权补owner财务角色——账务管理菜单代客充值入口在is_fin块(含owner财务)但PATHS_PROXY历史仅授reseller,致owner财务看得到菜单却403(实测);权限与菜单门控对齐 yumoqing 2026-09-08 14:05:22 +08:00
  • 20dfdca82a feat(账务): reseller财务角色三能力(2026-09-08用户定夺)——①修RECHARGE_REVESE拼写bug(白名单漏R致冲正/支付宝退款长期被拒,兼容旧拼写归一)②代客充值加归属校验(reseller只能操作本组织名下客户:organization.parentid或discount_customer_bind,lookup不泄露别家存在性)③新增充值错帐处理三件套(列表按归属过滤+冲正走RECHARGE_REVERSE引擎翻转借贷+orderid=REV:原billid防重复+审计留痕;授FIN_ROLES不含reseller.sale) yumoqing 2026-09-08 13:51:16 +08:00
  • 6c45f8e798 docs: 补全 README(复式记账引擎/15张表/load_accounting注入清单/记账三步同事务铁律) yumoqing 2026-09-07 11:42:17 +08:00
  • 411d1017cf fix(load_path): review修复——单事件循环直连注册(去掉600+次subprocess),get_accdetail恢复page/sort yumoqing 2026-08-27 18:17:45 +08:00
  • 89592b9585 security: 财务后台权限收敛到财务角色,堵住全平台余额/账务泄漏 yumoqing 2026-08-27 18:13:15 +08:00
  • 9b905836f9 fix(openaccount): 开户时初始化 balance=0 ymq 2026-08-26 17:52:30 +08:00
  • a7c83fadc5 fix(models): 账务表补多币种字段(currency/exchange_rate/base_amount) ymq 2026-08-26 17:49:31 +08:00
  • edb280ad79 feat(models): 补 biz_order/biz_orderdetail 业务订单表 ymq 2026-08-26 17:41:30 +08:00
  • 311753689a security: fetch_forex_rates.dspy 加 localhost 校验(定时任务入口) yumoqing 2026-08-25 15:01:21 +08:00
  • 0a6b1dc2b2 feat(accounting): 账务配置初始化数据 + 规范化 yumoqing 2026-08-21 18:57:11 +08:00
  • 863df88fbe feat: 代客充值接入审计日志(customer_recharge) yumoqing 2026-08-17 13:55:33 +08:00
  • 11475d31c3 feat(balance): invalidate llmage Redis balance cache after recharge yumoqing 2026-08-04 18:36:10 +08:00
  • 16fdf90513 fix: billing.ui 查询按钮 urlwidget 传参,修复点击无反应 yumoqing 2026-07-17 17:59:09 +08:00
  • c0b91ec050 Revert "fix: billing.ui 查询按钮改用 urlwidget 传参,修复点击无反应" yumoqing 2026-07-17 17:40:01 +08:00
  • ebac31f587 fix: billing.ui 查询按钮改用 urlwidget 传参,修复点击无反应 yumoqing 2026-07-17 17:37:33 +08:00
  • da4b0877c8 fix(accounting): remove date column, sort by timestamp, direction 借/贷 yumoqing 2026-07-17 16:05:05 +08:00
  • b8541d6730 fix(accounting): remove cheight from Tabular for auto row height yumoqing 2026-07-17 15:50:43 +08:00
  • 78345c758c fix(accounting): use relative URL /accounting/billing_download.dspy to avoid Jinja2 escaping yumoqing 2026-07-17 15:49:49 +08:00
  • 277e0a7aec fix(accounting): use single quotes in CSS selector to avoid JSON escaping issues yumoqing 2026-07-17 15:48:44 +08:00
  • 3cbde03d6e fix(accounting): use DOM querySelector for date values instead of getWidgetById yumoqing 2026-07-17 15:47:29 +08:00
  • 696c1b9432 fix(accounting): revert acc_dir to raw 0/1 to avoid charset issues yumoqing 2026-07-17 15:43:53 +08:00
  • 07086034be perf(accounting): remove summary from billing, fix acc_dir 0=借/1=贷, add DB index yumoqing 2026-07-17 15:35:03 +08:00
  • 8976ab6d90 fix(accounting): summary shows #shortid only, remove redundant subject prefix yumoqing 2026-07-17 15:21:37 +08:00
  • 515059db9f fix(accounting): human-readable summary — subject_name #short_id instead of raw UUIDs yumoqing 2026-07-17 15:20:37 +08:00
  • 1152e02a27 perf(accounting): single query with window functions instead of two separate scans yumoqing 2026-07-17 15:17:56 +08:00
  • 6986ade835 fix(accounting): use Text widget instead of Button for download yumoqing 2026-07-17 15:14:34 +08:00
  • 03cb4049f4 fix(accounting): add padding/borderRadius to download button, remove HBox height constraint yumoqing 2026-07-17 15:13:08 +08:00
  • e125f6ab8d fix(accounting): use bricks-native bgcolor/color instead of css for download button yumoqing 2026-07-17 15:12:10 +08:00
  • d4e32a2292 fix(accounting): wire up download button, fix LEFT JOIN in download DSPY yumoqing 2026-07-17 15:11:16 +08:00
  • 9a6723378b fix(accounting): billing.dspy — keep page in ns for Tabular paging, extract DictObject correctly yumoqing 2026-07-17 14:48:07 +08:00
  • 4ef0808004 fix(accounting): billing.dspy — remove 'page' from ns to prevent sor.sqlExe auto-paging return DictObject yumoqing 2026-07-17 14:44:27 +08:00
  • 31c348878a fix(accounting): billing.dspy — convert DictObject to list when sor.sqlExe returns non-list yumoqing 2026-07-17 14:43:27 +08:00
  • 0e750b6d31 debug(accounting): add type logging for billing rows yumoqing 2026-07-17 14:41:22 +08:00
  • 91609f3606 fix(accounting): billing query uses LEFT JOIN subject to avoid dropping rows with missing subject yumoqing 2026-07-17 14:39:52 +08:00
  • 950df9a4c2 bugfix yumoqing 2026-07-16 18:36:12 +08:00
  • 47844253fe fix(billing): separate ns for stats query, avoid sqlor ns mutation yumoqing 2026-07-16 17:32:05 +08:00
  • 1ffdda5ffe fix(billing): add acc_date to aggregate query for sqlor ORDER BY yumoqing 2026-07-16 17:30:52 +08:00
  • fba38804de fix(billing): submit_text→submit_label, wid→self, fix indentation yumoqing 2026-07-16 16:59:51 +08:00
  • f7f9581cd9 fix(billing): InlineForm target can't find sibling Tabular yumoqing 2026-07-16 16:28:25 +08:00
  • a65422d06b fix: move fetch_forex_rates to PATHS_ANY for cron access yumoqing 2026-07-14 10:44:58 +08:00
  • f9cb644e07 fix: currency/exchange_rate DDL 加 utf8mb4_unicode_ci 防止 collation mismatch yumoqing 2026-07-10 11:40:03 +08:00
  • 8f09fc43df fix: remove updated_at from exchange_rate INSERT — column not yet added yumoqing 2026-07-09 11:49:10 +08:00
  • 5f752a6287 feat: BOC forex rate fetcher — /api/fetch_forex_rates.dspy yumoqing 2026-07-09 11:46:35 +08:00
  • 898c215f9d chore: update migration SQL for all 5 DBs + RBAC for currency/exchange_rate CRUD yumoqing 2026-07-07 17:44:47 +08:00
  • 3f6c71b4d5 feat: multi-currency support — currency/exchange_rate tables + migration yumoqing 2026-07-07 15:43:01 +08:00
  • b95a57fd34 fix: submit改用method:render,零JS代码 yumoqing 2026-07-01 11:56:49 +08:00
  • 5b9619c850 fix: InlineForm submit绑定修正,wid+getWidgetById替代this yumoqing 2026-06-30 17:52:22 +08:00
  • 60e9e3c9b3 fix: Form→InlineForm, type→uitype:date, flex+cheight增大显示 yumoqing 2026-06-30 17:39:20 +08:00
  • a7d1aa170e fix: billing.ui用{% set %}变量替代"转义,避免Jinja2报错 yumoqing 2026-06-30 17:24:20 +08:00
  • d3310bfcc1 fix: 修正刷新目标为 app.sage_main_content yumoqing 2026-06-29 13:24:43 +08:00
  • 982b0ad7a7 fix: 授信表单提交成功后自动刷新客户额度管理页面 yumoqing 2026-06-29 13:18:44 +08:00
  • bda9e7fc00 feat: credit_limit 加 grant_orgid 授予机构字段,支持多租户 yumoqing 2026-06-29 12:46:49 +08:00
  • 17554a1038 bugfix yumoqing 2026-06-29 12:14:04 +08:00
  • b880673d79 fix: credit_manage 弹窗提交后不关闭导致重复提交 yumoqing 2026-06-29 11:55:39 +08:00
  • 77fd157ab7 fix: revert get_credit_limit.dspy to CRUD auto-generated, add to .gitignore yumoqing 2026-06-29 11:35:24 +08:00
  • cd26eb1852 fix: 重写get_credit_limit移除default_filterjson; set_customer_credit加try/except防Duplicate 500 yumoqing 2026-06-29 10:55:12 +08:00
  • 4ca0243506 fix: 新增授信改为UPSERT,避免accountid唯一约束冲突;uuid改为getID yumoqing 2026-06-29 10:51:16 +08:00
  • 31ef3531c8 fix: add dismiss_events to all PopupWindows in accounting module yumoqing 2026-06-29 10:48:29 +08:00
  • 40f037c517 fix: proxy_recharge.ui Form Cancel button now resets form fields yumoqing 2026-06-29 10:43:31 +08:00
  • d8cfd06c4c fix: 新增客户授信表单移除id字段,编辑时id通过URL query参数传递 yumoqing 2026-06-29 10:42:28 +08:00
  • 503ae5434d fix: credit_limit.orgid存操作员orgid非客户orgid Hermes Agent 2026-06-24 17:41:27 +08:00
  • d04fbedee6 fix: 为所有CRUD json添加editable配置(default值) Hermes Agent 2026-06-24 13:12:24 +08:00
  • b17272d9d7 fix: 恢复editable配置(使用default值) - xls2ui必须配置此字段 Hermes Agent 2026-06-24 12:56:31 +08:00
  • 583babdd4a refactor: 移除手写CRUD dspy文件 - 改由build.sh自动生成 Hermes Agent 2026-06-24 12:36:54 +08:00
  • 03bf5fcde0 fix: 修复datetime.now()错误 - dspy预加载datetime模块非datetime.datetime Hermes Agent 2026-06-24 12:07:19 +08:00
  • afb9dd5d88 fix: 修复授信表单提交 - 使用submit_url替代url, 移除手动buttons Hermes Agent 2026-06-24 11:36:00 +08:00
  • 77624b1ef5 fix: 修正授信表单按钮bind target Hermes Agent 2026-06-24 10:56:04 +08:00
  • 625c6b6873 fix: 修复新增客户授信表单submit无响应 Hermes Agent 2026-06-24 10:42:52 +08:00
  • 511f4b0720 fix: 充值金额用rules校验(min+number)替代无效的min属性 + 后端NaN防护 Hermes Agent 2026-06-23 15:29:51 +08:00
  • e17a9ac58b bugfix Hermes Agent 2026-06-23 15:21:42 +08:00
  • dbbe553857 bugfix Hermes Agent 2026-06-23 15:20:07 +08:00
  • b4ed9e1a8b fix: proxy_recharge 去掉submit_url,仅保留bind处理,修复双重提交导致充值两次的问题 Hermes Agent 2026-06-23 15:15:12 +08:00
  • febde765fa fix: proxy_recharge 充值金额添加min=0.01前端校验,防止负数提交 Hermes Agent 2026-06-23 15:05:30 +08:00
  • 4cf4d0f6b4 fix: proxy_recharge actiontype urldata→urlwidget, 后端返回widget descriptor需用urlwidget模式渲染 Hermes Agent 2026-06-23 14:39:36 +08:00
  • bc58cbffda fix: 代客充值结果bind target加app.前缀(兄弟控件) Hermes Agent 2026-06-23 14:27:19 +08:00
  • 6f6ae6b66a bugfix Hermes Agent 2026-06-23 14:13:42 +08:00
  • 56ae61a992 fix: 授信表单改为客户名称查找模式 + 代客充值RBAC路径注册 Hermes Agent 2026-06-22 17:26:03 +08:00
  • f00057bb75 移除临时文件,添加/更新.gitignore Hermes Agent 2026-06-22 15:00:22 +08:00
  • f9bc45b97c feat: add i18n translations (zh/en/jp/ko) for all modules Hermes Agent 2026-06-19 15:01:15 +08:00
  • 656fe2fc51 feat: 新增代客充值和错帐处理页面 Hermes Agent 2026-06-18 13:33:16 +08:00
  • 029a76f960 bugfix Hermes Agent 2026-06-16 17:32:38 +08:00
  • 4a20509490 fix(P0): 修正accounting CRUD JSON格式,添加.gitignore排除自动生成的CRUD目录 Hermes Agent 2026-06-16 10:45:25 +08:00
  • 1de6fbcf9b chore: remove vim swap file, add .swp to gitignore yumoqing 2026-06-12 15:08:31 +08:00
  • 65a735764c feat: add credit_status codes to init/data.yaml for credit_limit table yumoqing 2026-06-12 15:08:25 +08:00
  • 2c6c0570f2 bugfix yumoqing 2026-06-12 15:06:13 +08:00
  • 414efa7e8f bugfix yumoqing 2026-06-11 14:02:39 +08:00
  • 72b42cb654 bugfix yumoqing 2026-06-10 18:28:30 +08:00
  • 7475b30527 bugfix yumoqing 2026-06-10 17:59:36 +08:00
  • c637d76a25 fix: replace wildcard patterns with explicit per-file entries in load_path.py yumoqing 2026-06-04 13:03:27 +08:00
  • c4a869c9ff fix: billing 500 error (sqlExe returns list not dict) + enlarge popup windows (recharge 600x500, detail 700x550) yumoqing 2026-05-31 14:36:27 +08:00
  • 434cfe950c feat: billing - add stats summary and Excel download yumoqing 2026-05-31 14:18:53 +08:00
  • f62e397c5a chore: remove vim swap file yumoqing 2026-05-31 14:11:20 +08:00
  • c141134001 fix: use this.render(params) instead of this.loadData for Tabular (DataViewer API) yumoqing 2026-05-31 14:11:14 +08:00
  • dd12be3833 bugix yumoqing 2026-05-31 14:08:52 +08:00
  • 7fbc826330 bugix yumoqing 2026-05-31 14:06:32 +08:00