Diễn giải hệ thống và các module
Summary feature, độ phức tạp và estimate sơ bộ
Estimate dưới đây là ước lượng sơ bộ theo man-day cho 1 dev và 1 tester, dùng để hình dung effort ở mức story/high-level. Chưa bao gồm UAT, PM, DevOps, triển khai production, migration dữ liệu thực tế và thời gian chờ khách hàng xác nhận.
| Feature / Module | Độ khó / phức tạp | Độ rõ requirement | Độ phức tạp test | Estimate Dev (MD) | Estimate Test (MD) | Ghi chú |
|---|---|---|---|---|---|---|
| Quản trị 2 công ty / phạm vi dữ liệu | Trung bình | Rõ | Trung bình | 4-6 | 2-3 | Cần chốt danh sách user được xem nhiều công ty và rule chuyển công ty. |
| Vai trò người dùng / phân quyền | Trung bình | Tương đối rõ | Cao | 6-10 | 3-5 | Cần chốt ma trận quyền chi tiết theo từng role và từng module. |
| BOD / Dashboard tổng quan | Trung bình - cao | Tương đối rõ | Cao | 12-18 | 5-8 | Cần chốt danh sách KPI MVP; chú ý các cảnh báo vận hành đang là đề xuất thêm. |
| Quản lý xăng dầu | Rất cao | Tương đối rõ | Rất cao | 35-55 | 15-25 | Đã chốt công thức bán ngoài: đơn giá bán = trung bình đơn giá vốn các lô + chiết khấu; chuyển hàng nội bộ tách quy trình và giá trị tồn kho tính theo giá gốc từng lô. |
| Quản lý chi nhánh | Cao | Trung bình | Cao | 12-20 | 5-8 | Chi nhánh là đơn vị nội bộ dưới công ty mẹ; hàng từ công ty mẹ về chi nhánh dùng quy trình chuyển hàng nội bộ, không ghi nhận như phiếu bán thường. |
| Quản lý cửa hàng xăng dầu | Cao | Rõ | Cao | 20-30 | 8-14 | Cần kiểm tra format file của 3 phần mềm; chú ý rule tính tồn/lãi theo lô và phiếu kiểm định tồn kho. |
| Quản lý vận tải | Cao | Tương đối rõ | Cao | 25-40 | 10-16 | Cần hỏi lại flow tài xế bấm Start/Dừng; chú ý không đưa mặt hàng/khối lượng/trọng lượng vào scope. |
| Quản lý tài chính | Rất cao | Trung bình | Rất cao | 35-55 | 15-25 | Cần chốt rule đối soát sao kê, công nợ âm/dương, thanh toán một phần và hủy đối soát. |
| Trung tâm duyệt | Trung bình | Rõ | Trung bình | 10-16 | 4-7 | Cần chốt ai được duyệt từng loại chứng từ; chú ý duyệt hàng loạt vẫn phải lưu lịch sử riêng. |
| Import dữ liệu ban đầu 2026 | Cao | Chưa rõ | Cao | 12-20 | 5-8 | Cần chốt danh sách dữ liệu import, template, file mẫu và rule xử lý lỗi/trùng. |
| Thông báo / nhắc việc | Trung bình | Trung bình | Trung bình | 8-14 | 3-5 | Cần phân loại nhắc việc bắt buộc và nhắc việc đề xuất; chú ý tránh notification quá nhiều. |
| AI Chatbot | Cao | Tương đối rõ | Cao | 15-25 | 6-10 | Cần chốt phạm vi câu hỏi được hỗ trợ; chú ý phân quyền dữ liệu và không cho sửa dữ liệu. |
| Tổng sơ bộ | 194-309 | 81-134 | Cần refine sau khi chốt MVP, acceptance criteria và dữ liệu mẫu. |
Background
- Hai pháp nhân Công ty Cổ Phần Đầu Tư Phát Triển Núi Hồng và Công Ty TNHH Thương Mại và Dịch Vụ Tổng Hợp Lâm Giang cùng vận hành mảng xăng dầu và vận tải.
- Hai công ty dùng chung một nền tảng phần mềm, nhưng dữ liệu, tài sản, nhân sự, báo cáo và vận hành phải tách riêng theo từng công ty.
- Trong nghiệp vụ xăng dầu, công ty có thể bán xăng dầu cho khách hàng bên ngoài, chuyển hàng nội bộ cho chi nhánh theo quan hệ công ty mẹ - chi nhánh, và chuyển hàng nội bộ từ Kho Tổng xuống cửa hàng/điểm bán trực thuộc.
- Cửa hàng xăng dầu không còn được xem như đối tượng mua hàng từ công ty như diễn giải trước đó. Cửa hàng nhận hàng bằng nghiệp vụ
Chuyển hàng nội bộ, sau đó bán lẻ và upload báo cáo bán hàng. - Chi nhánh là đơn vị nội bộ dưới công ty mẹ, không phải pháp nhân ngang hàng với 2 công ty hiện có. Chi nhánh có thể dùng module quản lý xăng dầu để bán xăng dầu, có thể có cửa hàng xăng dầu trực thuộc, nhưng không có đội xe.
Quản trị 2 công ty và phạm vi dữ liệu
- Hệ thống phục vụ cho 2 doanh nghiệp:
- Công ty Cổ Phần Đầu Tư Phát Triển Núi Hồng.
- Công Ty TNHH Thương Mại và Dịch Vụ Tổng Hợp Lâm Giang.
- Cả 2 doanh nghiệp đều vận hành mảng xăng dầu và vận tải.
- Hệ thống dùng chung một nền tảng, nhưng dữ liệu phải tách riêng theo từng công ty:
- Nhân sự.
- Tài sản.
- Xe.
- Tài xế.
- Chi nhánh.
- Kho.
- Cửa hàng.
- Phiếu mua/bán/nhập/xuất/chuyển hàng.
- Chuyến xe.
- Công nợ.
- Doanh thu, chi phí, lợi nhuận.
- Báo cáo.
- Nhân viên thuộc công ty nào thì chỉ thao tác và xem dữ liệu của công ty đó.
- Một số user quyền cao có thể xem dữ liệu cả 2 công ty.
- Với user có quyền xem nhiều công ty, hệ thống cần có bộ chọn công ty để xem riêng từng công ty.
- BOD/Giám đốc cần xem báo cáo tách riêng theo từng công ty, không mặc định gộp số liệu của 2 công ty.
- Nếu sau này cần xem hợp nhất 2 công ty, đó nên là một lựa chọn riêng, không phải mặc định.
Sơ đồ phân cấp entity ở mức đơn giản:
flowchart TD
Platform[Hệ thống Petrol Ops] --> CompanyA[Công ty Núi Hồng]
Platform --> CompanyB[Công ty Lâm Giang]
Supplier[Nhà cung cấp xăng dầu bên ngoài]
Customer[Khách hàng mua xăng dầu bên ngoài]
Supplier -->|Bán xăng dầu cho| CompanyA
Supplier -->|Bán xăng dầu cho| CompanyB
CompanyA -->|Bán xăng dầu cho| Customer
CompanyB -->|Bán xăng dầu cho| Customer
CompanyA --> ABranch[Chi nhánh]
CompanyB --> BBranch[Chi nhánh]
CompanyA --> AMainWarehouse[Kho Tổng]
CompanyB --> BMainWarehouse[Kho Tổng]
AMainWarehouse --> AStore[Cửa hàng xăng dầu]
BMainWarehouse --> BStore[Cửa hàng xăng dầu]
ABranch --> ABranchWarehouse[Kho chi nhánh]
BBranch --> BBranchWarehouse[Kho chi nhánh]
ABranch --> ABranchStore[Cửa hàng thuộc chi nhánh]
BBranch --> BBranchStore[Cửa hàng thuộc chi nhánh]
CompanyA --> ATransport[Đội xe / Vận tải]
CompanyB --> BTransport[Đội xe / Vận tải]
ABranch -. Không quản trị .-> ANoTransport[Không có đội xe]
BBranch -. Không quản trị .-> BNoTransport[Không có đội xe]Cách đọc story này
- Các nội dung nghiệp vụ chính bên dưới được diễn giải từ 2 tài liệu EasyNote đã ghi nhận với khách hàng.
- Một số phần là chuẩn hóa/suy luận triển khai để story dễ hiểu hơn, ví dụ: bảng vai trò, trạng thái chứng từ, lịch sử thao tác, quy tắc đối soát, cảnh báo vận hành.
- Các phần có nhãn
Cần xác nhậnlà điểm cần hỏi lại khách hàng trước khi chốt scope hoặc thiết kế chi tiết.
Vai trò người dùng cơ bản
Bảng dưới đây là chuẩn hóa vai trò đề xuất từ nghiệp vụ EasyNote, chưa phải ma trận phân quyền chi tiết đã được khách hàng chốt.
| Vai trò | Phạm vi dữ liệu | Chức năng chính |
|---|---|---|
| CEO/Giám đốc/BOD | Có thể xem một hoặc nhiều công ty tùy quyền | Xem dashboard, báo cáo tổng quan, doanh thu, chi phí, lợi nhuận, công nợ, cảnh báo vận hành. |
| Admin | Theo công ty được phân quyền hoặc toàn hệ thống | Quản lý dữ liệu nền, người dùng, cấu hình, hỗ trợ chỉnh sửa/hủy/rollback khi cần. |
| Kinh doanh | Công ty trực thuộc | Tạo phiếu mua, phiếu bán, tạo chuyến xe, theo dõi khách hàng và chứng từ liên quan. |
| Kho | Công ty/kho được phân quyền | Nhập kho, xuất kho, theo dõi tồn kho, lô hàng và hàng đã bán chưa xuất. |
| Kế toán/Tài chính | Công ty trực thuộc hoặc nhiều công ty nếu được phân quyền | Import sao kê, đối soát giao dịch, cập nhật thu/chi, theo dõi công nợ, chi phí, lợi nhuận. |
| Điều phối vận tải | Công ty trực thuộc | Điều phối chuyến xe, giao tài xế/xe, cập nhật thực tế chuyến, theo dõi chi phí phát sinh. |
| Tài xế | Dữ liệu chuyến xe của mình | Xem chuyến được giao, cập nhật thông tin chuyến nếu quy trình sau này yêu cầu. |
| Quản lý chi nhánh | Chi nhánh được phân quyền | Theo dõi tồn kho chi nhánh, bán xăng dầu, quản lý cửa hàng trực thuộc nếu có; không quản trị xe. |
| User cửa hàng | Chỉ cửa hàng của mình | Upload báo cáo bán hàng hằng ngày và xem tồn kho cửa hàng của mình. |
BOD / Dashboard tổng quan
BOD/Giám đốc cần một màn hình tổng quan để xem tình hình vận hành và tài chính của từng công ty.
- Dashboard mặc định xem theo từng công ty.
- User có quyền cao có thể đổi công ty bằng bộ chọn công ty.
- Dashboard cần có bộ lọc:
- Theo ngày.
- Theo tháng.
- Theo khoảng ngày.
- Theo công ty.
Nhóm chỉ số tài chính
- Tổng doanh thu.
- Tổng chi phí.
- Lợi nhuận gộp.
- Lợi nhuận thực.
- Tổng tiền thực trong các tài khoản ngân hàng.
- Công nợ phải thu.
- Công nợ phải trả.
- Tiền đang kẹt ở:
- Tồn kho.
- Khách hàng bên ngoài chưa thanh toán nếu có bán công nợ; chi nhánh chỉ tính vào nhóm này khi có công nợ phát sinh từ hoạt động chi nhánh bán ra ngoài hoặc quy trình nộp tiền nội bộ được chốt.
- Cửa hàng chưa chuyển tiền báo cáo bán lẻ.
- Hàng đã bán nhưng chưa xuất.
- Khoản phải trả nhà cung cấp sắp đến hạn.
Nhóm chỉ số xăng dầu
- Tổng lượng mua vào.
- Tổng lượng bán ra.
- Tổng lượng chuyển hàng nội bộ.
- Tồn kho vật lý.
- Tồn kho khả dụng.
- Hàng đã bán nhưng chưa xuất.
- Giá trị tồn kho.
- Doanh thu xăng dầu.
- Lợi nhuận xăng dầu.
Nhóm chỉ số chi nhánh
- Doanh thu xăng dầu theo chi nhánh.
- Lượng xăng bán ra theo chi nhánh.
- Tồn kho từng chi nhánh.
- Tiền chi nhánh đã chuyển về công ty mẹ nếu có.
- Tiền chi nhánh còn thiếu/chuyển dư nếu có.
- Lợi nhuận chi nhánh.
- Chi phí chi nhánh.
Nhóm chỉ số cửa hàng
- Doanh thu cửa hàng.
- Lượng xăng bán ra theo cửa hàng.
- Tồn kho từng cửa hàng.
- Tiền cửa hàng đã chuyển về.
- Tiền cửa hàng còn thiếu/chuyển dư.
- Lợi nhuận cửa hàng.
- Chi phí cửa hàng.
Nhóm chỉ số vận tải
- Tổng số chuyến xe.
- Doanh thu vận tải.
- Chi phí vận tải.
- Lợi nhuận vận tải.
- Doanh thu/chi phí theo xe.
- Doanh thu/chi phí theo tài xế.
- Công nợ khách hàng vận tải.
- Công nợ garage.
- Xe sắp đến hạn bảo dưỡng.
Cảnh báo đề xuất / điểm cần chú ý
Các cảnh báo dưới đây là đề xuất vận hành dựa trên nghiệp vụ đã mô tả, không phải toàn bộ đều được EasyNote ghi trực tiếp:
- Công nợ quá hạn.
- Phiếu mua/bán/chuyển hàng chờ duyệt.
- Phiếu chuyển hàng nội bộ đã duyệt nhưng chưa hoàn tất.
- Chi phí chờ duyệt.
- Cửa hàng chưa gửi báo cáo ngày.
- Cửa hàng chuyển thiếu tiền.
- Tồn kho thấp.
- Hàng đã bán nhưng chưa xuất lâu ngày.
- Xe sắp đến hạn bảo dưỡng.
Quản lý xăng dầu
- Bao gồm các luồng cơ bản: Mua -> Nhập, Bán -> Xuất, Chuyển hàng nội bộ:
- Công ty mua từ nhà cung cấp như Petrolimex => Tạo phiếu mua. Nếu phiếu mua này chưa được bộ phận kế toán chuyển qua:
Đã thanh toánthì số tiền mua hàng sẽ được tính vào Công Nợ Phải Trả cho Nhà Cung Cấp. - Sau khi phiếu mua được duyệt, công ty sẽ tạo phiếu nhập kho để ghi nhận hàng thực nhập. Sau khi Nhập Kho, các thông tin như: Tồn Kho, Số tiền tồn kho, Công nợ sẽ được tính - Kho vẫn được nhập khi chưa thanh toán.
- Công ty bán cho khách hàng bên ngoài => Tạo phiếu bán.
- Sau khi phiếu bán được duyệt, công ty sẽ tạo phiếu xuất kho để ghi nhận hàng thực xuất cho khách hàng.
- Công ty chuyển hàng cho chi nhánh theo quan hệ công ty mẹ - chi nhánh => Tạo phiếu chuyển hàng nội bộ, không tạo phiếu bán thông thường.
- Kho Tổng chuyển xăng về cửa hàng/điểm bán trực thuộc => Tạo phiếu chuyển hàng nội bộ, không tạo phiếu bán cho cửa hàng.
- Công ty mua từ nhà cung cấp như Petrolimex => Tạo phiếu mua. Nếu phiếu mua này chưa được bộ phận kế toán chuyển qua:
- Trước khi Mua/Bán/Chuyển hàng đều phải đi qua quy trình duyệt thì mới được Nhập/Xuất/Chuyển.
- Hàng chuyển từ công ty mẹ về chi nhánh dùng quy trình
Chuyển hàng nội bộ: không ghi nhận như phiếu bán thông thường, không tạo doanh thu bán hàng và không tạo công nợ phải thu như phiếu bán.
Lô hàng, giá vốn, chiết khấu và luồng xuất/chuyển xăng dầu
- Mỗi phiếu mua xăng dầu sẽ tạo ra 1
Lô hàng. - Mỗi
Lô hàngcó các thông tin chính:- Nhà cung cấp
- Kho lưu trữ
- Số lượng nhập
- Giá vốn/giá gốc mua vào
- Số lượng còn tồn của lô
Lô hànglà dữ liệu để theo dõi nguồn hàng, số lượng và giá vốn từ lúc mua vào đến lúc chuyển nội bộ hoặc bán ra ngoài.- Khi tạo phiếu chuyển hàng nội bộ:
- Người dùng chọn kho nguồn, nơi nhận, lô hàng và số lượng chuyển.
- Có thể chuyển một phần hoặc toàn bộ số lượng còn tồn của một lô.
- Nơi nhận vẫn phải giữ trace về lô gốc, giá vốn gốc và số lượng đã nhận.
- Phiếu chuyển không tạo doanh thu, không tạo công nợ phải thu của cửa hàng.
- Khi công ty mẹ bán xăng dầu cho khách hàng bên ngoài:
- Người dùng tạo
Phiếu bán. - Người dùng chọn kho nguồn, lô hàng và số lượng bán.
- Nếu phiếu bán lấy hàng từ nhiều lô, hệ thống tính
Giá vốn trung bình = Tổng đơn giá vốn của các lô trong phiếu bán / Số lượng lô. - Người dùng nhập
Chiết khấutheo đồng/lít cho khách hàng/công ty ngoài. - Hệ thống tính
Đơn giá bán = Giá vốn trung bình + Chiết khấu. - Giá vốn trung bình, chiết khấu và đơn giá bán phải được chốt lại trên phiếu bán để các thay đổi lô/tồn kho sau đó không làm đổi phiếu cũ.
- Lợi nhuận gộp của phiếu bán được tính dựa trên doanh thu phiếu bán trừ giá vốn của lô đã xuất.
- Người dùng tạo
- Chuyển hàng nội bộ không áp dụng giá bán, chiết khấu, doanh thu hoặc công nợ phải thu.
- Giá bán lẻ cho người tiêu dùng tại cửa hàng không nằm trong luồng phiếu bán cấp công ty. Phần đó được lấy từ file báo cáo bán hàng hằng ngày của cửa hàng.
- Giá vốn trung bình, chiết khấu và đơn giá bán được chốt tại thời điểm tạo phiếu bán.
- Giá trị tồn kho được tính theo giá gốc/giá vốn nhập của từng lô.
Sơ đồ tổng quan từ Lô hàng đến các luồng xuất/chuyển:
flowchart TD
PM["Phiếu mua được duyệt"] --> NK["Nhập kho"]
NK --> LH["Tạo Lô hàng<br/>số lượng, kho, giá vốn gốc"]
LH --> Q{"Lô được dùng để làm gì?"}
Q -->|"Bán cho khách hàng/công ty ngoài"| PB["Phiếu bán"]
Q -->|"Chuyển xuống cửa hàng nội bộ"| PCH["Phiếu chuyển hàng nội bộ"]
PB --> XK["Xuất kho bán ngoài"]
XK --> DT["Ghi nhận doanh thu<br/>công nợ phải thu nếu chưa thu tiền"]
XK --> GV["Ghi nhận giá vốn<br/>lợi nhuận gộp"]
PCH --> CH["Cửa hàng nhận tồn<br/>giữ trace lô gốc và giá vốn"]
CH --> BCC["Import báo cáo bán hàng cửa hàng"]
BCC --> FIFO["Trừ tồn FIFO theo lô đã nhận"]
FIFO --> DTCH["Ghi nhận doanh thu, giá vốn,<br/>lợi nhuận và tiền cửa hàng phải chuyển"]Sơ đồ bán xăng dầu cho khách hàng/công ty ngoài:
flowchart TD
PB["Tạo Phiếu bán"] --> LOT["Chọn 1 hoặc nhiều lô<br/>và số lượng bán từng lô"]
LOT --> AVG["Tính giá vốn trung bình<br/>Tổng đơn giá vốn / Số lượng lô"]
AVG --> CK["Nhập chiết khấu đồng/lít<br/>chỉ áp dụng cho bán ngoài"]
CK --> PRICE["Đơn giá bán<br/>Giá vốn trung bình + Chiết khấu"]
PRICE --> LOCK["Chốt giá vốn trung bình,<br/>chiết khấu và đơn giá trên phiếu"]
LOCK --> APPROVE["Duyệt Phiếu bán"]
APPROVE --> XK["Xuất kho"]
XK --> REV["Doanh thu<br/>Số lượng * Đơn giá bán"]
XK --> COGS["Giá vốn hàng bán<br/>theo lô đã xuất"]
REV --> PROFIT["Lợi nhuận gộp<br/>Doanh thu - Giá vốn"]
COGS --> PROFIT
REV --> AR["Công nợ phải thu<br/>nếu khách chưa thanh toán"]Sơ đồ chuyển hàng nội bộ xuống cửa hàng và kết thúc vòng đời bằng FIFO:
flowchart TD
PCH["Tạo Phiếu chuyển hàng nội bộ"] --> SEL["Chọn kho nguồn, cửa hàng nhận,<br/>lô hàng và số lượng chuyển"]
SEL --> APPROVE["Duyệt Phiếu chuyển"]
APPROVE --> MOVE["Chuyển tồn từ Kho Tổng<br/>sang tồn cửa hàng"]
MOVE --> NOREV["Không ghi nhận doanh thu,<br/>chiết khấu, công nợ phải thu hoặc lợi nhuận"]
MOVE --> STORE["Cửa hàng có lớp tồn mới<br/>trace lô gốc, giá vốn gốc, ngày nhận"]
STORE --> REPORT["Cửa hàng upload báo cáo bán hàng hằng ngày"]
REPORT --> FIFO["Hệ thống trừ tồn FIFO<br/>lô nhận trước bán trước"]
FIFO --> REV["Ghi nhận doanh thu cửa hàng<br/>theo giá bán trong file báo cáo"]
FIFO --> COGS["Ghi nhận giá vốn cửa hàng<br/>theo lô FIFO đã tiêu thụ"]
REV --> PROFIT["Lợi nhuận gộp cửa hàng"]
COGS --> PROFIT
REV --> CASH["Số tiền cửa hàng phải chuyển về"]
CASH --> RECON["Đối soát tiền thực nhận<br/>đủ, thiếu hoặc dư"]
FIFO --> END{"Đã bán hết số lượng<br/>của lô chuyển?"}
END -->|"Chưa"| STORE
END -->|"Rồi"| DONE["Kết thúc vòng đời phần hàng đã chuyển"]Ví dụ chi tiết vòng đời Lô LH001:
- Phiếu mua
PM001tạo LôLH001tại Kho Tổng:- Số lượng nhập:
100.000 lít. - Giá vốn:
14.500đ/lít. - Giá trị lô hàng:
100.000 * 14.500 = 1.450.000.000đ. - Nếu chưa thanh toán nhà cung cấp, hệ thống ghi nhận công nợ phải trả
1.450.000.000đ.
- Số lượng nhập:
- Với cùng Lô
LH001, có 3 trường hợp kết thúc vòng đời khác nhau:
Trường hợp 1: chuyển hết xuống cửa hàng, cửa hàng bán hết theo FIFO
- Kho Tổng tạo phiếu chuyển hàng
PCH001chuyển100.000 lítcủa LôLH001về Cửa hàng A. - Tại thời điểm chuyển hàng:
- Kho Tổng còn
0 lítcủa LôLH001. - Cửa hàng A nhận
100.000 lít, vẫn trace về LôLH001, giá vốn14.500đ/lít. - Không phát sinh doanh thu, chiết khấu, công nợ phải thu hoặc lợi nhuận.
- Kho Tổng còn
- Khi Cửa hàng A upload báo cáo bán hàng:
- Hệ thống trừ tồn theo FIFO: lô nhập trước bán hết trước.
- Vì Cửa hàng A chỉ đang có Lô
LH001, toàn bộ sản lượng bán được trừ vàoLH001.
- Ví dụ Cửa hàng A bán hết trong 2 ngày:
- Ngày 1 bán
60.000 lít, giá bán lẻ từ file báo cáo16.800đ/lít. - Ngày 2 bán
40.000 lít, giá bán lẻ từ file báo cáo16.800đ/lít.
- Ngày 1 bán
- Doanh thu cửa hàng:
100.000 * 16.800 = 1.680.000.000đ.
- Giá vốn hàng bán:
100.000 * 14.500 = 1.450.000.000đ.
- Lợi nhuận gộp cửa hàng:
1.680.000.000 - 1.450.000.000 = 230.000.000đ.
- Vòng đời phần chuyển hàng chỉ kết thúc khi báo cáo bán hàng của cửa hàng đã import đủ để tiêu thụ hết
100.000 lítcủa LôLH001.
Trường hợp 2: bán hết cho khách hàng bên ngoài
- Công ty tạo phiếu bán
PB001bán100.000 líttừ LôLH001cho Khách hàng doanh nghiệp B. - Phiếu bán chỉ lấy từ Lô
LH001, nên giá vốn trung bình của phiếu bán là14.500đ/lít. - Chiết khấu cộng cho Khách hàng doanh nghiệp B:
800đ/lít. - Đơn giá bán trên phiếu bán:
14.500 + 800 = 15.300đ/lít.
- Doanh thu phiếu bán:
100.000 * 15.300 = 1.530.000.000đ.
- Giá vốn hàng bán:
100.000 * 14.500 = 1.450.000.000đ.
- Lợi nhuận gộp:
1.530.000.000 - 1.450.000.000 = 80.000.000đ.
- Nếu khách chưa thanh toán, hệ thống ghi nhận công nợ phải thu
1.530.000.000đ. - Sau khi xuất đủ, Kho Tổng còn
0 lítcủa LôLH001và vòng đời lô tại Kho Tổng kết thúc. - Nếu một phiếu bán lấy từ nhiều lô, hệ thống tính trung bình cộng đơn giá vốn của các lô được chọn, rồi mới cộng chiết khấu:
- Lô
LH001:60.000 lít, giá vốn14.500đ/lít. - Lô
LH002:40.000 lít, giá vốn14.800đ/lít. - Tổng đơn giá vốn của các lô:
14.500 + 14.800 = 29.300đ/lít. - Số lượng lô được chọn:
2. - Giá vốn trung bình:
29.300 / 2 = 14.650đ/lít. - Nếu chiết khấu cộng là
800đ/lít, đơn giá bán là14.650 + 800 = 15.450đ/lít.
- Lô
Trường hợp 3: chuyển một phần, bán một phần
- Kho Tổng tạo phiếu chuyển hàng
PCH002chuyển30.000 líttừ LôLH001về Cửa hàng A. - Sau chuyển hàng:
- Cửa hàng A nhận
30.000 lít, trace về LôLH001. - Kho Tổng còn
70.000 lít. - Chưa phát sinh doanh thu, chiết khấu, công nợ phải thu hoặc lợi nhuận cho phần chuyển.
- Cửa hàng A nhận
- Công ty tạo phiếu bán
PB002bán70.000 lítcòn lại cho Khách hàng doanh nghiệp B:- Phiếu bán chỉ lấy từ phần còn lại của Lô
LH001, nên giá vốn trung bình là14.500đ/lít. - Chiết khấu cộng:
800đ/lít. - Đơn giá bán:
14.500 + 800 = 15.300đ/lít. - Doanh thu:
70.000 * 15.300 = 1.071.000.000đ. - Giá vốn:
70.000 * 14.500 = 1.015.000.000đ. - Lợi nhuận gộp phần bán ngoài:
56.000.000đ.
- Phiếu bán chỉ lấy từ phần còn lại của Lô
- Cửa hàng A sau đó upload báo cáo bán hết
30.000 lítđã nhận:- Hệ thống trừ tồn theo FIFO tại cửa hàng.
- Nếu giá bán lẻ trong file là
16.800đ/lít, doanh thu cửa hàng là30.000 * 16.800 = 504.000.000đ. - Giá vốn phần cửa hàng bán:
30.000 * 14.500 = 435.000.000đ. - Lợi nhuận gộp phần cửa hàng bán:
69.000.000đ.
- Tổng sau khi cả 2 nhánh đã kết thúc:
- Tổng doanh thu:
1.071.000.000 + 504.000.000 = 1.575.000.000đ. - Tổng giá vốn:
1.015.000.000 + 435.000.000 = 1.450.000.000đ. - Tổng lợi nhuận gộp:
56.000.000 + 69.000.000 = 125.000.000đ. - Lô
LH001hết tồn ở cả Kho Tổng và Cửa hàng A.
- Tổng doanh thu:
Quy trình duyệt phiếu mua, phiếu bán và phiếu chuyển hàng
- Phiếu mua, phiếu bán và phiếu chuyển hàng nội bộ đều phải đi qua quy trình duyệt trước khi được nhập/xuất kho hoặc chuyển kho.
- Quy trình phiếu mua:
- Nhân viên tạo phiếu mua.
- Gửi duyệt.
- Sau khi được duyệt, bộ phận kho mới được tạo phiếu nhập kho.
- Khi nhập kho, hệ thống mới cập nhật tồn kho, giá trị tồn kho và công nợ phải trả.
- Quy trình phiếu bán:
- Nhân viên tạo phiếu bán.
- Chọn khách hàng, kho, lô hàng, số lượng từng lô và chiết khấu.
- Gửi duyệt.
- Khi gửi duyệt, hệ thống kiểm tra tồn kho khả dụng của từng lô trên phiếu.
- Nếu đủ tồn khả dụng, hệ thống giữ hàng cho khách, tăng
Hàng đã bán chưa xuất, giảmTồn kho khả dụngvà chuyển phiếu sangChờ duyệt. - Nếu không đủ tồn khả dụng, hệ thống không cho gửi duyệt và yêu cầu người dùng sửa lô hàng hoặc số lượng.
- Sau khi được duyệt, bộ phận kho mới được tạo phiếu xuất kho.
- Khi xuất kho, hệ thống mới cập nhật tồn kho, giá vốn, doanh thu và công nợ phải thu.
- Quy trình phiếu chuyển hàng nội bộ:
- Nhân viên tạo phiếu chuyển hàng.
- Chọn kho nguồn, nơi nhận hàng, lô hàng và số lượng từng lô.
- Nơi nhận hàng có thể là kho chi nhánh hoặc điểm tồn cửa hàng/điểm bán.
- Gửi duyệt.
- Sau khi được duyệt, bộ phận kho mới thực hiện chuyển hàng.
- Khi xác nhận chuyển, hệ thống giảm tồn kho tại kho nguồn và tăng tồn tại nơi nhận.
- Phiếu chuyển hàng không ghi nhận doanh thu bán hàng và không tạo công nợ phải thu như phiếu bán.
- Duyệt phiếu không đồng nghĩa với đã nhập kho/xuất kho.
- Thanh toán/thu tiền là bước riêng do kế toán cập nhật.
- Hệ thống cần lưu lịch sử: người tạo, người gửi duyệt, người duyệt/từ chối, thời gian xử lý và lý do từ chối nếu có.
Trạng thái chứng từ
Các trạng thái dưới đây là chuẩn hóa đề xuất từ luồng EasyNote, chưa phải taxonomy trạng thái đã được khách hàng chốt.
- Phiếu mua:
Nháp->Chờ duyệt->Đã duyệt->Đã nhập một phần/Đã nhập đủ->Thanh toán một phần/Đã thanh toán. - Phiếu bán:
Nháp->Chờ duyệt->Đã duyệt->Đã xuất một phần/Đã xuất đủ->Thu tiền một phần/Đã thu tiền. - Phiếu chuyển hàng nội bộ:
Nháp->Chờ duyệt->Đã duyệt->Đã chuyển một phần/Đã chuyển đủ. - Phiếu mua/bán/chuyển hàng có thể chuyển sang
Đã hủy; khi hủy không xóa dữ liệu mà rollback các phát sinh tồn kho, doanh thu và công nợ liên quan. - Với phiếu bán, trạng thái
Nhápchưa giữ hàng và chưa làm giảm tồn kho khả dụng. - Khi phiếu bán được gửi duyệt, hệ thống kiểm tra tồn khả dụng; nếu đủ tồn thì bắt đầu giữ hàng cho khách và chuyển phiếu sang
Chờ duyệt. - Duyệt phiếu bán là bước cho phép xuất kho sau đó, không phải thời điểm bắt đầu giữ hàng.
Đối soát nhập/xuất/chuyển nhiều lần
- Một phiếu mua có thể được nhập kho nhiều lần bằng nhiều phiếu nhập kho.
- Một phiếu bán có thể được xuất kho nhiều lần bằng nhiều phiếu xuất kho.
- Một phiếu chuyển hàng nội bộ có thể được chuyển nhiều lần nếu thực tế giao hàng chia nhiều đợt.
- Hệ thống cần đối soát số lượng theo từng chứng từ gốc:
- Tổng số lượng trên phiếu mua/phiếu bán/phiếu chuyển hàng.
- Đã nhập kho, đã xuất kho hoặc đã chuyển bao nhiêu.
- Còn lại bao nhiêu chưa nhập/chưa xuất.
- Danh sách từng lần nhập/xuất/chuyển: ngày thực hiện, người thực hiện, kho, lô hàng, số lượng.
- Không được nhập kho vượt quá số lượng còn lại trên phiếu mua.
- Không được xuất kho vượt quá số lượng còn lại trên phiếu bán hoặc số lượng còn tồn của lô đã chọn.
- Không được chuyển hàng vượt quá số lượng còn lại trên phiếu chuyển hàng hoặc số lượng còn tồn của lô/kho nguồn.
- Trạng thái chứng từ sẽ được cập nhật dựa trên kết quả đối soát:
- Phiếu mua: chưa nhập, nhập một phần, nhập đủ.
- Phiếu bán: chưa xuất, xuất một phần, xuất đủ.
- Phiếu chuyển hàng: chưa chuyển, chuyển một phần, chuyển đủ.
Ví dụ:
- Phiếu mua
PM001có tổng số lượng100.000 lít.- Nhập lần 1:
40.000 lít - Nhập lần 2:
60.000 lít - Tổng đã nhập:
100.000 lít - Còn lại chưa nhập:
0 lít
- Nhập lần 1:
- Phiếu bán
PB001có tổng số lượng100.000 lít.- Xuất lần 1:
40.000 lít - Xuất lần 2:
60.000 lít - Tổng đã xuất:
100.000 lít - Còn lại chưa xuất:
0 lít
- Xuất lần 1:
- Phiếu chuyển hàng
PCH001từ Kho Tổng sang Cửa hàng A có tổng số lượng50.000 lít.- Chuyển lần 1:
20.000 lít - Chuyển lần 2:
30.000 lít - Tổng đã chuyển:
50.000 lít - Còn lại chưa chuyển:
0 lít
- Chuyển lần 1:
Quản lý danh mục nền cho xăng dầu
Các danh mục nền là dữ liệu dùng chung để tạo phiếu mua, phiếu bán, phiếu nhập kho, phiếu xuất kho, phiếu chuyển hàng và báo cáo tồn kho.
- Nhà cung cấp
- Dùng khi tạo phiếu mua xăng dầu.
- Lưu thông tin tên nhà cung cấp, thông tin liên hệ, mã số thuế nếu có.
- Ví dụ: Petrolimex.
- Khách hàng
- Dùng khi tạo phiếu bán xăng dầu.
- Bao gồm khách hàng bên ngoài công ty; không dùng để đại diện cho chi nhánh trong luồng công ty mẹ chuyển hàng nội bộ.
- Lưu thông tin tên khách hàng, thông tin liên hệ, mã số thuế nếu có.
- Chi nhánh
- Dùng khi phân quyền, xem báo cáo, bán xăng dầu và theo dõi tồn kho theo chi nhánh.
- Chi nhánh nhận hàng từ công ty mẹ theo rule nội bộ được chốt, sau đó có thể bán xăng dầu.
- Chi nhánh có thể có cửa hàng xăng dầu trực thuộc.
- Kho
- Dùng khi nhập kho, xuất kho và xem tồn kho.
- Một công ty có thể có nhiều kho.
- Kho nghiệp vụ có thể là kho tổng hoặc kho chi nhánh.
- Điểm tồn cửa hàng/điểm bán
- Dùng để theo dõi lượng xăng thực tế tại cửa hàng sau khi nhận hàng chuyển nội bộ.
- Không phải là kho nghiệp vụ đầy đủ: cửa hàng không tự tạo phiếu mua/bán, không quản lý lô thủ công và không tự xuất kho như bộ phận kho.
- Điểm tồn cửa hàng vẫn giữ trace lô gốc, giá vốn gốc và số lượng đã nhận để tính giá vốn/lợi nhuận khi import báo cáo bán hàng.
- Sản phẩm xăng dầu
- Danh mục các loại xăng dầu đang mua bán.
- Ví dụ: RON95, E5 RON92, Dầu DO.
- Mỗi sản phẩm có đơn vị tính chính, ví dụ lít hoặc khối.
- Đơn vị tính
- Dùng để thống nhất số lượng trên phiếu mua/bán/nhập/xuất/chuyển hàng.
- Ví dụ: lít, khối.
- Nếu dùng nhiều đơn vị tính, hệ thống cần có tỷ lệ quy đổi rõ ràng.
- Tài khoản ngân hàng
- Công ty, khách hàng và nhà cung cấp có thể có nhiều tài khoản ngân hàng.
- Dữ liệu này phục vụ phần tài chính, thanh toán và đối soát sao kê.
- Tên trong nội dung chuyển khoản
- Mỗi khách hàng/nhà cung cấp có thể có tên nhận diện trong nội dung chuyển khoản.
- Dùng để hệ thống nhận diện giao dịch khi import sao kê ngân hàng.
Quản lý hàng đã bán nhưng chưa xuất hết
- Trong nghiệp vụ xăng dầu, có trường hợp công ty đã bán hàng cho khách nhưng khách chưa lấy hết hàng ngay.
- Phần hàng này vẫn còn nằm trong kho vật lý của công ty, nhưng đã thuộc về khách hàng trên phiếu bán.
- Phiếu bán ở trạng thái
Nhápchưa giữ hàng và chưa làm giảm tồn kho khả dụng. - Khi người dùng gửi duyệt phiếu bán, hệ thống kiểm tra tồn khả dụng của từng lô trên phiếu.
- Nếu đủ tồn khả dụng, lượng hàng trên phiếu được giữ lại cho khách, không được bán hoặc chuyển tiếp cho đối tượng khác.
- Nếu không đủ tồn khả dụng, hệ thống không cho gửi duyệt và yêu cầu người dùng sửa lô hàng hoặc số lượng.
- Giá vốn trung bình, chiết khấu và đơn giá bán đã chốt trên phiếu không tự tính lại khi gửi duyệt; bước gửi duyệt chỉ kiểm tra và giữ tồn khả dụng.
- Hệ thống cần biết khách hàng nào đang còn hàng gửi tại kho, thuộc phiếu bán nào và lô hàng nào.
- Cần tách rõ các khái niệm:
Tồn kho vật lý: tổng lượng xăng thực tế còn trong kho.Hàng đã bán chưa xuất: lượng xăng đã giữ cho khách nhưng chưa xuất khỏi kho.Tồn kho khả dụng: lượng xăng còn có thể bán cho khách khác.
- Công thức:
Tồn kho khả dụng = Tồn kho vật lý - Hàng đã bán chưa xuất
- Theo ghi nhận hiện tại, công ty không tính phí lưu kho cho hàng khách đã mua nhưng chưa lấy hết.
- Khi xuất kho từng phần:
- Mỗi lần xuất kho sẽ giảm
Hàng đã bán chưa xuất. - Đồng thời giảm
Tồn kho vật lý. - Nếu xuất đủ số lượng trên phiếu bán thì phiếu bán chuyển sang trạng thái đã xuất đủ.
- Mỗi lần xuất kho sẽ giảm
Ví dụ:
- Phiếu bán
PB001cho khách hàng A:- Tổng bán:
100.000 lít - Đã xuất kho:
0 lít - Hàng khách A còn gửi tại kho:
100.000 lít
- Tổng bán:
- Xuất kho lần 1:
- Xuất:
40.000 lít - Đã xuất kho:
40.000 lít - Hàng khách A còn gửi tại kho:
60.000 lít
- Xuất:
- Xuất kho lần 2:
- Xuất:
60.000 lít - Đã xuất kho:
100.000 lít - Hàng khách A còn gửi tại kho:
0 lít - Phiếu bán chuyển sang trạng thái đã xuất đủ.
- Xuất:
Tóm tắt luồng hàng đã bán nhưng chưa xuất:
- Phiếu bán ở trạng thái
Nhápchưa giữ hàng cho khách. - Khi gửi duyệt phiếu bán, hệ thống kiểm tra tồn khả dụng của từng lô.
- Nếu đủ tồn, hệ thống giữ hàng cho khách và phiếu chuyển sang
Chờ duyệt. - Phần hàng đã giữ làm giảm tồn kho khả dụng nhưng chưa giảm tồn kho vật lý.
- Khi phiếu bán được duyệt, bộ phận kho mới được phép tạo phiếu xuất kho.
- Khi khách lấy hàng từng phần, mỗi lần xuất kho giảm đồng thời hàng đã bán chưa xuất và tồn kho vật lý.
- Khi xuất đủ số lượng trên phiếu, phiếu bán chuyển sang trạng thái đã xuất đủ.
flowchart TD
A[Tạo phiếu bán cho khách hàng] --> B[Chọn lô hàng và số lượng bán]
B --> B1[Phiếu Nháp<br/>chưa giữ hàng]
B1 --> C[Gửi duyệt phiếu bán]
C --> C1{Đủ tồn khả dụng<br/>theo từng lô?}
C1 -->|Không| C2[Yêu cầu sửa lô hàng<br/>hoặc số lượng]
C2 --> B
C1 -->|Có| E[Giữ hàng cho khách]
E --> F[Tăng hàng đã bán chưa xuất]
E --> G[Giảm tồn kho khả dụng]
E --> H[Tồn kho vật lý chưa đổi]
F --> D[Phiếu bán Chờ duyệt]
D --> D1[Phiếu bán được duyệt]
D1 --> I[Khách lấy hàng từng phần]
I --> J[Tạo phiếu xuất kho]
J --> K[Giảm hàng đã bán chưa xuất]
J --> L[Giảm tồn kho vật lý]
K --> M{Đã xuất đủ?}
M -->|Chưa| I
M -->|Rồi| N[Phiếu bán đã xuất đủ]Chuyển hàng nội bộ từ Kho Tổng về cửa hàng/chi nhánh
- Xăng từ Kho Tổng chuyển về các cửa hàng/điểm bán trực thuộc không còn được diễn giải là bán hàng.
- Luồng đúng là
Chuyển hàng nội bộ:- Kho Tổng là nơi xuất chuyển.
- Cửa hàng, điểm bán hoặc kho chi nhánh là nơi nhận hàng.
- Hệ thống tạo phiếu chuyển hàng để theo dõi số lượng, lô hàng, người tạo, người duyệt, ngày chuyển và trạng thái chuyển.
- Phiếu chuyển hàng nội bộ:
- Làm giảm tồn kho tại kho nguồn.
- Làm tăng tồn kho tại nơi nhận.
- Không tạo doanh thu bán hàng.
- Không tạo công nợ phải thu của cửa hàng như phiếu bán.
- Vẫn cần giữ thông tin lô hàng để tính giá vốn và lợi nhuận khi nơi nhận bán ra.
- Nếu Chi nhánh có cửa hàng xăng dầu trực thuộc, luồng từ Chi nhánh xuống cửa hàng cũng dùng
Chuyển hàng nội bộ, không dùng phiếu bán nội bộ cho cửa hàng. - Phiếu chuyển hàng nội bộ dùng chung trung tâm duyệt hiện tại, không cần quy trình duyệt riêng.
Ví dụ:
- Ngày
22/05/2026, Kho Tổng chuyển30.000 lítRON95 từ LôLH001về Cửa hàng A. - Hệ thống tạo phiếu chuyển hàng
PCH001:- Kho nguồn: Kho Tổng.
- Nơi nhận: Cửa hàng A.
- Lô hàng:
LH001. - Số lượng:
30.000 lít.
- Sau khi xác nhận chuyển:
- Tồn Kho Tổng giảm
30.000 lít. - Tồn thực tế tại Cửa hàng A tăng
30.000 lít. - Không phát sinh doanh thu và công nợ phải thu từ Cửa hàng A.
- Tồn Kho Tổng giảm
Hủy phiếu và rollback
- Phiếu mua/phiếu bán/phiếu chuyển hàng không nên bị xóa khỏi hệ thống, mà chuyển sang trạng thái
Đã hủy. - Khi hủy phiếu, người dùng cần nhập:
- Lý do hủy
- Chứng từ/hình ảnh đính kèm nếu có
- Hệ thống cần lưu lịch sử:
- Người hủy
- Thời gian hủy
- Trạng thái phiếu trước khi hủy
- Các dữ liệu đã rollback
- Hủy phiếu mua:
- Nếu phiếu mua chưa nhập kho: chỉ chuyển trạng thái sang
Đã hủy. - Nếu phiếu mua đã nhập kho: hệ thống cần rollback tồn kho, giá trị tồn kho và công nợ phải trả đã phát sinh.
- Nếu phiếu mua đã thanh toán: không xóa giao dịch thanh toán, mà ghi nhận khoản cần hoàn tiền/cấn trừ/công nợ âm với nhà cung cấp.
- Nếu phiếu mua chưa nhập kho: chỉ chuyển trạng thái sang
- Hủy phiếu bán:
- Nếu phiếu bán chưa xuất kho: trả lại phần hàng đã giữ cho khách về tồn kho khả dụng.
- Nếu phiếu bán đã xuất kho: hệ thống cần rollback tồn kho, giá vốn, doanh thu và công nợ phải thu.
- Nếu phiếu bán đã thu tiền: không xóa giao dịch thu tiền, mà ghi nhận khoản cần hoàn tiền/cấn trừ/công nợ âm với khách hàng.
- Nếu phiếu bán mới xuất một phần: phần chưa xuất được trả về tồn khả dụng, phần đã xuất cần được xử lý như hàng trả lại hoặc nghiệp vụ điều chỉnh.
- Hủy phiếu chuyển hàng nội bộ:
- Nếu phiếu chưa chuyển: chỉ chuyển trạng thái sang
Đã hủy. - Nếu phiếu đã chuyển: hệ thống cần rollback tồn kho nguồn và tồn tại nơi nhận.
- Nếu nơi nhận đã bán ra một phần hàng đã chuyển, cần xử lý bằng nghiệp vụ điều chỉnh thay vì xóa trực tiếp lịch sử.
- Nếu phiếu chưa chuyển: chỉ chuyển trạng thái sang
- Sau khi phiếu đã hủy:
- Không được nhập kho/xuất kho tiếp.
- Không được cập nhật thanh toán/thu tiền trực tiếp trên phiếu đã hủy.
- Chỉ được xử lý các khoản tiền liên quan thông qua nghiệp vụ điều chỉnh/cấn trừ/hoàn tiền.
flowchart TD
A[Người dùng bấm hủy phiếu] --> B[Nhập lý do hủy và chứng từ đính kèm]
B --> C{Loại phiếu?}
C -->|Phiếu mua| D{Đã nhập kho chưa?}
D -->|Chưa| E[Chuyển phiếu mua sang Đã hủy]
D -->|Rồi| F[Rollback phiếu mua]
F --> F1[Giảm tồn kho đã nhập]
F --> F2[Giảm giá trị tồn kho]
F --> F3[Đảo công nợ phải trả]
F --> G{Đã thanh toán NCC chưa?}
G -->|Chưa| H[Hoàn tất hủy phiếu mua]
G -->|Rồi| I[Ghi nhận hoàn tiền, cấn trừ hoặc công nợ âm với NCC]
I --> H
E --> H
C -->|Phiếu bán| J{Đã xuất kho chưa?}
J -->|Chưa| K[Trả hàng đã giữ cho khách về tồn kho khả dụng]
K --> L[Chuyển phiếu bán sang Đã hủy]
J -->|Rồi| M[Rollback phiếu bán]
M --> M1[Tăng lại tồn kho vật lý hoặc ghi nhận hàng trả về]
M --> M2[Đảo giá vốn]
M --> M3[Đảo doanh thu]
M --> M4[Đảo công nợ phải thu]
M --> N{Đã thu tiền khách chưa?}
N -->|Chưa| O[Hoàn tất hủy phiếu bán]
N -->|Rồi| P[Ghi nhận hoàn tiền, cấn trừ hoặc công nợ âm với khách hàng]
P --> O
L --> O
H --> Q[Lưu lịch sử hủy và dữ liệu rollback]
O --> Q
Q --> R[Khóa phiếu đã hủy, không cho nhập/xuất/chuyển/thu/chi tiếp]Note: Công ty/chi nhánh quản lý quá trình nhập, xuất và chuyển hàng theo quyền được phân. Cửa hàng xăng dầu chỉ upload báo cáo bán hàng và xem tồn kho cửa hàng của mình (xem tiếp ở phần quản lý cửa hàng).
Quản lý Chi nhánh
- Chi nhánh là đơn vị nội bộ dưới công ty mẹ, không phải pháp nhân ngang hàng với 2 công ty hiện có.
- Chi nhánh có thể dùng module
Quản lý xăng dầuđể bán xăng dầu. - Chi nhánh nhận xăng dầu từ công ty mẹ bằng quy trình
Chuyển hàng nội bộ, không tạo phiếu bán thông thường giữa công ty mẹ và chi nhánh. - Chi nhánh không mua xăng dầu trực tiếp từ nhà cung cấp bên ngoài trong scope hiện tại, trừ khi khách hàng xác nhận thêm.
- Chi nhánh có thể có cửa hàng xăng dầu trực thuộc.
- Chi nhánh không có đội xe và không dùng module quản trị xe/vận tải. Quản trị xe, tài xế, chuyến xe và bảo dưỡng xe chỉ nằm ở công ty mẹ.
Cần xác nhận: Chi nhánh có tài khoản ngân hàng riêng, công nợ nội bộ riêng và quyền duyệt riêng hay dùng chung cơ chế của công ty mẹ.
Luồng hàng của Chi nhánh
- Công ty mẹ chuyển xăng dầu cho Chi nhánh bằng phiếu chuyển hàng nội bộ.
- Khi hàng về kho Chi nhánh:
- Tồn kho Chi nhánh tăng.
- Chi nhánh có thể bán xăng dầu cho khách hàng bên ngoài.
- Nếu Chi nhánh có cửa hàng trực thuộc, Chi nhánh chuyển hàng xuống cửa hàng bằng
Chuyển hàng nội bộ.
- Khi Chi nhánh bán xăng dầu:
- Chi nhánh dùng phiếu bán/xuất kho như module quản lý xăng dầu.
- Doanh thu, giá vốn, công nợ và lợi nhuận được ghi nhận theo phạm vi Chi nhánh.
- Dữ liệu Chi nhánh vẫn thuộc công ty mẹ để BOD/Giám đốc xem tổng hợp theo phân quyền.
Báo cáo Chi nhánh
- Hệ thống cần xem được:
- Tồn kho theo Chi nhánh.
- Doanh thu xăng dầu theo Chi nhánh.
- Lợi nhuận gộp và lợi nhuận thực theo Chi nhánh.
- Công nợ khách hàng của Chi nhánh nếu Chi nhánh bán công nợ.
- Tiền Chi nhánh chuyển về công ty mẹ nếu có quy trình nộp tiền nội bộ.
- Cửa hàng trực thuộc Chi nhánh nếu có.
Quản lý cửa hàng
- Mỗi cửa hàng xăng dầu sẽ được cấp 1 account trên phần mềm.
- User bình thường thuộc cửa hàng chỉ thấy được các chức năng đơn giản:
- Upload báo cáo bán hàng hằng ngày.
- Tạo phiếu kiểm định tồn kho cửa hàng.
- Xem tồn kho cửa hàng của mình.
- Các thông tin tổng hợp như doanh thu, lợi nhuận, chi phí, tiền chuyển về, lãi/lỗ chỉ dành cho CEO/Giám đốc/BOD hoặc user có quyền cao hơn.
- Cửa hàng không tự tạo phiếu mua/bán, không quản lý lô thủ công; các nghiệp vụ đó do công ty hoặc chi nhánh quản lý theo quyền.
- Cửa hàng nhận hàng từ Kho Tổng hoặc Chi nhánh bằng
Chuyển hàng nội bộ, không phải bằng phiếu bán nội bộ.
Luồng sử dụng của cửa hàng
- Cửa hàng đăng nhập vào hệ thống.
- Chọn file báo cáo bán hàng từ phần mềm hiện tại của cửa hàng.
- Bấm gửi báo cáo.
- Hệ thống xử lý file để lấy:
- Số lượng xăng bán ra.
- Giá bán.
- Doanh thu.
- Số tiền cửa hàng đã chuyển về.
- Hệ thống tự động cập nhật tồn kho cửa hàng.
- User cửa hàng có thể xem tồn kho hiện tại của cửa hàng mình.
- Khi đến kỳ kiểm định thực tế, cửa hàng tạo phiếu kiểm định, nhập tồn kho thực tế và gửi CEO/Giám đốc duyệt.
Upload báo cáo bán hàng hằng ngày
- Có 4 cửa hàng xăng dầu đang sử dụng 3 phần mềm khác nhau.
- Hệ thống cần cho phép upload file báo cáo từ các phần mềm này.
- File báo cáo dùng để cập nhật dữ liệu bán hàng hằng ngày.
- Nếu file có nhiều mức giá bán trong ngày, hệ thống cần ghi nhận rõ từng mức giá.
Kiểm định tồn kho cửa hàng
- Thực tế cửa hàng có thể kiểm định tồn kho định kỳ khoảng 1 tháng hoặc 2 tháng/lần.
- Cửa hàng tạo
Phiếu kiểm địnhđể ghi nhận số tồn thực tế tại thời điểm kiểm định. - Khi tạo phiếu kiểm định:
- Người tạo chọn cửa hàng.
- Người tạo chọn loại xăng cần kiểm định.
- Hệ thống hiển thị
Tồn kho lý thuyếtđang lấy từ hệ thống tại thời điểm tạo phiếu. - Người tạo nhập
Tồn kho thực tếsau khi đo/kiểm tra thực tế. - Hệ thống tự tính
Chênh lệch = Tồn kho thực tế - Tồn kho lý thuyết. - Người tạo gửi phiếu kiểm định lên CEO/Giám đốc duyệt.
- Phiếu kiểm định ở trạng thái
NháphoặcChờ duyệtkhông làm thay đổi tồn kho. - Sau khi CEO/Giám đốc duyệt:
- Tồn kho mới của cửa hàng được cập nhật theo
Tồn kho thực tếtrên phiếu kiểm định đã duyệt. - Số tồn kho mới này được dùng cho các lần bán hàng/import báo cáo bán hàng sau đó.
- Hệ thống lưu lịch sử điều chỉnh để biết tồn kho thay đổi từ phiếu kiểm định nào.
- Tồn kho mới của cửa hàng được cập nhật theo
- Nếu CEO/Giám đốc từ chối, hệ thống giữ nguyên tồn kho hiện tại và lưu lý do từ chối nếu có.
Cần xác nhận: một phiếu kiểm định có thể kiểm nhiều loại xăng trong cùng một lần, hay mỗi phiếu chỉ áp dụng cho một loại xăng.Cần xác nhận: chênh lệch sau kiểm định cửa hàng có cần điều chỉnh vào các lớp hàng/lô đã chuyển xuống cửa hàng để giữ đúng giá vốn khi tính lợi nhuận, hay chỉ cần cập nhật tồn thực tế theo từng loại xăng tại cửa hàng.Cần xác nhận: phiếu kiểm định có cần bắt buộc nhập lý do chênh lệch, ảnh/biên bản đính kèm, hoặc người kiểm tra thực tế hay không.
Tồn kho cửa hàng
- Khi cửa hàng nhận hàng từ phiếu chuyển hàng nội bộ, tồn kho cửa hàng tăng.
- Khi cửa hàng gửi báo cáo bán hàng hằng ngày, tồn kho cửa hàng giảm.
- Khi phiếu kiểm định tồn kho cửa hàng được CEO/Giám đốc duyệt, tồn kho cửa hàng được điều chỉnh theo tồn kho thực tế trên phiếu.
- Khi import báo cáo bán hàng của cửa hàng, hệ thống cần trừ tồn theo FIFO:
- Lô nào cửa hàng nhận trước thì được xem là bán trước.
- Chỉ khi lô cũ đã bán hết mới trừ sang lô nhận sau.
- Cách này giúp tính đúng giá vốn và lợi nhuận cửa hàng theo từng lô đã chuyển xuống.
- Với hàng chuyển nội bộ xuống cửa hàng, vòng đời phần hàng đã chuyển chỉ kết thúc khi báo cáo bán hàng của cửa hàng đã import và tiêu thụ hết số lượng tương ứng.
- Hệ thống tự tính:
- Số lượng tồn kho.
- Giá trị tồn kho.
- Giá nhập của hàng tồn.
- User cửa hàng chỉ được xem tồn kho của cửa hàng mình.
Báo cáo doanh thu, lợi nhuận và chi phí cửa hàng
- Phần này dành cho CEO/Giám đốc/BOD hoặc user có quyền cao hơn.
- Hệ thống cần tổng hợp:
- Doanh thu theo ngày/tháng.
- Số lượng bán ra.
- Giá bán.
- Giá nhập.
- Lợi nhuận gộp.
- Chi phí cửa hàng.
- Lợi nhuận thực.
- Chi phí cửa hàng bao gồm:
- Mặt bằng.
- Điện nước.
- Bảo trì sửa chữa.
- Lương.
- Nếu trong ngày có nhiều mức giá bán khác nhau, báo cáo cần thể hiện rõ để tính doanh thu/lợi nhuận đúng.
Đối soát tiền cửa hàng chuyển về
- Phần này dành cho CEO/Giám đốc/BOD hoặc user có quyền cao hơn.
- Báo cáo cửa hàng có số tiền phải chuyển về trong ngày.
- Kế toán/tài chính ghi nhận số tiền thực nhận.
- Hệ thống tính chênh lệch:
- Đã chuyển đủ.
- Còn thiếu.
- Chuyển dư.
Quản lý vận tải
- Doanh nghiệp đang vận hành vận tải và có hơn 20 đầu xe, chạy tuyến Bắc - Nam.
- Phân hệ vận tải chỉ quản trị chung về chuyến xe, không cần quản lý chi tiết mặt hàng, khối lượng hoặc trọng lượng hàng vận chuyển.
- Phân hệ vận tải chỉ áp dụng cho công ty mẹ. Chi nhánh không có đội xe và không quản trị xe/tài xế/chuyến xe trong scope hiện tại.
Quản lý tài xế
- Quản lý danh sách tài xế và thông tin tài xế.
- Mỗi tài xế cần có các thông tin:
- Họ tên.
- CCCD.
- GPLX.
- Ngày sinh.
- Ngày bắt đầu làm việc.
- Ngày kết thúc làm việc nếu có.
- Trạng thái: đang làm, tạm dừng, đã nghỉ.
- Tài xế có thể vào hệ thống để xem:
- Chuyến xe sắp chạy.
- Chuyến xe đang chạy.
- Chuyến xe đã hoàn thành.
- Tính năng đang được ghi nhận từ EasyNote: tài xế bấm
Startkhi bắt đầu chuyến và bấmDừngkhi kết thúc chuyến.Cần xác nhận: đây là ghi chú nội bộ vì flow này có thể quá thủ công, cần hỏi lại khách hàng có thật sự muốn tài xế thao tác trực tiếp trên app hay để điều phối cập nhật thời gian thực tế.- Nếu giữ tính năng này, hệ thống sẽ dùng thời gian start/dừng để thống kê chuyến xe mất bao lâu và so sánh với các chuyến tương tự.
- Nếu một chuyến xe có 2 tài xế thì mặc định lương tài xế được chia 2.
- Hệ thống cần hiển thị được doanh thu của tài xế theo tháng và theo chuyến.
Quản lý xe
- Quản lý danh sách xe và biển số xe.
- Mỗi xe có thể được gán mặc định với một tài xế.
- Mỗi xe cần có các thông tin:
- Biển số.
- Tài xế mặc định.
- Thời gian kiểm định xe.
- Giấy phép đi đường.
- Odo hiện tại.
- Tổng số chuyến.
- Tổng doanh thu.
- Tổng chi phí.
- Hệ thống cần theo dõi các mốc gần nhất của xe:
- Lần bảo dưỡng gần nhất.
- Lần thay nhớt gần nhất.
- Lần bơm dầu gần nhất.
- Lần thay lốp gần nhất.
Định mức chuyến
- Các chuyến/tuyến cố định có thể được cài đặt trước.
- Ví dụ: TP.HCM đi Hà Nội.
- Mỗi định mức chuyến cần có:
- Điểm đi.
- Điểm đến.
- Số KM.
- Lương tài xế dự kiến.
- Chi phí xăng dầu dự kiến.
- Phí VETC dự kiến.
- Doanh thu dự kiến.
- Định mức chuyến có thể được cập nhật bởi Admin.
- Khi tạo chuyến xe thực tế, hệ thống có thể lấy dữ liệu từ định mức chuyến để giảm thao tác nhập liệu và làm cơ sở so sánh sau chuyến.
Tạo và điều phối chuyến xe
- Bộ phận kinh doanh tạo chuyến xe.
- Khi tạo chuyến, người dùng nhập/chọn:
- Điểm đi.
- Điểm đến.
- Các điểm dừng giữa chặng nếu có.
- Ngày và giờ xuất phát.
- Xe.
- Tài xế chính.
- Tài xế phụ nếu có.
- Khách hàng vận tải nếu có.
- Doanh thu dự kiến nếu có.
- Chuyến xe sau khi tạo sẽ gửi tới bộ phận điều phối.
- Điều phối giao chuyến cho tài xế và báo xe thủ công.
- Chuyến xe có thể có nhiều điểm dừng để bỏ hàng hoặc lên hàng, nhưng hệ thống không cần quản lý chi tiết mặt hàng/khối lượng/trọng lượng.
Kết thúc chuyến và cập nhật thực tế
- Sau khi chuyến xe kết thúc, điều phối cần cập nhật dữ liệu thực tế.
- Các thông tin cần cập nhật:
- Thời gian kết thúc chuyến.
- Doanh thu thực tế nếu khác doanh thu dự kiến.
- Các điểm dừng phát sinh nếu có.
- Ghi chú phát sinh trong chuyến.
- Nếu chuyến xe chạy thêm điểm dừng và phát sinh thêm doanh thu, điều phối cần cập nhật doanh thu thực tế.
- Dữ liệu thực tế được dùng để:
- So sánh với định mức chuyến.
- Tính doanh thu chuyến.
- Tính chi phí chuyến.
- Tính lợi nhuận thực của chuyến.
Chi phí vận tải
- Chi phí vận tải có thể phát sinh trong hoặc sau chuyến xe.
- Khi tạo chi phí vận tải, người dùng cần chọn chuyến xe liên quan nếu có.
- Các loại chi phí vận tải gồm:
- Lương tài xế.
- Phí VETC.
- Xăng dầu.
- Rửa xe.
- Ăn uống.
- Vá xe.
- Chi phí ngoài khác.
- Chi phí cần đi qua quy trình duyệt tương tự phần chi phí chung của hệ thống:
- Tạo chi phí.
- Đính kèm hóa đơn/chứng từ nếu có.
- Nộp duyệt.
- Sau khi được duyệt, chi phí mới được tính vào tổng chi phí và lợi nhuận thực.
- VETC có thể được nhập thủ công trước, sau này có thể tích hợp để tự động lấy dữ liệu từ hệ thống VETC mỗi ngày hoặc sau mỗi chuyến.
- Một số chi phí có loại
Phải thu, nghĩa là công ty đã chi trước nhưng cần thu lại từ tài xế.- Ví dụ: ứng lương, phạt chuyến, khoản tài xế phải hoàn lại.
- Các khoản này sẽ được ghi nhận để trừ/cấn trừ với tài xế.
Bảo dưỡng xe
- Quản lý danh sách garage bảo dưỡng/sửa chữa.
- Khi tạo bảo dưỡng, người dùng cần nhập:
- Xe.
- Garage.
- Hạng mục bảo dưỡng/sửa chữa.
- Số tiền.
- Ngày bảo dưỡng.
- Chứng từ/hình ảnh đính kèm nếu có.
- Hệ thống cần nhắc lịch bảo dưỡng theo KM:
> 5.000 KM- cần bơm dầu.> 20.000 KM- cần thay nhớt.> 40.000 KM- cần thay lọc nhớt.
- Có thể dựa vào số chuyến xe đã đi để cộng dồn số KM và nhắc lịch bảo dưỡng.
- Cho phép sai số thực tế khoảng
50-100 KM. - Odo của xe được cập nhật thủ công định kỳ khoảng 2-3 ngày/lần.
- Chi phí bảo dưỡng/sửa chữa sẽ liên kết về tài chính để tính tổng chi phí và công nợ garage nếu chưa thanh toán.
Công nợ, doanh thu và báo cáo vận tải
- Hệ thống cần theo dõi:
- Doanh thu từng chuyến xe.
- Chi phí từng chuyến xe.
- Lợi nhuận thực từng chuyến xe.
- Công nợ khách hàng vận tải.
- Công nợ garage bảo dưỡng/sửa chữa.
- Khoản phải thu từ tài xế nếu có chi phí loại
Phải thu.
- Báo cáo vận tải cần xem được theo:
- Ngày.
- Tháng.
- Khoảng ngày.
- Xe.
- Tài xế.
- Khách hàng.
- Chủ doanh nghiệp có thể xem:
- Xe nào chạy bao nhiêu chuyến.
- Doanh thu và chi phí từng xe.
- Tài xế nào chạy bao nhiêu chuyến.
- Doanh thu của tài xế theo tháng hoặc theo chuyến.
- Chuyến nào lời/lỗ.
Quản lý tài chính
Chủ yếu quản lý các phần sau:
- Công nợ phải thu
- Theo dõi khách hàng bên ngoài còn nợ bao nhiêu nếu có bán công nợ.
- Theo dõi công nợ khách hàng của chi nhánh nếu chi nhánh bán công nợ cho khách hàng bên ngoài.
- Theo dõi tiền cửa hàng phải chuyển về theo báo cáo bán lẻ.
- Công nợ phát sinh từ phiếu bán/phiếu xuất kho.
- Ghi nhận thu tiền một phần hoặc toàn bộ.
- Theo dõi công nợ quá hạn.
- Công nợ phải trả
- Theo dõi công ty đang nợ nhà cung cấp bao nhiêu.
- Công nợ phát sinh từ phiếu mua/phiếu nhập kho.
- Ghi nhận thanh toán một phần hoặc toàn bộ.
- Theo dõi khoản phải trả đến hạn/quá hạn.
- Thu/chi tiền
- Ghi nhận tiền khách hàng bên ngoài chuyển về.
- Ghi nhận tiền chi nhánh chuyển về nếu có quy trình nộp tiền nội bộ được chốt.
- Ghi nhận tiền cửa hàng chuyển về theo báo cáo bán lẻ.
- Ghi nhận tiền công ty thanh toán cho nhà cung cấp.
- Ghi nhận các khoản chi khác như vận tải, bảo dưỡng, lương tài xế, phí cầu đường.
- Đối soát số tiền phải thu với số tiền thực nhận.
- Giá trị tồn kho và giá vốn
- Theo dõi số lượng tồn kho và giá trị tồn kho.
- Khi nhập kho, cập nhật giá trị hàng tồn.
- Khi xuất kho, giảm tồn kho và ghi nhận giá vốn.
- Khi chuyển hàng nội bộ, giảm tồn kho nguồn và tăng tồn tại nơi nhận, không ghi nhận doanh thu.
- Làm cơ sở tính lãi/lỗ theo từng đợt bán, chi nhánh, cửa hàng hoặc khách hàng.
- Dòng tiền mua - nhập - bán - xuất - thu
- Nên có một luồng tài chính xuyên suốt:
- Mua hàng → phát sinh dự kiến phải trả.
- Nhập kho → xác nhận giá trị hàng tồn và công nợ phải trả.
- Bán hàng → phát sinh dự kiến phải thu.
- Xuất kho → xác nhận doanh thu/công nợ phải thu và giảm tồn kho.
- Thu tiền → giảm phải thu, tăng tiền.
- Thanh toán nhà cung cấp → giảm phải trả, giảm tiền.
- Đây là xương sống để xem công ty đang kẹt tiền ở đâu: tồn kho, khách nợ, cửa hàng chưa nộp, hay nhà cung cấp đến hạn trả.
- Nên có một luồng tài chính xuyên suốt:
Nguồn phát sinh tài chính
Phân hệ tài chính không nhập lại toàn bộ dữ liệu nghiệp vụ từ đầu, mà nhận các phát sinh từ các module khác trong hệ thống.
- Từ Quản lý xăng dầu:
- Phiếu mua phát sinh khoản phải trả dự kiến cho nhà cung cấp.
- Phiếu nhập kho xác nhận giá trị hàng tồn kho và công nợ phải trả.
- Phiếu bán phát sinh khoản phải thu dự kiến từ khách hàng bên ngoài nếu có bán công nợ.
- Phiếu xuất kho xác nhận doanh thu, giá vốn và công nợ phải thu.
- Phiếu chuyển hàng nội bộ cập nhật tồn kho nguồn và tồn tại nơi nhận, không phát sinh doanh thu hoặc công nợ phải thu cửa hàng/chi nhánh.
- Hủy phiếu/rollback sẽ tạo các phát sinh điều chỉnh tương ứng.
- Từ Quản lý Chi nhánh:
- Doanh thu bán xăng dầu của Chi nhánh.
- Giá vốn và tồn kho theo Chi nhánh.
- Công nợ khách hàng của Chi nhánh nếu Chi nhánh bán công nợ.
- Tiền Chi nhánh chuyển về công ty mẹ nếu có quy trình nộp tiền nội bộ.
- Từ Quản lý cửa hàng:
- Báo cáo bán hàng hằng ngày phát sinh doanh thu cửa hàng.
- Số tiền cửa hàng chuyển về dùng để đối soát với doanh thu phải nộp.
- Chi phí cửa hàng được dùng để tính lợi nhuận thực của cửa hàng.
- Tồn kho cửa hàng được dùng để tính giá trị hàng tồn.
- Từ Quản lý vận tải:
- Doanh thu chuyến xe.
- Chi phí chuyến xe.
- Chi phí bảo dưỡng/sửa chữa.
- Công nợ khách hàng vận tải.
- Công nợ garage, tài xế hoặc các bên liên quan nếu có.
- Từ import sao kê ngân hàng:
- Giao dịch tiền vào.
- Giao dịch tiền ra.
- Số dư theo từng tài khoản ngân hàng.
- Dữ liệu dùng để đối soát thanh toán/thu tiền với phiếu mua, phiếu bán, chi phí và công nợ.
Import sao kê ngân hàng và đối soát giao dịch
Phần này dùng để đưa dòng tiền thực tế từ ngân hàng vào hệ thống, sau đó kế toán đối soát các giao dịch đó với phiếu mua, phiếu bán, chi phí hoặc công nợ liên quan.
Mục tiêu là hệ thống biết được:
- Tiền thật đã vào/ra tài khoản nào.
- Khoản tiền đó thuộc khách hàng, chi nhánh, cửa hàng, nhà cung cấp hoặc khoản chi phí nào.
- Khoản tiền đó đang thanh toán cho chứng từ nào.
- Sau đối soát, công nợ và trạng thái thanh toán được cập nhật đúng.
Quy trình tổng quát
- Kế toán chọn tài khoản ngân hàng của công ty.
- Kế toán upload file sao kê ngân hàng.
- Hệ thống đọc từng dòng giao dịch trong file.
- Mỗi dòng giao dịch được lưu thành một
Payment Transaction. - Hệ thống phân loại giao dịch:
- Tiền vào.
- Tiền ra.
- Hệ thống thử nhận diện đối tượng liên quan dựa trên:
- Số tài khoản ngân hàng.
- Nội dung chuyển khoản.
- Tên nhận diện chuyển khoản đã cấu hình cho khách hàng/nhà cung cấp.
- Kế toán kiểm tra lại gợi ý của hệ thống.
- Kế toán chọn chứng từ cần đối soát.
- Hệ thống cập nhật công nợ, trạng thái thanh toán và số dư ngân hàng.
Payment Transaction
Mỗi dòng sao kê sau khi import cần được lưu thành một giao dịch riêng, bao gồm:
- Tài khoản ngân hàng của công ty.
- Ngày giao dịch.
- Mã giao dịch nếu có.
- Loại giao dịch:
- Tiền vào.
- Tiền ra.
- Số tiền giao dịch.
- Tài khoản nguồn hoặc tài khoản nhận.
- Tên người chuyển/người nhận nếu file sao kê có.
- Nội dung chuyển khoản.
- Số dư sau giao dịch nếu file sao kê có.
- Trạng thái đối soát:
Chưa đối soátĐã gợi ý đối tượngĐã đối soát một phầnĐã đối soát đủKhông xác định
Đối soát tiền vào
Áp dụng khi khách hàng bên ngoài chuyển tiền thanh toán phiếu bán, chi nhánh chuyển tiền theo quy trình nộp tiền nội bộ nếu có, hoặc cửa hàng chuyển tiền bán lẻ về theo báo cáo ngày.
- Hệ thống nhận diện giao dịch tiền vào.
- Hệ thống gợi ý khách hàng bên ngoài, chi nhánh hoặc cửa hàng liên quan theo loại khoản phải thu.
- Kế toán mở giao dịch đó và thấy danh sách khoản phải thu:
- Phiếu bán chưa thu tiền.
- Phiếu bán thu tiền một phần.
- Khoản tiền chi nhánh phải nộp về công ty mẹ nếu quy trình này được chốt.
- Khoản tiền cửa hàng phải chuyển về theo báo cáo hằng ngày.
- Kế toán tick một hoặc nhiều chứng từ để đối soát.
- Sau khi xác nhận:
- Giao dịch được gắn với chứng từ.
- Công nợ phải thu giảm.
- Phiếu bán chuyển sang
Thu tiền một phầnhoặcĐã thu tiền. - Nếu khách chuyển dư, công nợ có thể thành số âm để cấn trừ sau.
Ví dụ:
- Khách A đang nợ:
- Phiếu bán
PB001:300.000.000đ - Phiếu bán
PB002:200.000.000đ
- Phiếu bán
- Khách A chuyển khoản:
500.000.000đ - Kế toán import sao kê.
- Hệ thống gợi ý giao dịch này thuộc khách A.
- Kế toán tick
PB001vàPB002. - Sau đối soát:
PB001:Đã thu tiềnPB002:Đã thu tiền- Công nợ khách A giảm
500.000.000đ - Số dư tài khoản ngân hàng tăng
500.000.000đ
Đối soát tiền ra
Áp dụng khi công ty thanh toán cho nhà cung cấp hoặc chi trả chi phí.
- Hệ thống nhận diện giao dịch tiền ra.
- Hệ thống gợi ý nhà cung cấp hoặc loại chi phí liên quan.
- Kế toán mở giao dịch đó và thấy danh sách khoản phải trả:
- Phiếu mua chưa thanh toán.
- Phiếu mua thanh toán một phần.
- Chi phí đã duyệt nhưng chưa chi.
- Kế toán tick một hoặc nhiều chứng từ để đối soát.
- Sau khi xác nhận:
- Giao dịch được gắn với chứng từ.
- Công nợ phải trả giảm.
- Phiếu mua chuyển sang
Thanh toán một phầnhoặcĐã thanh toán. - Nếu là chi phí, khoản chi phí được ghi nhận đã chi.
- Nếu công ty chuyển dư, công nợ nhà cung cấp có thể thành số âm để cấn trừ sau.
Ví dụ:
- Công ty đang nợ Petrolimex:
- Phiếu mua
PM001:800.000.000đ
- Phiếu mua
- Công ty chuyển khoản cho Petrolimex:
500.000.000đ - Kế toán import sao kê.
- Hệ thống gợi ý giao dịch này thuộc Petrolimex.
- Kế toán tick
PM001. - Sau đối soát:
PM001:Thanh toán một phần- Công nợ phải trả Petrolimex còn
300.000.000đ - Số dư tài khoản ngân hàng giảm
500.000.000đ
Các trường hợp đặc biệt
Các trường hợp dưới đây là quy tắc triển khai đề xuất để đảm bảo đối soát an toàn, EasyNote chưa mô tả chi tiết từng case.
- Một giao dịch thanh toán cho nhiều phiếu.
- Ví dụ khách chuyển
500.000.000đđể thanh toán 2-3 phiếu bán.
- Ví dụ khách chuyển
- Một phiếu được thanh toán bằng nhiều giao dịch.
- Ví dụ khách chuyển trước
200.000.000đ, hôm sau chuyển thêm300.000.000đ.
- Ví dụ khách chuyển trước
- Giao dịch chuyển dư.
- Hệ thống ghi nhận công nợ âm.
- Khoản âm dùng để cấn trừ phiếu sau hoặc xử lý hoàn tiền.
- Giao dịch không nhận diện được.
- Kế toán chọn thủ công khách hàng/nhà cung cấp/loại chi phí.
- Giao dịch import trùng.
- Hệ thống cần cảnh báo và không import trùng nếu trùng mã giao dịch/ngày/số tiền/tài khoản/nội dung.
- Giao dịch đối soát sai.
- Cho phép hủy đối soát.
- Khi hủy đối soát, công nợ và trạng thái chứng từ quay về trạng thái trước đó.
- Hệ thống lưu lịch sử thao tác hủy đối soát.
Kết quả sau đối soát
- Cập nhật số dư tài khoản ngân hàng.
- Cập nhật công nợ phải thu/phải trả.
- Cập nhật trạng thái phiếu mua/phiếu bán/chi phí.
- Lưu lịch sử đối soát:
- Ai import sao kê.
- Ai đối soát.
- Thời gian đối soát.
- Giao dịch ngân hàng nào.
- Gắn với chứng từ nào.
- Số tiền đối soát bao nhiêu.
Tóm tắt luồng đối soát:
- Kế toán import sao kê theo tài khoản ngân hàng của công ty.
- Mỗi dòng sao kê được lưu thành một
Payment Transaction. - Hệ thống gợi ý khách hàng bên ngoài, chi nhánh, cửa hàng, nhà cung cấp hoặc chi phí liên quan dựa trên số tài khoản/nội dung chuyển khoản/tên nhận diện.
- Kế toán kiểm tra và tick phiếu mua, phiếu bán hoặc khoản chi phí cần đối soát.
- Sau khi xác nhận, hệ thống cập nhật trạng thái thanh toán, công nợ và số dư tài khoản.
flowchart TD
A[Kế toán chọn tài khoản ngân hàng] --> B[Upload file sao kê]
B --> C[Hệ thống đọc từng dòng giao dịch]
C --> D[Tạo Payment Transaction]
D --> E{Tiền vào hay tiền ra?}
E -->|Tiền vào| F[Thử nhận diện khách hàng, chi nhánh hoặc cửa hàng]
E -->|Tiền ra| G[Thử nhận diện nhà cung cấp/chi phí]
F --> H{Nhận diện được?}
G --> I{Nhận diện được?}
H -->|Có| J[Gợi ý khách hàng, chi nhánh hoặc cửa hàng]
H -->|Không| K[Kế toán chọn thủ công]
I -->|Có| L[Gợi ý nhà cung cấp/chi phí]
I -->|Không| K
J --> M[Hiển thị phiếu bán/khoản phải thu]
L --> N[Hiển thị phiếu mua/khoản chi phí]
K --> K1{Chọn loại đối soát thủ công}
K1 -->|Khoản phải thu| M
K1 -->|Khoản phải trả/chi phí| N
M --> O[Kế toán tick chứng từ cần thu]
N --> P[Kế toán tick chứng từ cần chi]
O --> Q{Số tiền giao dịch so với chứng từ?}
P --> R{Số tiền giao dịch so với chứng từ?}
Q -->|Đủ| S[Cập nhật Đã thu tiền]
Q -->|Thiếu| T[Cập nhật Thu tiền một phần]
Q -->|Dư| U[Ghi nhận công nợ âm/cấn trừ sau]
R -->|Đủ| V[Cập nhật Đã thanh toán]
R -->|Thiếu| W[Cập nhật Thanh toán một phần]
R -->|Dư| X[Ghi nhận trả trước/công nợ âm với NCC]
S --> Y[Cập nhật công nợ và số dư ngân hàng]
T --> Y
U --> Y
V --> Y
W --> Y
X --> Y
Y --> Z[Lưu lịch sử đối soát]Công nợ âm/dương
Hệ thống cần cho phép công nợ có thể là số dương, bằng 0 hoặc số âm.
- Công nợ dương:
- Khách hàng bên ngoài còn nợ công ty.
- Chi nhánh còn khoản phải nộp về công ty mẹ nếu quy trình nộp tiền nội bộ được chốt.
- Cửa hàng còn thiếu tiền phải chuyển về theo báo cáo bán lẻ.
- Hoặc công ty còn nợ nhà cung cấp.
- Công nợ bằng 0:
- Hai bên đã thanh toán đủ.
- Công nợ âm:
- Khách hàng bên ngoài chuyển dư tiền cho công ty.
- Chi nhánh chuyển dư tiền so với khoản phải nộp nội bộ nếu quy trình này được chốt.
- Cửa hàng chuyển dư tiền so với báo cáo bán lẻ.
- Hoặc công ty chuyển dư tiền cho nhà cung cấp.
- Khoản âm này có thể được cấn trừ vào chứng từ phát sinh sau hoặc xử lý hoàn tiền.
Ví dụ:
- Khách hàng A đang nợ công ty
400.000.000đ. - Khách hàng A chuyển khoản
500.000.000đ. - Sau khi đối soát:
- Công nợ khách hàng A =
-100.000.000đ. - Nghĩa là khách hàng A đang chuyển dư
100.000.000đ. - Khoản dư này có thể cấn trừ cho phiếu bán tiếp theo hoặc hoàn tiền cho khách.
- Công nợ khách hàng A =
Quản lý chi phí và duyệt chi phí
Phân hệ tài chính cần quản lý các khoản chi phí phát sinh trong quá trình vận hành công ty, chi nhánh, cửa hàng và vận tải.
- Người dùng tạo khoản chi phí với các thông tin:
- Loại chi phí.
- Số tiền.
- Ngày phát sinh.
- Đối tượng liên quan nếu có: chi nhánh, cửa hàng, chuyến xe, xe, tài xế, garage, nhà cung cấp.
- Hóa đơn nếu có.
- Chứng từ/hình ảnh đính kèm nếu có.
- Ghi chú.
- Chi phí cần đi qua quy trình duyệt:
- Tạo chi phí.
- Nộp duyệt.
- CEO/Giám đốc duyệt.
- Sau khi được duyệt, chi phí mới được tính vào tổng chi phí và lợi nhuận thực.
- Hệ thống cần phân biệt:
- Chi phí có hóa đơn.
- Chi phí không có hóa đơn.
- Chi phí có thể đến từ:
- Chi phí công ty chung.
- Chi phí chi nhánh nếu có.
- Chi phí cửa hàng: mặt bằng, điện nước, bảo trì sửa chữa, lương.
- Chi phí vận tải: lương tài xế, VETC, nhiên liệu, rửa xe, ăn uống, vá xe.
- Chi phí bảo dưỡng/sửa chữa xe.
Lợi nhuận thực
Phân hệ tài chính cần tính được lợi nhuận thực, không chỉ dừng ở doanh thu hoặc lợi nhuận gộp.
- Doanh thu:
- Doanh thu xăng dầu.
- Doanh thu chi nhánh.
- Doanh thu cửa hàng.
- Doanh thu vận tải.
- Giá vốn:
- Giá vốn xăng dầu theo lô hàng.
- Giá vốn hàng bán của chi nhánh.
- Giá vốn hàng bán của cửa hàng.
- Chi phí trực tiếp của chuyến xe nếu có.
- Chi phí:
- Chi phí công ty.
- Chi phí chi nhánh.
- Chi phí cửa hàng.
- Chi phí vận tải.
- Chi phí bảo dưỡng/sửa chữa.
- Công thức cơ bản:
Lợi nhuận gộp = Doanh thu - Giá vốnLợi nhuận thực = Doanh thu - Giá vốn - Chi phí
- Hệ thống cần xem được lợi nhuận theo:
- Ngày.
- Tháng.
- Khoảng ngày.
- Công ty.
- Chi nhánh.
- Cửa hàng.
- Khách hàng.
- Chuyến xe nếu áp dụng cho vận tải.
Số dư tài khoản ngân hàng và bộ lọc báo cáo
Hệ thống cần theo dõi số tiền thực tế đang có trong từng tài khoản ngân hàng của công ty. Đây là tiền thật trong ngân hàng, khác với công nợ và khác với lợi nhuận.
- Công ty có thể có nhiều tài khoản ngân hàng.
- Mỗi tài khoản ngân hàng cần theo dõi:
- Tên ngân hàng.
- Số tài khoản.
- Chủ tài khoản.
- Số dư hiện tại.
- Danh sách giao dịch tiền vào/tiền ra.
- Mỗi lần import sao kê, hệ thống cập nhật:
- Giao dịch tiền vào.
- Giao dịch tiền ra.
- Số dư sau giao dịch nếu file sao kê có.
- Người dùng có quyền cao có thể xem:
- Tổng số dư tất cả tài khoản ngân hàng.
- Số dư từng tài khoản.
- Chi tiết giao dịch của từng tài khoản.
Ví dụ:
- Tài khoản VPBank còn
2.000.000.000đ. - Tài khoản ACB còn
500.000.000đ. - Tài khoản Vietcombank còn
1.000.000.000đ. - Tổng tiền thật trong ngân hàng là
3.500.000.000đ. - Tuy nhiên công ty vẫn có thể đang phải trả nhà cung cấp
2.000.000.000đvà khách hàng còn nợ công ty1.000.000.000đ.
Báo cáo tài chính cần có bộ lọc:
- Theo ngày.
- Theo tháng.
- Theo khoảng ngày.
- Theo công ty.
- Theo chi nhánh nếu dữ liệu liên quan đến chi nhánh.
- Theo cửa hàng nếu dữ liệu liên quan đến cửa hàng.
- Theo khách hàng/nhà cung cấp nếu xem công nợ.
- Theo tài khoản ngân hàng nếu xem dòng tiền thực tế.
Luồng dữ liệu giữa Quản lý xăng dầu và Quản lý tài chính
Tóm tắt luồng dữ liệu:
- Phiếu mua/nhập kho làm tăng tồn kho, giá trị tồn kho và công nợ phải trả nếu chưa thanh toán.
- Phiếu bán/xuất kho làm giảm tồn kho, ghi nhận giá vốn, doanh thu và công nợ phải thu nếu chưa thu tiền.
- Phiếu chuyển hàng nội bộ làm giảm tồn kho nguồn, tăng tồn tại nơi nhận và không ghi nhận doanh thu.
- Thu tiền hoặc thanh toán nhà cung cấp cập nhật công nợ và số dư tài khoản ngân hàng.
- Hủy phiếu/rollback tạo phát sinh điều chỉnh tương ứng, không xóa dữ liệu gốc.
flowchart TD
A[Quản lý xăng dầu] --> B[Tạo phiếu mua]
B --> C[Duyệt phiếu mua]
C --> D[Tạo phiếu nhập kho]
D --> E[Nhập xăng vào kho]
E --> F[Cập nhật số lượng tồn kho]
E --> G[Cập nhật giá trị tồn kho]
E --> H[Phát sinh công nợ phải trả nhà cung cấp]
H --> I[Quản lý tài chính]
G --> I
F --> A
I --> J[Thanh toán nhà cung cấp]
J --> K[Giảm công nợ phải trả]
J --> L[Giảm tiền công ty]
A --> M[Tạo phiếu bán]
M --> N[Duyệt phiếu bán]
N --> O[Tạo phiếu xuất kho]
O --> P[Xuất xăng khỏi kho]
P --> Q[Giảm số lượng tồn kho]
P --> R[Ghi nhận giá vốn]
P --> S[Ghi nhận doanh thu]
P --> T[Phát sinh công nợ phải thu khách hàng bên ngoài]
Q --> A
R --> I
S --> I
T --> I
I --> U[Thu tiền khách hàng, chi nhánh hoặc cửa hàng]
U --> V[Giảm công nợ phải thu]
U --> W[Tăng tiền công ty]
I --> X[Báo cáo dòng tiền]
X --> Y[Tiền kẹt ở tồn kho]
X --> Z[Tiền kẹt ở khách nợ/cửa hàng chưa nộp]
X --> AA[Khoản phải trả nhà cung cấp đến hạn]
A --> AB[Tạo phiếu chuyển hàng nội bộ]
AB --> AC[Duyệt phiếu chuyển hàng]
AC --> AD[Chuyển hàng từ kho nguồn đến chi nhánh hoặc điểm tồn cửa hàng]
AD --> AE[Giảm tồn kho nguồn]
AD --> AF[Tăng tồn tại nơi nhận]
AE --> A
AF --> ATrung tâm duyệt
EasyNote đã ghi nhận nhu cầu duyệt phiếu mua, phiếu bán, chi phí và có thao tác tick nhiều item/duyệt tất cả. Trung tâm duyệt dưới đây là chuẩn hóa đề xuất để gom các việc chờ duyệt vào một nơi.
- Các loại chứng từ cần đưa vào trung tâm duyệt:
- Phiếu mua hàng.
- Phiếu bán hàng.
- Phiếu chuyển hàng nội bộ.
- Phiếu kiểm định tồn kho cửa hàng.
- Chi phí công ty.
- Chi phí chi nhánh.
- Chi phí cửa hàng.
- Chi phí vận tải.
- Chi phí bảo dưỡng/sửa chữa.
- Người duyệt có thể:
- Xem danh sách chứng từ đang chờ duyệt.
- Lọc theo công ty, loại chứng từ, ngày tạo, người tạo.
- Xem chi tiết chứng từ trước khi duyệt.
- Duyệt từng chứng từ.
- Từ chối và nhập lý do từ chối.
- Tick nhiều chứng từ để duyệt hàng loạt.
- Khi duyệt hàng loạt:
- Hệ thống vẫn phải lưu lịch sử duyệt riêng cho từng chứng từ.
- Nếu một chứng từ không hợp lệ, hệ thống cần báo rõ chứng từ nào lỗi và lý do.
- Không được duyệt hàng loạt các chứng từ mà người dùng không có quyền xử lý.
- Hệ thống cần lưu lịch sử:
- Người gửi duyệt.
- Người duyệt/từ chối.
- Thời gian xử lý.
- Lý do từ chối nếu có.
- Trạng thái trước và sau khi xử lý.
Import dữ liệu ban đầu 2026
Khách hàng có nhu cầu import dữ liệu năm 2026 vào hệ thống để bắt đầu vận hành trên nền dữ liệu hiện có.
- Danh sách ứng viên cần chốt với khách hàng trước khi triển khai import:
- Danh sách công ty.
- Danh sách người dùng/nhân sự.
- Danh sách khách hàng.
- Danh sách nhà cung cấp.
- Danh sách chi nhánh.
- Danh sách kho.
- Danh sách cửa hàng.
- Danh sách sản phẩm xăng dầu.
- Danh sách xe.
- Danh sách tài xế.
- Danh sách garage.
- Tồn kho đầu kỳ.
- Hàng đã bán nhưng chưa xuất nếu có.
- Công nợ phải thu đầu kỳ.
- Công nợ phải trả đầu kỳ.
- Số dư tài khoản ngân hàng đầu kỳ.
- Phiếu mua/bán/chuyển hàng/chuyến xe/chi phí lịch sử nếu cần.
- Khi import, hệ thống cần:
- Có template dữ liệu để người dùng điền.
- Kiểm tra lỗi dữ liệu trước khi import chính thức.
- Báo rõ dòng nào lỗi, lỗi gì.
- Không import trùng dữ liệu đã có.
- Lưu lịch sử import: ai import, thời gian, file nào, kết quả bao nhiêu dòng thành công/thất bại.
- Dữ liệu import phải được gắn đúng công ty để đảm bảo dữ liệu của 2 công ty tách riêng.
- Các số liệu đầu kỳ như tồn kho, công nợ và số dư ngân hàng là cơ sở để hệ thống tính tiếp các phát sinh sau này.
Thông báo / nhắc việc
EasyNote đã ghi nhận trực tiếp một số nhu cầu thông báo/nhắc việc như nhắc bảo dưỡng theo KM và thông báo tới bộ phận kho sau khi phiếu bán được duyệt/xuất kho. Các nhắc việc khác bên dưới là đề xuất vận hành để người dùng biết việc cần xử lý, không chỉ xem báo cáo sau khi sự việc đã xảy ra.
- Nhắc việc duyệt:
- Phiếu mua chờ duyệt.
- Phiếu bán chờ duyệt.
- Phiếu chuyển hàng nội bộ chờ duyệt.
- Phiếu kiểm định tồn kho cửa hàng chờ duyệt.
- Chi phí chờ duyệt.
- Nhắc việc chi nhánh:
- Chi nhánh có tồn kho thấp.
- Chi nhánh chưa chuyển tiền về công ty mẹ nếu có quy trình nộp tiền nội bộ.
- Chi nhánh có công nợ khách hàng quá hạn nếu Chi nhánh bán công nợ.
- Nhắc việc cửa hàng:
- Cửa hàng chưa gửi báo cáo bán hàng trong ngày.
- Cửa hàng chuyển thiếu tiền so với báo cáo.
- Cửa hàng đến kỳ kiểm định tồn kho nếu sau này có cấu hình nhắc việc.
- Cửa hàng có chênh lệch tồn kho bất thường nếu phát hiện được.
- Nhắc việc tài chính:
- Công nợ phải thu quá hạn.
- Công nợ phải trả sắp đến hạn.
- Giao dịch sao kê chưa đối soát.
- Giao dịch import bị lỗi hoặc nghi ngờ trùng.
- Nhắc việc kho/xăng dầu:
- Tồn kho thấp.
- Hàng đã bán nhưng chưa xuất lâu ngày.
- Phiếu nhập/xuất/chuyển chưa hoàn tất.
- Nhắc việc vận tải:
- Xe sắp đến hạn bảo dưỡng.
- Xe quá hạn bảo dưỡng.
- Chuyến xe chưa cập nhật kết thúc.
- Chi phí chuyến chưa nộp duyệt hoặc chưa được duyệt.
- Mỗi thông báo cần có:
- Loại thông báo.
- Công ty liên quan.
- Đối tượng liên quan: phiếu, chi nhánh, cửa hàng, xe, chuyến, khách hàng, nhà cung cấp.
- Mức độ ưu tiên nếu cần.
- Trạng thái: chưa đọc, đã đọc, đã xử lý.
- Link/đường dẫn tới màn hình xử lý tương ứng.
AI CHATBOT
- Chatbot dùng để hỗ trợ chủ doanh nghiệp và người quản lý truy vấn nhanh dữ liệu trong hệ thống.
- Chatbot có thể trả lời các câu hỏi thống kê dựa trên dữ liệu đã có trong hệ thống.
- Chatbot chỉ trả lời dựa trên dữ liệu người dùng có quyền xem. Đây là nguyên tắc an toàn hệ thống được bổ sung khi diễn giải, không phải câu chữ EasyNote ghi trực tiếp.
- Chatbot không tự ý sửa dữ liệu nghiệp vụ như:
- Tạo phiếu.
- Duyệt phiếu.
- Hủy phiếu.
- Cập nhật công nợ.
- Cập nhật thanh toán.
- Tạo chi phí.
- Nếu câu hỏi thiếu thời gian hoặc phạm vi dữ liệu, chatbot cần hỏi lại hoặc dùng bộ lọc mặc định rõ ràng.
Ví dụ câu hỏi chatbot cần trả lời được:
- Xe biển số
xxtháng vừa rồi chạy bao nhiêu chuyến? - Xe biển số
xxtháng vừa rồi doanh thu bao nhiêu, chi phí bao nhiêu, lời/lỗ bao nhiêu? - Tài xế
xxtháng vừa rồi chạy bao nhiêu chuyến? - Chi nhánh
xxtháng vừa rồi bán bao nhiêu lít xăng? - Chi nhánh
xxhiện còn tồn kho bao nhiêu? - Chi nhánh
xxtháng vừa rồi doanh thu, chi phí, lợi nhuận thực là bao nhiêu? - Cửa hàng
xxtháng vừa rồi bán bao nhiêu lít xăng? - Cửa hàng
xxtháng vừa rồi lời hay lỗ? - Cửa hàng
xxhiện còn tồn kho bao nhiêu? - Khách hàng
xxhiện còn nợ bao nhiêu? - Nhà cung cấp
xxhiện công ty còn nợ bao nhiêu? - Công ty
xxtháng này doanh thu, chi phí, lợi nhuận thực là bao nhiêu? - Hiện tiền đang kẹt nhiều nhất ở đâu: tồn kho, khách nợ, chi nhánh/cửa hàng chưa chuyển tiền hay khoản phải trả?