TỔNG QUAN
Tổng quan vận hành mua hàng, kho và sản xuất
MUA HÀNG & CÔNG NỢ
KHO & SẢN XUẤT
HOẠT ĐỘNG XUẤT NHẬP & XƯỞNG TRẢ HÀNG
hoặc
BIỂU ĐỒ VẬN HÀNH
Giá trị mua hàng
So sánh đơn đặt vải và đơn đặt phụ liệu
Tiến độ đơn mua
Tỷ trọng đơn đang vận chuyển và đã nhập kho
Tiến độ sản xuất
Số bàn theo trạng thái sản xuất
Đơn đặt vải
Một đơn có thể chứa nhiều loại/màu vải và nhiều cây
Sản phẩm vải
Danh mục sản phẩm vải chuẩn để gộp tồn kho của nhiều lần đặt hàng
Nhà cung cấp
Tạo danh mục nhà cung cấp để chọn khi đặt hàng, đồng thời theo dõi tổng mua, thanh toán và công nợ.
Thanh toán & Công nợ
Theo dõi công nợ theo nhà cung cấp và chi tiết từng đơn đặt vải
Công nợ theo nhà cung cấpCộng gộp tất cả đơn của cùng nhà cung cấp
Chi tiết công nợ theo đơn
Thanh toán tiền tệ
Theo dõi riêng công nợ nguyên tệ của tất cả đơn đặt vải và phụ liệu sử dụng ngoại tệ. Không liên quan đến công nợ VND của đơn đặt hàng.
Báo cáo vải đang vận chuyển
Tổng hợp các loại vải đang vận chuyển về theo toàn bộ đơn đặt vải
BÁO CÁO TỔNG QUAN
Tập trung toàn bộ thống kê tổng quan của các danh mục vào một trang duy nhất.
Chứng từ đầu vào
Đồng bộ toàn bộ đơn đặt vải và đơn đặt phụ liệu để đối chiếu chứng từ, thanh toán và nhập hàng MISA. Bấm vào một dòng để xem chi tiết đơn hàng.
Chứng từ đầu ra
Tự động đồng bộ toàn bộ phiếu bán hàng thành phẩm và hồ sơ chứng từ đầu ra.
Đơn đặt phụ liệu
Quản lý đơn mua phụ liệu và nhập trực tiếp vào tồn kho khi hàng về
Sản phẩm phụ liệu
Tạo sản phẩm phụ liệu và quản lý tồn kho trực tiếp tại đây
Nhà cung cấp phụ liệu
Danh mục nhà cung cấp dùng riêng cho đơn đặt phụ liệu
Thanh toán & Công nợ
Lịch sử thanh toán nhiều lần theo từng đơn phụ liệu và công nợ theo nhà cung cấp
Công nợ theo nhà cung cấpCộng gộp toàn bộ đơn phụ liệu của cùng nhà cung cấp
Chi tiết công nợ theo đơn
Xuất phụ liệu sản xuất
Xuất nhiều loại phụ liệu cho xưởng và tự động trừ tồn kho
Quản lý phụ liệu sản xuất
Tồn phụ liệu tại từng xưởng = Tổng đã xuất − Tổng tiêu hao. Nhấn vào bất kỳ vị trí nào trên dòng để xem toàn bộ phụ liệu của xưởng theo Phân loại.
Tồn kho vải
Danh sách sản phẩm được lấy trực tiếp 100% từ QUẢN LÝ ĐẶT VẢI; sản phẩm chưa có hàng vẫn hiển thị với tồn = 0.
Tồn kho đang lấy trực tiếp danh mục Sản phẩm từ QUẢN LÝ ĐẶT VẢI.
Xuất vải sản xuất
Xuất nguyên cây: chọn loại vải, màu và tích các cây mang đi sản xuất
Xưởng sản xuất
Danh mục xưởng dùng chung cho quản lý sản xuất, xuất vải và xuất phụ liệu.
Sản phẩm thành phẩm
Quản lý mã thành phẩm, màu, định mức vải và nguyên phụ liệu tiêu hao cho từng sản phẩm.
Phiếu bán hàng thành phẩm
Bán thành phẩm theo tồn kho thực tế từng mã, màu và size.
Khách hàng thành phẩm
Danh mục khách hàng, doanh số, thanh toán và công nợ phiếu bán thành phẩm.
Kiểm kho thành phẩm
Đối chiếu tồn trên máy với số lượng thực kiểm theo từng mã, màu và size.
BÁO CÁO NHẬP KHO THÀNH PHẨM
Danh sách phiếu nhập kho · bấm vào dòng để xem chi tiết hoặc sửa phiếu.
Đã lưu
Quản lý sản xuất
Quản lý theo bàn sản xuất: xưởng, sản phẩm thành phẩm (ĐVT: Cái), vải sử dụng, màu, mét vải, định mức, tỷ lệ size và tiến độ trả hàng
Báo cáo đang sản xuất
Tổng hợp các mẫu thành phẩm còn đang sản xuất. Nhấn vào từng dòng để xem chi tiết theo màu và size.
Chứng từ mua hàng
Chi tiết đang sản xuất
Tài khoản & Gói dịch vụ
Thông tin tài khoản Owner, tình trạng thuê bao và lịch sử gia hạn
Thông tin tài khoảnOwner
Tên công ty—
Email—
SĐT—
Vai tròOwner
Gói dịch vụ hiện tạiChưa tải
Gói
—
Số user
—
Ngày kích hoạt
—
Ngày hết hạn
—
Còn lại
—
Lịch sử gia hạn & thanh toán
Chưa tải lịch sử.
Người dùng & Phân quyền
Quản lý tài khoản và phân quyền chi tiết theo từng danh mục
Thành viên công ty đang mởChưa chọn công ty
Admin chỉ quản lý thành viên của công ty đang mở. Thành viên công ty khác không xuất hiện tại đây.
Chưa có dữ liệu thành viên Cloud.
QUẢN TRỊ SAAS
Quản lý công ty khách hàng, gói phần mềm và trạng thái sử dụng.
Tài khoản khách hàng
Quản lý Owner/nhân viên Cloud: Email, SĐT, trạng thái đăng nhập và mật khẩu tạm. Đặt lại mật khẩu sẽ bắt buộc người dùng đổi mật khẩu ngay lần đăng nhập tiếp theo.
Đang tải tài khoản...
Email hệ thống tự độngChưa kiểm tra
Email giao dịch: tạo tài khoản, sắp hết hạn, hết hạn và gia hạn thành công. Cần cấu hình nhà cung cấp email production trong Supabase Edge Function Secrets.
Gửi thông báo khách hàngPlatform Admin
Gửi đến một công ty hoặc toàn bộ khách hàng. Thông báo được lưu theo tenant và hiển thị trong biểu tượng chuông.
Yêu cầu đăng ký mới0 yêu cầu
Khách gửi Tên tổ chức + SĐT + Email. Chọn gói và bấm “Duyệt & tạo khách hàng”: hệ thống tự tạo Company, Owner, trial 30 ngày và vùng dữ liệu trắng riêng. Mật khẩu tạm thời chỉ hiển thị sau khi tạo thành công.
Chưa tải yêu cầu đăng ký.
TEST Subscription & BillingChưa chạy
Tạo công ty tạm, kiểm tra cảnh báo còn ≤7 ngày, hết hạn vẫn đăng nhập/chỉ xem, backend chặn ghi, gia hạn nhanh 1 tháng, mở lại CRUD và tạo lịch sử thanh toán. Dữ liệu test tự xóa sau khi chạy.
UAT SaaS A ↔ B tự độngChưa chạy
Kiểm thử sâu bằng 2 công ty tạm UAT-A/UAT-B: Owner riêng, dữ liệu nghiệp vụ riêng, login/bootstrap, CRUD, chặn đọc/ghi chéo, backup và quy tắc 1 user = 1 company. Toàn bộ dữ liệu test tự xóa sau khi chạy.
TEST-C End-to-End tự độngChưa chạy
Tạo tạm TEST-C + Owner + dữ liệu trắng, kiểm tra đăng nhập Email, bootstrap 1 công ty, SĐT Owner, mật khẩu tạm và tenant isolation. Sau test hệ thống tự xóa TEST-C và user test.
Kiểm thử trước khi bán thậtChưa chạy
Kiểm tra trực tiếp cấu hình Supabase: RLS theo công ty, Storage chứng từ, gói SaaS và trạng thái nền tảng. Không tạo dữ liệu khách hàng giả trên production.
Kiểm thử quyền trong cùng công ty: ĐẠT
Viewer → Member → Admin → Khóa → Gỡ quyền đã được chạy trên TEST-A bằng tài khoản TEST-B làm thành viên tạm thời. Sau test, TEST-B vẫn là Owner độc lập của TEST-B. Backend Permission Guard hiện kiểm tra cả module + action tại Supabase trước khi thực thi nút.
Production GateStable
Trước khi nhập dữ liệu thật cho khách mới: chạy Stable Preflight và TEST-C E2E. Nếu có lỗi nghiêm trọng, rollback deployment trước và không xóa backup.
Kiểm thử tenant TEST-A ↔ TEST-BĐã chạy
✓TEST-A chỉ đọc/ghi dữ liệu TEST-A
✓TEST-B chỉ đọc/ghi dữ liệu TEST-B
✓Chứng từ bị chặn chéo theo company_id
✓Backup/restore TEST-A không tác động TEST-B
✓TEST-A không thể restore backup TEST-B
✓Công ty suspended bị chặn sử dụng/upload
✓Viewer đọc được nhưng không có quyền ghi
✓Member có quyền ghi nhưng không có quyền Admin
✓Admin có quyền quản trị công ty
✓Khóa user làm session guard mất quyền ngay
✓Kích hoạt lại user vẫn bị giới hạn max_users
✓Owner cuối cùng không thể tự hạ quyền/tự khóa
✓Nút thao tác Cloud kiểm tra thêm quyền Backend trước khi chạy
✓Member chỉ nhận dữ liệu các module được cấp
✓RPC lưu bỏ qua module ngoài quyền, kể cả gọi API trực tiếp
✓Full snapshot RPC chỉ Owner/Admin/Super Admin được dùng
✓Revision độc lập theo từng module
✓Khác module có thể lưu song song; cùng module phát hiện conflict
✓Cùng module nhưng khác bản ghi có thể lưu song song
✓Cùng bản ghi dùng revision riêng và chặn ghi đè dữ liệu cũ
✓Realtime subscribe theo company_id và quyền module
✓Chuyển công ty/logout tự hủy channel Realtime cũ
✓Mất mạng: thay đổi được giữ cục bộ theo công ty
✓Có mạng lại: tự đồng bộ và vẫn dùng record revision chống ghi đè
✓Audit Cloud ghi user/module/entity/action + before/after
✓Khôi phục Audit chỉ tác động đúng company/module/entity được chọn
✓Bản phục hồi tạo revision mới và tiếp tục được Audit
✓Thao tác thay đổi nhiều module được lưu trong một transaction nguyên tử
✓Nếu một bản ghi conflict, toàn bộ giao dịch Cloud rollback
✓Thanh toán xưởng kiểm tra lại công nợ live trước khi ghi, chống thanh toán trùng
✓Xưởng trả vượt kế hoạch theo size phải xác nhận rõ trước khi tăng công nợ
✓Hoàn tác phiếu phụ liệu bị chặn nếu cùng phụ liệu/phân loại tại xưởng đã có tiêu hao
✓Sổ chuyển động phụ liệu ghi Nhập → Xuất → Tiêu hao theo nguồn lô
✓Tiêu hao được phân bổ FIFO vào từng phiếu xuất phụ liệu
✓Hoàn tác phiếu chỉ bị chặn khi chính lô của phiếu đó đã tiêu hao
✓Sổ chuyển động vải truy vết từng cây: Nhập → Xuất → Bàn sản xuất
✓Tồn từng cây được đối soát giữa remainingMeters và movement ledger
✓Chênh lệch thủ công được ghi thành adjustment rõ ràng
✓Giá vải thành phẩm lấy đúng giá thực tế của từng cây đã xuất
✓Phụ liệu tính giá FIFO theo lô nhập + phân loại
✓Thiếu giá thực tế không được chốt; thay đổi trả hàng/tiêu hao làm giá thành cần tính lại
✓Thanh toán vải/phụ liệu/xưởng kiểm tra công nợ live trước khi ghi
✓Mã tham chiếu thanh toán trùng được cảnh báo/chặn
✓Nguyên tệ lưu snapshot tỷ giá nhưng không bị cộng thanh toán VND hai lần
✓Bản ghi đã phát sinh giao dịch chuyển sang Ngừng sử dụng/Lưu trữ thay vì xóa cứng
✓Danh mục lưu trữ vẫn giữ liên kết lịch sử nhưng bị loại khỏi lựa chọn giao dịch mới
✓Smoke test CRUD kiểm tra ID, liên kết, archived selector và nguồn thanh toán
✓Sửa lỗi guard thanh toán đơn không tồn tại và thứ tự kiểm tra nhập kho đơn lưu trữ
✓Responsive hardening cho 1920 / 1366 / tablet / mobile
✓Bảng mobile cuộn ngang, không co chữ dọc; modal và bộ lọc ngày nằm trên lớp nội dung
✓Release Candidate preflight kiểm tra nghiệp vụ + CRUD + responsive + Cloud safety
✓Vercel SPA rewrite giữ deep-link/F5 cho toàn bộ route
✓Mỗi user chỉ có tối đa 1 company_id ở database
✓Đăng nhập tự mở công ty duy nhất, không còn bước chọn công ty
✓Form đăng ký gửi Tổ chức + SĐT + Email vào Quản trị SaaS
✓Login Cloud dùng 1 bootstrap RPC thay cho chuỗi request tuần tự
✓Revision, Plan, Realtime và Platform bootstrap tải nền sau khi giao diện đã mở
✓Duyệt yêu cầu SaaS tự tạo Company + Owner + dữ liệu trắng trong một quy trình
✓Owner mới bị ràng buộc 1 tài khoản = 1 công ty và đăng nhập tự vào company
✓Khách đăng nhập bằng Email hoặc SĐT với cùng mật khẩu
✓SĐT được xử lý phía Edge Function, không công khai ánh xạ SĐT ↔ Email
✓Platform Admin quản lý Email/SĐT, khóa/mở và đặt lại mật khẩu khách hàng
✓Mật khẩu tạm từ onboarding/reset bắt buộc đổi ở lần đăng nhập tiếp theo
✓Owner có thể tự đổi mật khẩu bất kỳ lúc nào tại Người dùng & Phân quyền
✓Member/Admin không thấy chức năng tự đổi mật khẩu Owner
✓Owner tạo nhân viên Cloud với Email + SĐT + Vai trò + Quyền
✓Backend kiểm tra Owner + Max user + Email/SĐT duy nhất + 1 user = 1 company
✓Nhân viên mới bắt buộc đổi mật khẩu tạm lần đầu
✓Quên mật khẩu gửi link recovery qua Email mà không tiết lộ Email có tồn tại hay không
✓Link recovery mở màn hình đặt mật khẩu mới và dùng lại được cho cả Email/SĐT
✓TEST-C E2E tự động tạo môi trường tạm, kiểm tra và tự cleanup
✓Đăng ký và Quên mật khẩu có URL riêng, F5 giữ đúng trang
✓Boot splash che quá trình restore session, không nháy login khi F5
✓Session Cloud được mirror localStorage để F5/iOS restore ổn định
✓Login overlay bị ẩn từ HTML/CSS trước first paint, không còn flash một frame
✓UAT A↔B tự động kiểm tra CRUD + tenant read/write isolation + backup
✓Thuê bao hết hạn vẫn đăng nhập chỉ xem; backend chặn mọi ghi dữ liệu
✓Gia hạn nhanh 1/3/6/12 tháng tự tạo lịch sử thanh toán và kích hoạt lại
✓TEST Subscription tự kiểm tra expiry → read-only → renew → write restored
✓Platform Admin có thể sửa tên công ty trực tiếp
Bài test đã phát hiện và đã sửa lỗi hàm save/restore PostgreSQL liên quan đến cột nghiệp vụ mới và trạng thái FOUND.
Quyền thao tác trên giao diện vẫn được bảo vệ hai lớp: nút bị ẩn/vô hiệu hóa theo
actionPermissions và click trái phép bị chặn ở capture phase.Onboarding khách hàng mớiTạo trọn gói
Super Admin tạo công ty, Owner đăng nhập, gói phần mềm và thời hạn sử dụng trong một bước. Dữ liệu khởi tạo hoàn toàn trống và tách riêng theo
company_id.Gói sản phẩm SaaS
Cấu hình giá, giới hạn người dùng và các module được phép sử dụng. Dung lượng chứng từ không giới hạn. Backup/restore đã được kiểm thử cách ly giữa hai công ty. Dữ liệu tải/lưu cho Member hiện được lọc trực tiếp tại Supabase theo module.
Đang tải danh sách gói...
Đơn hàng & Gia hạn SaaS
Khi đơn được ghi nhận thanh toán đủ, hệ thống tự kích hoạt/gia hạn công ty đến ngày kết thúc của đơn và ghi lịch sử thay đổi gói.
Đang tải đơn SaaS...
Danh sách công ty khách hàng
Gia hạn nhanh SaaS
Tạo đơn SaaS / Gia hạn
Tạo kỳ sử dụng mới cho công ty khách hàng
Ghi nhận thanh toán SaaS
Gói SaaS
Thiết lập giá, giới hạn và module
Module được sử dụng
Sửa người dùng
Thiết lập tài khoản và quyền truy cập từng danh mục
Báo cáo tồn kho vải
Giá trị tồn kho hiện tại theo giá vốn trung bình của từng mã vải
Báo cáo tồn kho phụ liệu
Giá trị tồn kho phụ liệu hiện tại theo giá vốn trung bình của từng mã phụ liệu
Báo cáo tồn kho sản xuất
Tổng giá trị vải và phụ liệu đang nằm trong các bàn sản xuất chưa hoàn thành
Lịch sử thao tác
Theo dõi người dùng, thời gian và các thao tác quan trọng trên hệ thống
Cài đặt mẫu in
Chỉnh nội dung, bố cục và các trường dữ liệu tự động cho tất cả chức năng đang có nút In.
Biến dữ liệu tự độngDùng dạng {{...}}
Các phần lấy tự động từ đơn hàng / xưởng / nhà cung cấp được để dưới dạng hàm biến. Khi in, hệ thống tự thay bằng dữ liệu thật. Không cần nhập lại thủ công.
Các mẫu đang sử dụng
Phiếu xuất kho vải
Nội dung chữ
Có thể Enter để xuống dòng. Khi in, tên công ty luôn căn cùng mép trái và tự cân đối khi có nhiều dòng.
Cột bảng
Bố cục trang
Dòng thông tin động
Mỗi dòng có thể chứa chữ cố định và biến. Ví dụ:
Đơn vị nhận: {{receiver_name}}.Dữ liệu & Sao lưu
Xuất/nhập dữ liệu để sao lưu hoặc chuyển máy · quyền truy cập do Quản trị SaaS kiểm soát
V3.37.1 Stable đã bổ sung cơ chế lưu an toàn, kiểm tra toàn vẹn dữ liệu và backup đầy đủ. Bản HTML vẫn lưu dữ liệu cục bộ trong trình duyệt; khi vận hành nhiều người dùng nên chuyển dữ liệu sang cơ sở dữ liệu server.
Đang kiểm tra toàn vẹn dữ liệu...
CRUD + Archive · Chưa kiểm tra.
Responsive · Chưa kiểm tra.
Stable Preflight · Chưa kiểm tra.
Công ty / Khách hàng sử dụng phần mềmChưa chọn
Multi-Tenant SaaS: mỗi công ty có vùng dữ liệu riêng. Nhân viên Công ty A không thể đọc dữ liệu Công ty B.
PostgreSQL chuẩn hóa: các phân hệ được lưu thành bảng riêng có
company_id. Đã có cột nghiệp vụ thật cho Đơn vải, Sản phẩm/vải, Nhà cung cấp, Tồn kho vải, Xuất vải, Xưởng, Thành phẩm, Quản lý sản xuất, toàn bộ Phụ liệu và Thanh toán tiền tệ để SQL có thể lọc, thống kê và lập báo cáo trực tiếp. Công nợ/Thanh toán hiện có thêm sổ tài chính SQL riêng; chứng từ được lưu trong Supabase Storage theo company_id. JSON chỉ còn giữ chi tiết phức tạp trong giai đoạn chuyển đổi.Đăng nhập Cloud để xem danh sách công ty.
Tài khoản chưa được gán công ty.
Chưa kiểm tra thời hạn sử dụng.
An toàn dữ liệu CloudChưa kiểm tra
Chưa tải danh sách backup.
Lịch sử gói & gia hạn
Chưa tải lịch sử.
Nhật ký Audit CloudOwner/Admin
Ghi tự động ai đã tạo/sửa/xóa dữ liệu Cloud, bản ghi nào, revision nào và dữ liệu trước/sau thay đổi. Owner/Admin có thể khôi phục riêng một bản ghi về trạng thái trước một thao tác.
Chưa tải audit.
Tài chính CloudChưa đồng bộ
Kho chứng từ CloudRiêng theo công ty
Chưa tải danh sách chứng từ.
Chưa đồng bộ PostgreSQL
Realtime: TắtTự nhận thay đổi từ người dùng khác trong cùng công ty.
Cloud đã đồng bộMất mạng vẫn lưu cục bộ; khi có Internet sẽ tự thử đồng bộ lại.
Module-scoped CloudMember chỉ tải/lưu các phân hệ được cấp quyền; Owner/Admin dùng đầy đủ dữ liệu công ty.
Revision theo phân hệĐơn vải, Kho, Sản xuất, Phụ liệu… có revision độc lập; hai người sửa hai phân hệ khác nhau không chặn nhau.
Revision theo bản ghiChỉ bản ghi được thêm/sửa/xóa mới gửi lên Cloud. Hai người có thể làm hai đơn khác nhau trong cùng danh mục mà không chặn nhau.
Atomic transactionXuất kho / tạo phiếu / sản xuất và các thao tác liên quan nhiều bảng sẽ cùng thành công hoặc cùng rollback, không lưu nửa giao dịch.
Business guardsChặn thanh toán xưởng bằng số dư cũ, cảnh báo trả vượt kế hoạch và bảo vệ hoàn tác tồn phụ liệu sau tiêu hao.
Accessory lot ledgerNhập kho → xuất xưởng → tiêu hao được truy vết theo phiếu/lô; hoàn tác không còn dựa vào tồn tổng của xưởng.
Fabric roll ledgerMỗi cây vải có sổ Nhập → Xuất → Liên kết bàn SX → Điều chỉnh và có thể đối soát tồn theo giao dịch.
Production cost integrityGiá thành dùng đúng cây vải thực xuất + phụ liệu FIFO + gia công; thiếu giá thực tế sẽ không được chốt.
Finance reconciliationCông nợ vải + phụ liệu + xưởng được đối soát Local ↔ PostgreSQL; thanh toán nguyên tệ không cộng trùng vào dòng tiền VND.
Historical reference protectionNCC, sản phẩm, xưởng, đơn và bàn đã phát sinh lịch sử sẽ được lưu trữ thay vì xóa; có thể khôi phục khi cần.
Cột nghiệp vụ: chưa đồng bộSX/PL SQL: chưa đồng bộ
Dữ liệu theo tài khoảnChưa kết nối
Cơ chế mới: mỗi tài khoản Supabase chỉ thấy các không gian dữ liệu của chính mình hoặc các workspace được người khác chia sẻ. Admin có thể tạo tài khoản nhân viên trực tiếp trong Người dùng & Phân quyền. Tài khoản mới có thể tạo một bộ dữ liệu hoàn toàn trống. Quyền Chỉ xem không được phép ghi thay đổi lên dữ liệu chung.
Chưa kết nối tài khoản Cloud. Dữ liệu hiện tại vẫn đang dùng bộ nhớ cục bộ.
Không gian dữ liệu
Kết nối tài khoản để xem dữ liệu được phép truy cập.