Commit Graph
315 Commits
Author SHA1 Message Date
zlwuandCursor 3bb905bc20 feat(crm): add customer list column filter builder.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 08:17:06 +08:00
zlwuandCursor 36afab503a feat(bx): wire reimburse my list and export to column filters.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 07:43:45 +08:00
zlwuandCursor e7054dc244 feat(bx): add shared reimburse list column filter builder.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-06 07:41:23 +08:00
zlwuandCursor 45ed795501 chore(pl): add script to remount orphaned transport dibang stop links.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:43:10 +08:00
zlwuandCursor 4e3c2a9ffb fix(pl): keep driver/site tokens stable on rearrange.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:41:32 +08:00
zlwuandCursor 2a9cc6084b fix(pl): drop accidental cert-perm guard from dibang upsert commit.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:40:48 +08:00
zlwuandCursor 68564c61f0 feat(pl): upsert dibang links by stop instead of revoke-and-rebuild.
Keep inventory ids across rearrange/plan edits; block cancel when weighing exists.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:40:29 +08:00
zlwuandCursor 2e5b05f477 fix(pl): reject unknown plan product ids on upsert with 422.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:30:15 +08:00
zlwuandCursor 857067ec80 feat(pl): upsert plan product rows by id on update.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:24:43 +08:00
zlwuandCursor 6a7dfbcd38 feat(pl): upsert plan deliveries by stable id on save.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:18:06 +08:00
zlwuandCursor ca14bb7ca5 feat(pl): allow optional stop/product ids on plan write bodies.
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-05 18:15:28 +08:00
zlwuandCursor 7a5b8c3d96 chore: update graphify after plan-archive price permission
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 16:48:28 +08:00
zlwuandCursor b47c809300 feat(backend): gate archive writes and mask plan prices by menu code
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 16:30:31 +08:00
zlwuandCursor ce70265c92 feat(backend): add plan archive price mask helpers
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-03 16:25:17 +08:00
zlwu dd3bb3cf06 提交 2026-09-03 15:54:34 +08:00
zlwu 54a1ba0c5c 提交 2026-09-03 13:50:25 +08:00
zlwuandCursor 67d37a1f0e chore: update graphify after transport address notes
Mark the notes-fill design as implemented and refresh backend/frontend graphs.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 12:01:40 +08:00
zlwuandCursor 22b92ea056 feat(pl): add notes column on transport address library
Persist address-level precautions for later fill into plan load/delivery notes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:58:17 +08:00
zlwuandCursor 585b731846 chore: update graphify after plan draft-save feature
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:43:47 +08:00
zlwuandCursor ae91fbc63e feat(backend): support saveMode draft/formal and drafting follow gates
Draft skips business validators and writes drafting; formal promotes drafting to pending_arrange; wait-notice/delete/force allow drafting.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:40:54 +08:00
zlwuandCursor f9cdb8852b feat(backend): add saveMode field on plan create-full and update schemas
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:39:17 +08:00
zlwuandCursor f28e82c1b3 feat(backend): add draft save helpers for plan follow status drafting
Introduce min-field validation and follow_status resolution for saveMode draft/formal.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 11:39:04 +08:00
zlwu 1dfcc66d2c 提交 2026-09-02 08:20:52 +08:00
zlwu 0e8f244bc3 提交 2026-09-01 13:51:32 +08:00
zlwu ba21c40058 提交 2026-08-31 20:53:46 +08:00
zlwu 69fa5b1fa8 提交 2026-08-31 08:28:36 +08:00
zlwu 19c5aaa8f5 提交 2026-08-30 18:33:13 +08:00
zlwuandCursor 81b1cb9b1d feat(pl): show available contract qty before plan qty in stop products
Add contract-product-arrange-qty API and form UI with green available qty,
red plan qty over-hint, and click-through dialog for usage and plan list.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 17:41:36 +08:00
zlwuandCursor 3011cb9dae feat(pl): hard-block over-limit contract qty on arrange and remind after success
Validate arranged+this plan qty against fixed contract product quantities on
transport arrange; return post-success remaining/framework cumulative reminders.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 16:47:21 +08:00
zlwuandCursor 1959394223 feat(pl): enforce single contract on stop-contracts and legacy side paths
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 10:55:00 +08:00
zlwuandCursor a6d900ee1f fix(pl): harden load-contract product checks and tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 10:53:10 +08:00
zlwuandCursor fbcd27b213 feat(pl): require load products to belong to selected contract
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 10:49:36 +08:00
zlwuandCursor eb1bfc5732 feat(pl): enforce at most one contract per plan stop
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-30 10:46:41 +08:00
zlwu 63a1209620 提交 2026-08-30 09:30:02 +08:00
zlwu 16986f443e 提交 2026-08-27 19:38:12 +08:00
zlwu ebf006eeff 提交 2026-08-27 19:38:01 +08:00
zlwu 4611dbc2b2 提交 2026-08-27 14:23:18 +08:00
zlwuandCursor e56d227fe8 feat(pl): add customer stop pref service and unit tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 17:10:37 +08:00
zlwuandCursor bd682288f9 feat(pl): add PlCustomerStopPref model
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 17:06:59 +08:00
zlwu 4222eaa593 提交 2026-08-26 11:10:40 +08:00
zlwu dd1acdc787 提交 2026-08-23 18:42:27 +08:00
zlwu b74d483682 提交 2026-08-23 09:47:38 +08:00
zlwu 16be6fa22d 提交 2026-08-22 09:08:05 +08:00
zlwuandCursor 833544def3 fix(bx): include export_common helper and advance export endpoints
Previous reimbursement export commit depended on these files but they were left unstaged.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:34:35 +08:00
zlwuandCursor dbba755fd8 feat(bx): add list Excel export for reimbursement module pages
Wire ListExportDropdown on advance/reimburse/payment/expense/view/wallet lists, with matching POST export endpoints.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:34:22 +08:00
zlwuandCursor fe15a130cb feat(pl): add Excel export for plan contract gaps and document reminders
Complete remaining logistics list export pages under the PL module wave.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:19:07 +08:00
zlwuandCursor b1f734dbb0 feat(pl): add Excel export for freight unsettled plans and settlement tabs
Support filtered and selected export across freight settlement board panels.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:17:10 +08:00
zlwuandCursor 8f1f08b284 feat(pl): add Excel export for inventory ledger and inbound/outbound lists
Allow filtered and selected row export on inventory and shared IO order pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:14:58 +08:00
zlwuandCursor 89e8d6e65c feat(pl): add Excel export for recharge, urea and maintenance process lists
Support filtered and selected export on apply and disburse/process board pages.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:07:54 +08:00
zlwuandCursor 441e1fdae1 feat(pl): add Excel export for vehicle maintenance apply list
Support filtered and selected rows via backend export and ListExportDropdown.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-21 18:01:00 +08:00