36 Commits

Author SHA1 Message Date
722de7ea8c fix: pricing init.py 补充 add_pricing_program_timing 的 import 和注册 2026-07-14 17:42:20 +08:00
Hermes Agent
810cd4549b fix: 修复定价项目时序验证定价500错误 + 移除过时的pricing_item子表引用
- init.py: 注册 get_pricing_program_timeing 到 env(pricing_test.ui模板依赖此函数)
- pricing_test.ui: 修复拼写错误 amoumt → "amount"(生成无效JSON导致500)
- json/pricing_program_timing.json: 移除指向已删除的pricing_item CRUD的subtables配置
2026-06-23 23:59:13 +08:00
Hermes Agent
e4bbef8e17 feat: register get_ppid_pricing on env for pre-inference pricing check 2026-06-22 17:55:27 +08:00
7df8e530a4 remove: pricing_item CRUD and related functions (not used) 2026-06-12 14:41:58 +08:00
ac3d7c6d91 fix: implement missing get_all_spec_fields_by_pptid, sor_get_spec_fields, get_pricing_specs_by_pptid 2026-06-12 14:18:52 +08:00
977be0d39c feat: add pricing display API for customer-facing pricing data
- generate_formula_from_factors(): auto-generate formula from price_factors array
- get_pricing_display(ppid): return structured human-readable pricing data
- wwwroot/api/get_pricing_display.dspy: API endpoint for frontend consumption
- Supports price_factors display layer (label, unit_price, unit_label)
- Backward compatible: old YAML without pricing_type/price_factors works
- Registered via load_pricing() with ServerEnv
2026-06-04 12:13:55 +08:00
5d4e008ec8 fix: guard hot_reload binding with None check
hasattr only checks attribute existence, but event_dispatcher
can exist as None when running standalone (backend_accounting.py).
Use getattr with None check instead.
2026-06-02 17:36:38 +08:00
b7ca795127 cleanup: remove dead module-level get_pricing_program and duplicate assignment 2026-06-01 18:57:50 +08:00
7b9d3d2ba0 refactor: bind hot_reload event via EventDispatcher, add on_hot_reload to PricingProgram 2026-06-01 18:10:30 +08:00
b981d07f40 fix: refresh pricing cache for timing id events 2026-05-19 01:12:55 +08:00
c85b9527c3 bugfix 2026-05-18 16:02:14 +08:00
7095d8dca2 bugfix 2026-05-16 16:40:09 +08:00
1f1faaa085 bugfix 2026-05-16 16:38:44 +08:00
7468bcd781 bugfix 2026-05-16 16:36:41 +08:00
4f40be10dc bugfix 2026-05-16 16:32:47 +08:00
19f03c82c3 bugfix 2026-05-16 16:13:18 +08:00
896c87c4f0 bugfix 2026-05-14 13:10:13 +08:00
bdef7ab7a7 bugfix 2026-04-08 13:08:44 +08:00
0120300968 bugfix 2026-04-07 17:46:54 +08:00
603c02e579 bugfix 2026-04-05 15:00:16 +08:00
8e2f662552 bugfix 2026-04-04 18:48:46 +08:00
5c0e4a4397 bugfix 2026-04-04 18:14:16 +08:00
c47a92cde6 bugfix 2026-03-25 16:37:36 +08:00
ebf07ad54f bugfix 2026-03-24 12:03:31 +08:00
8b2c51e80e bugfix 2026-03-24 12:02:11 +08:00
494f03ca49 bugfix 2026-03-24 11:49:26 +08:00
81e9ebc041 bugfix 2026-03-24 11:34:01 +08:00
39705f3e04 bugfiix 2026-03-23 18:27:34 +08:00
d884132d77 bugfix 2026-03-19 16:50:44 +08:00
917d7d6324 bugfix 2025-12-26 15:17:54 +08:00
01c3fe1139 bugfix 2025-12-24 17:13:34 +08:00
c863936871 bugfix 2025-12-22 15:33:54 +08:00
1abf5389c2 bugfix 2025-12-22 15:30:50 +08:00
fb9c91839a bugfix 2025-10-27 15:39:27 +08:00
yumoqing
0dd4d007dd bugfix 2025-10-25 20:54:52 +08:00
yumoqing
4f98a84635 bugfix 2025-10-25 20:38:00 +08:00