zlwu and Cursor
4c23ff9f61
fix(duty): show duty schedule on portal home launcher
...
Register /duty frontend route module, add portal top-module order, and fix sys_menu as L1 directory with schedule leaf plus role grants.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-15 16:04:33 +08:00
zlwu and Cursor
a1321c145c
chore(duty): sync knowledge graph after duty schedule feature
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:15:22 +08:00
zlwu and Cursor
ba17a83df5
fix(duty): drop unused import in duty admin API
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:14:59 +08:00
zlwu and Cursor
36fc7f286c
feat(duty): register admin and public duty APIs with encrypt exclude
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:12:40 +08:00
zlwu and Cursor
49cad98c84
feat(duty): add schemas and duty_schedule service with capacity tests
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:12:13 +08:00
zlwu and Cursor
f5ad2d7217
feat(duty): add SQLAlchemy models for duty schedule
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:10:36 +08:00
zlwu and Cursor
2502db7a02
fix(duty): add unique keys for duty_day date and slot shift_type
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:08:22 +08:00
zlwu and Cursor
931fd24671
chore(duty): add duty_day/slot/assignment tables and menu SQL
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-14 17:06:25 +08:00
zlwu
3f21007c18
提交
2026-08-12 21:40:55 +08:00
zlwu and Cursor
99e4d4c69a
fix(bx): allow reimburse submit when invoice wallet balance is insufficient
...
Drop the hard balance check in debit_reimburse so occupancy can exceed uploaded invoices; balance may go negative until later top-ups.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-12 20:57:54 +08:00
zlwu
5fcdb03da1
提交
2026-08-11 07:54:28 +08:00
zlwu
a5210a6a9e
提交
2026-08-09 21:07:28 +08:00
zlwu
38383b35d9
提交
2026-08-09 19:42:32 +08:00
zlwu
f70dc26206
提交
2026-08-09 14:51:41 +08:00
zlwu
90ae136f38
提交
2026-08-08 23:14:40 +08:00
zlwu
fdf7d391a6
提交
2026-08-08 22:19:09 +08:00
zlwu
683f14828f
提交
2026-08-08 20:43:48 +08:00
zlwu and Cursor
7898d65437
feat: add menu favorites API under /web/admin/menu-favorites
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-08 12:01:28 +08:00
zlwu and Cursor
1a0c58f82d
feat: add sys_user_menu_favorite table for portal menu favorites
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-08 11:58:55 +08:00
zlwu and Cursor
5575b08437
feat: add backfill script for CRM name pinyin initials.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 17:29:21 +08:00
zlwu and Cursor
659fc89179
feat: store and search customer name pinyin initials.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 17:24:28 +08:00
zlwu and Cursor
ba3f2c19bb
feat: store and search product name pinyin initials.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 17:18:59 +08:00
zlwu and Cursor
e7b3fbb21b
feat: add name_pinyin_abbr columns for CRM product and customer.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 17:10:53 +08:00
zlwu and Cursor
fa9b3429c7
feat: add pinyin initial abbr helper for CRM names.
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-07 16:57:05 +08:00
zlwu
3d645b4112
提交
2026-08-06 22:49:00 +08:00
zlwu
f3693be913
提交
2026-08-06 09:58:20 +08:00
zlwu
5cf67f60d1
提交
2026-08-04 15:33:41 +08:00
zlwu
5fe53c5481
提交
2026-08-04 14:02:01 +08:00
zlwu and Cursor
5f2a6f2338
feat: public vehicle plate options for H5 fill pages; select-only plates
...
Add GET /api/public/db/vehicle-plates for unauthenticated fill/plan pages and remove manual plate entry plus auto-create.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 22:44:01 +08:00
zlwu
732c1b1dc9
提交
2026-08-03 21:20:00 +08:00
zlwu
e233269abf
提交
2026-08-03 12:48:52 +08:00
zlwu and Cursor
594e4ce38e
feat(crm): sync contract number date segment with sign date
...
Align standard contract nos on create/update (keep seq, bump on collision),
preview the change in contract forms, and sync name parentheses.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-03 11:46:11 +08:00
zlwu
40fc54942b
提交
2026-08-03 00:48:46 +08:00
zlwu
272c68af4b
提交
2026-08-02 17:18:33 +08:00
zlwu
c00f19f8bd
提交
2026-08-02 10:49:34 +08:00
zlwu and Cursor
5bf37f802e
chore: update graphify and mark vehicle/personnel photo design implemented
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 10:38:33 +08:00
zlwu and Cursor
479851ba4c
feat(pl): expose photoUrls on vehicle and personnel APIs
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 10:30:14 +08:00
zlwu and Cursor
56b94e1c5b
feat(pl): map photo_urls on vehicle and personnel models
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 10:25:46 +08:00
zlwu and Cursor
2f580eca81
chore(db): add photo_urls to pl_vehicle and pl_personnel
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-02 10:23:53 +08:00
zlwu
a56b170976
提交
2026-08-02 09:28:47 +08:00
zlwu
eccefc6650
提交
2026-08-01 22:49:11 +08:00
zlwu
e59b2aa6cb
提交
2026-08-01 17:29:37 +08:00
zlwu and Cursor
06956b742b
feat(crm): add tenant-level contract approver setting with submit prefill
...
Mirror the quote approver setting so contract submit dialogs can prefill ordered approvers from a tenant config page while remaining editable.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 13:37:23 +08:00
zlwu and Cursor
8646f33587
feat(crm): expose quote approver setting get/save APIs
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 13:04:07 +08:00
zlwu and Cursor
ffbb5e36b3
feat(crm): implement quote approver setting model and upsert CRUD
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 13:03:35 +08:00
zlwu and Cursor
82e648de9f
feat(crm): add quote approver setting table and menu SQL
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 13:02:47 +08:00
zlwu and Cursor
3aafae6a9d
feat(crm): add quote approver setting id helpers and unit tests
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 12:54:29 +08:00
zlwu and Cursor
10c3c5470c
chore: sync local PL/CRM/BX and migration work to new Gogs host
...
Bundle pending backend/web-admin feature updates, data-migration scripts,
and related docs so the V1.5 branch on the Tencent Cloud Gogs matches the
current workspace (excluding local secrets).
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-08-01 09:19:21 +08:00
zlwu and Cursor
5a9abfdd5d
fix(pl): keep multi-brand site feedback when plan product row is stale
...
Persist submitted brand qtys even if plan brand_mode lookup fails; resolve soft-deleted plan products for brand metadata instead of substituting another product; stop seeding all actual qty onto the first brand option.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 07:06:41 +08:00
zlwu and Cursor
156e4b63e5
fix(pl): treat required brand as preference in brand qty validation
...
Allow multi-brand feedback/archive rows when plan brandMode is required; only enforce sum equals actual qty.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-31 06:52:49 +08:00