Hỏi một xưởng may hai câu.
Câu một: "Tháng này lãi bao nhiêu?" — trả lời được, vì kế toán có báo cáo.
Câu hai: "Lô áo 500 cái giao cho khách A tuần trước, lời hay lỗ?" — im lặng.
Khoảng cách giữa hai câu trả lời đó chính là bài toán mà bài này nói tới. Và nó không phải bài toán kế toán, nó là bài toán vận hành: hệ thống không biết lô nào tiêu bao nhiêu, nên chỉ tính được giá vốn bình quân cả kỳ.
Giá vốn bình quân thì luôn ra một con số đẹp. Nó chỉ giấu mất chuyện lô này lãi 30% còn lô kia lỗ.
Câu trả lời ngắn
Để biết từng lô lời hay lỗ, hệ thống cần ba thứ:
- Biết hàng đang ở đâu — mỗi lô đi qua các công đoạn, mỗi công đoạn có người xác nhận.
- Biết mỗi lô tiêu bao nhiêu — nguyên phụ liệu theo định mức, cộng nhân công theo số phút thực tế từng trạm, cộng chi phí vận chuyển phân bổ vào.
- Tính giá vốn theo từng lệnh sản xuất, không bình quân cả kỳ.
Điểm thứ ba là điểm khác biệt. Trên dữ liệu kiểm thử, hai lệnh sản xuất cùng một mã áo ra hai giá vốn khác nhau — 50.000đ và 80.000đ một chiếc. Bình quân lại thành 65.000đ, và con số 65.000đ đó không mô tả đúng lệnh nào cả.
ℹ️ Info: Bài này mô tả một bộ tính năng đã dựng trên Odoo 19 Community cho doanh nghiệp vừa sản xuất vừa bán, ví dụ xưởng thời trang. Trạng thái trung thực nằm ở cuối bài — phần lớn đang chạy trên dữ liệu mẫu và kiểm thử tự động, chưa đối chiếu số thật của một doanh nghiệp cụ thể.
Bài toán gốc: hàng đang ở công đoạn nào
Trước khi nói tới giá thành, phải giải bài toán trước nó: quản lý hỏi "lô hàng đó tới đâu rồi" và phải có câu trả lời không cần đi hỏi miệng.
Một sản phẩm may đi qua sáu trạm:
- ① Lên mẫu — Chuẩn bị rập, mẫu
- ② In ấn — Có thể thuê ngoài
- ③ Đã nhận hàng in — Nhận bán thành phẩm về
- ④ May — Trạm gánh nhiều giờ nhất
- ⑤ Kiểm (KCS) — Kiểm chất lượng
- ⑥ Kho hàng — Nhập kho thành phẩm
Mỗi trạm là một công đoạn trên lệnh sản xuất. Người phụ trách bấm Bắt đầu → Hoàn thành để xác nhận hàng đã qua trạm.
Từ đó có một màn hình tổng quan: nhìn phát thấy mỗi trạm đang giữ bao nhiêu sản phẩm, trạm nào đang ùn. Ví dụ trên dữ liệu demo: 80 áo đang ở trạm In ấn, 50 áo đang ở trạm May — đọc số trực tiếp, không phải hỏi ai.
Hai giá trị đi kèm mà nhiều người không nghĩ tới ngay:
Đo được năng suất từng trạm. Mỗi công đoạn ghi cả thời lượng dự kiến và thời lượng thực tế. Chênh lệch giữa hai con số cho biết trạm nào chậm, và chậm vì định mức đặt sai hay vì thực tế có vấn đề.
Có dữ liệu để cân tải. Báo cáo khối lượng và thời lượng theo trạm chỉ ra trạm nào gánh nhiều giờ nhất — thường là trạm May — để lập kế hoạch và biết nên tăng người ở đâu.
Định mức: cơ sở để máy tự tính
Hệ thống chỉ tính được giá thành khi có hai bảng khai báo:
Định mức nguyên phụ liệu. Một áo cần bao nhiêu vải, mực, chỉ.
Tuyến công đoạn. Đi qua sáu trạm theo thứ tự nào, mỗi trạm bao nhiêu phút, đơn giá nhân công mỗi trạm. Ví dụ trên dữ liệu demo: Lên mẫu 5 phút, In ấn 8 phút, Nhận hàng in 2 phút, May 20 phút, Kiểm 6 phút, Kho hàng 2 phút.
Từ hai bảng này, giá thành tự cộng:
1 áo = 113.500đ = 68.000đ nguyên liệu + 45.500đ nhân công qua sáu trạm.
Đây là dữ liệu demo, nhưng cấu trúc là thật: nguyên liệu theo định mức, nhân công theo số phút nhân đơn giá trạm.
Đặc thù may mặc: ba thứ hay bị bỏ sót
Ba chi tiết dưới đây là thứ phân biệt một hệ thống dùng được với một hệ thống chỉ chạy demo.
Quy đổi đơn vị vải. Vải mua theo Kg, dùng theo Mét, nhập theo Cuộn, có nhà cung cấp báo giá theo Yard. Không có bộ quy đổi thì mọi con số tồn kho đều sai. Kèm theo là thông số GSM và khổ vải — hai tham số quyết định một Kg ra được bao nhiêu Mét.
Biến thể size và màu, kèm theo dõi lô. Một mã áo có hàng chục biến thể. Theo dõi lô trên cả vải lẫn thành phẩm là điều kiện để truy ngược khi có lỗi chất lượng — lô áo này cắt từ cuộn vải nào.
Phần trăm hao hụt cắt may. Đây là thứ hay bị bỏ quên nhất và cũng làm sai giá thành nhiều nhất. Định mức trên giấy là 10 mét một áo, nhưng cắt may luôn có hao hụt. Hệ thống phải cộng hao hụt vào tiêu hao khi nổ lệnh sản xuất: định mức 10 mét cộng hao hụt 10% thì xuất kho 11 mét một áo.
Nếu không tính hao hụt, giá thành trên hệ thống luôn thấp hơn thực tế, và chênh lệch đó âm thầm dồn vào chỗ khác trong sổ.
Gia công thuê ngoài
Xưởng nhỏ hiếm khi làm hết mọi khâu. Khâu in ấn, hoặc cả khâu may, thường thuê đối tác ngoài. Luồng này có ba đoạn:
Gửi nguyên liệu cho xưởng. Kho chính trừ đúng theo định mức khi gửi vải đi — đây là điểm hay sai nếu làm thủ công, vì vải đã ra khỏi kho nhưng chưa thành sản phẩm, dễ bị coi là còn tồn.
Đặt gia công. Hệ thống tạo đơn đặt gia công cho xưởng, bản chất là một đơn mua hàng. Ví dụ demo: đặt xưởng in gia công 200 mét vải, tiền công 3.000.000đ cộng thuế.
Nhận hàng về. Hệ thống tự sinh lệnh gia công ghi nhận bán thành phẩm nhập kho và nguyên liệu đã dùng.
Điểm quan trọng về giá thành: giá vốn bán thành phẩm bằng nguyên liệu cộng tiền công gia công. Trên dữ liệu demo, vải đã in có giá vốn 64.650đ một mét — gồm 49.650đ nguyên liệu và 15.000đ tiền công in. Nếu chỉ ghi nhận tiền công mà quên cộng giá trị nguyên liệu đã gửi đi, toàn bộ chuỗi giá thành phía sau sẽ sai.
Hai thứ làm giá thành sát thực tế hơn
Giá vốn theo từng lệnh, không bình quân cả kỳ
Đây là điểm khác biệt lớn nhất so với cách làm giá thành giản đơn.
Cùng một mã áo, hai lệnh sản xuất khác nhau có thể ra giá vốn rất khác: giá vải đợt này khác đợt trước, lô này hao hụt nhiều hơn, trạm May tháng này chạy chậm hơn nên chi phí nhân công cao hơn.
Trên kiểm thử, hai lệnh ra 50.000đ và 80.000đ một áo. Nếu hệ thống chỉ tính bình quân, bạn thấy 65.000đ và không bao giờ biết lệnh thứ hai đang có vấn đề.
Biết được điều này thì trả lời được câu hỏi kinh doanh thật: đơn hàng nào nên nhận, giá bán nào là dưới giá vốn, và khách nào đang được bán rẻ mà không ai biết.
Chi phí vận chuyển vào giá vốn
Phí ship, phụ phí nhập hàng cần được phân bổ vào giá nhập thành phẩm chứ không để thành chi phí riêng. Trên kiểm thử: phí 500.000đ đẩy giá vốn một lô 5 triệu lên 5,5 triệu — đúng như mong đợi.
Việc chốt kỳ định giá làm bằng một nút bấm trên màn hình thay vì chạy script tay.
Nối vào sổ kế toán
Phần này quyết định số sản xuất có lên báo cáo tài chính đúng hay không.
- Nguyên vật liệu — TK 152 — Vải, mực, chỉ trong kho
- Sản xuất qua 6 trạm + nhân công — Tiêu hao theo định mức cộng hao hụt
- Thành phẩm nhập kho — TK 155 — Giá trị = nguyên liệu + nhân công + landed cost
- Bán ra → Giá vốn hàng bán — TK 632 — Theo giá vốn của đúng lệnh sản xuất đó
Cuối kỳ chốt định giá kho: giá trị thành phẩm vào tài khoản 155, nguyên vật liệu vào tài khoản 152, và Bảng cân đối kế toán vẫn cân — đây là phép kiểm bắt buộc sau mỗi lần chốt.
Cách làm này là kiểm kê định kỳ, phù hợp doanh nghiệp nhỏ áp dụng Thông tư 133. Có một hệ quả kỹ thuật đáng biết: với định giá kho theo kiểu này, phiếu nhập và xuất kho không sinh bút toán ngay, mà giá trị được chốt vào cuối kỳ. Điều này làm việc phát lại lịch sử kho an toàn, nhưng cũng có nghĩa là trong kỳ bạn không nhìn thấy giá vốn cập nhật theo thời gian thực.
Chi tiết bộ báo cáo tài chính và cách số liệu lên B01: Odoo không phải phần mềm kế toán Việt Nam.
Khác gì "giá thành giản đơn" của phần mềm kế toán thuần
MISA SME có giá thành theo phương pháp giản đơn. Khác biệt nằm ở nguồn dữ liệu, không nằm ở công thức:
| Phần mềm kế toán thuần | Odoo có phân hệ sản xuất | |
|---|---|---|
| Nguồn số liệu tiêu hao | Kế toán nhập tay từ báo cáo của xưởng | Tự sinh khi nổ lệnh sản xuất theo định mức |
| Nhân công | Phân bổ theo tổng quỹ lương | Theo số phút thực tế từng trạm nhân đơn giá |
| Mức chi tiết | Theo kỳ hoặc theo sản phẩm | Theo từng lệnh sản xuất |
| Hao hụt cắt may | Tính tay nếu nhớ | Cộng tự động khi nổ lệnh |
| Biết hàng đang ở đâu | Không | Có, theo từng trạm |
Đánh đổi cũng rõ: cách này chỉ đúng khi xưởng thật sự bấm xác nhận từng công đoạn. Nếu công nhân không bấm, hệ thống không có dữ liệu thực tế và mọi con số quay về đúng bằng định mức trên giấy — tức là không hơn gì cách cũ.
Đây là lý do bài viết mở đầu bằng bài toán "hàng đang ở đâu" chứ không mở đầu bằng giá thành. Giá thành chính xác là hệ quả của việc vận hành được ghi nhận, không phải của một công thức tính hay.
Đối chiếu đầy đủ với MISA: 24 danh mục và nghiệp vụ.
Ngoài giá thành: nhìn số theo góc điều hành
Báo cáo tài chính trả lời câu "đúng luật, nộp được". Nó không trả lời nhanh câu "dòng nào lãi, dòng nào lỗ, tháng tới có thiếu tiền không".
Trên cùng nguồn dữ liệu đã ghi sổ, cắt thêm bốn góc nhìn cho ban điều hành:
| Báo cáo | Trả lời câu hỏi |
|---|---|
| P&L quản trị theo nhiều chiều | Sản phẩm nào, kênh nào, khách nào đang có biên lợi nhuận mỏng |
| Ngân sách vs Thực tế | Bộ phận nào tiêu quá, doanh thu nào hụt kế hoạch |
| Dự báo dòng tiền 13 tuần | Tuần nào sắp thiếu tiền, dựa trên công nợ đến hạn, lương, thuế, lịch trả vay |
| Tuổi nợ phải thu | Ai nợ quá 90 ngày, ai cần đòi gấp |
Nguyên tắc thiết kế quan trọng: báo cáo quản trị tách bạch với báo cáo pháp lý. Số pháp lý nằm ở bộ báo cáo tài chính; module quản trị chỉ phục vụ ra quyết định nhanh. Trộn hai thứ vào nhau là cách chắc chắn để một ngày nào đó nộp nhầm số.
Nếu ban lãnh đạo không muốn đăng nhập vào ERP để xem những số này, chúng đẩy ngược về dashboard trên công cụ đang dùng hằng ngày được — xem kiến trúc hai lớp.
Trạng thái thật
Giữ nguyên mức độ của tài liệu kỹ thuật nội bộ, không làm đẹp:
| Hạng mục | Trạng thái |
|---|---|
| Trừ kho nguyên liệu khi gửi cho xưởng gia công | ✅ Đã chạy, trừ đúng định mức |
| Luồng 6 trạm, dashboard đếm hàng theo công đoạn | 🟡 Chạy trên dữ liệu mẫu |
| Định mức, tuyến công đoạn, tính giá thành | 🟡 Dữ liệu mẫu — 1 áo = 113.500đ |
| Gia công thuê ngoài, đặt xưởng đến nhận về kèm giá vốn | 🟡 Dữ liệu mẫu |
| Giá thành vào sổ 155/152 theo kiểm kê định kỳ | 🟡 Đã chứng minh B01 cân |
| Giá vốn theo từng lệnh, landed cost | 🟡 Kiểm thử tự động PASS, chờ số khách thật |
| Đặc thù may mặc: quy đổi vải, size/màu/lô, hao hụt % | 🟡 Kiểm thử PASS, chờ chạy khách thật |
| Báo cáo quản trị: P&L, ngân sách, dòng tiền, tuổi nợ | 🟡 Dữ liệu mẫu |
| Cảnh báo qua Lark hoặc email, KPI bộ phận, scenario planning | ❌ Phase sau |
| Đối chiếu số với sổ sách thật của khách hàng | ❌ Quan trọng nhất trước khi dùng thật |
Ký hiệu: ✅ đã chạy thật và kiểm được bằng số · 🟡 chạy đúng trên dữ liệu mẫu, chưa đối chiếu số thật · ❌ chưa làm.
Tổng kiểm thử tự động cho đợt nâng cấp phân hệ sản xuất và bán sàn: 43 bài PASS, 0 lỗi.
Nói thẳng: đây là bản POC chạy trên dữ liệu mẫu để minh họa năng lực. Kiểm thử tự động chứng minh logic đúng, không chứng minh số khớp với sổ sách thật của một xưởng cụ thể — và đó là hai chuyện khác nhau.
Bắt đầu từ đâu
Đừng bắt đầu bằng giá thành. Bắt đầu bằng ba câu hỏi vận hành:
Một, xưởng có sẵn sàng bấm xác nhận từng công đoạn không? Nếu câu trả lời là không, dừng lại — không có dữ liệu thực tế thì mọi con số giá thành chỉ là định mức trên giấy đọc ngược lại.
Hai, định mức nguyên phụ liệu đã có chưa và có sát không? Bao gồm cả phần trăm hao hụt. Định mức sai thì giá thành sai theo, và sai một cách rất khó phát hiện vì nó nhất quán.
Ba, đơn giá nhân công từng trạm là bao nhiêu? Không cần chính xác tuyệt đối ngay từ đầu, nhưng cần có con số để bắt đầu, rồi hiệu chỉnh dần theo thực tế.
Trả lời được ba câu này thì phần còn lại là cấu hình. Trả lời không được thì việc cần làm trước là chuẩn hóa vận hành xưởng, chưa phải mua phần mềm — cùng logic với ba tầng nguyên nhân làm dự án ERP thất bại.
Đặt lịch khảo sát luồng sản xuất — mang theo định mức hiện tại và sơ đồ công đoạn, một buổi là ra bản đồ trạm và danh sách dữ liệu còn thiếu.
Câu hỏi thường gặp
Odoo có tính được giá thành sản xuất không?
Có. Giá thành tự cộng từ nguyên phụ liệu theo định mức, nhân công theo số phút thực tế của từng công đoạn nhân đơn giá trạm, cộng chi phí vận chuyển phân bổ vào giá nhập. Mức chi tiết là theo từng lệnh sản xuất chứ không bình quân cả kỳ.
Giá vốn theo từng lệnh sản xuất khác giá vốn bình quân thế nào?
Giá vốn bình quân gộp mọi lệnh trong kỳ thành một con số, nên che mất chênh lệch giữa các lô. Trên dữ liệu kiểm thử, hai lệnh cùng một mã sản phẩm ra 50.000đ và 80.000đ một chiếc — bình quân lại thành 65.000đ, con số không mô tả đúng lệnh nào. Tính theo từng lệnh cho biết lô nào lời lô nào lỗ, từ đó quyết định được giá bán và đơn hàng nào nên nhận.
Hao hụt cắt may xử lý thế nào trong hệ thống?
Khai phần trăm hao hụt ngay trên định mức, hệ thống cộng vào tiêu hao khi nổ lệnh sản xuất. Ví dụ định mức 10 mét một áo với hao hụt 10% thì xuất kho 11 mét. Không tính hao hụt thì giá thành trên hệ thống luôn thấp hơn thực tế và chênh lệch âm thầm dồn sang chỗ khác trong sổ.
Gia công thuê ngoài tính giá vốn ra sao?
Giá vốn bán thành phẩm bằng giá trị nguyên liệu đã gửi cho xưởng cộng tiền công gia công. Trên dữ liệu demo, vải đã in có giá vốn 64.650đ một mét gồm 49.650đ nguyên liệu và 15.000đ tiền công. Lỗi hay gặp là chỉ ghi nhận tiền công mà quên cộng giá trị nguyên liệu đã gửi đi, làm sai toàn bộ chuỗi giá thành phía sau.
Giá thành sản xuất vào sổ kế toán như thế nào?
Cuối kỳ chốt định giá kho, giá trị thành phẩm vào tài khoản 155 và nguyên vật liệu vào tài khoản 152, sau đó bán ra thì chuyển sang giá vốn hàng bán tài khoản 632. Đây là phương pháp kiểm kê định kỳ, phù hợp doanh nghiệp nhỏ áp dụng Thông tư 133. Phép kiểm bắt buộc sau mỗi lần chốt là Bảng cân đối kế toán vẫn cân.
Cần điều kiện gì để giá thành tính ra chính xác?
Ba điều kiện vận hành: xưởng thật sự bấm xác nhận từng công đoạn để hệ thống có dữ liệu thực tế, định mức nguyên phụ liệu sát thực tế bao gồm cả phần trăm hao hụt, và có đơn giá nhân công cho từng trạm. Thiếu điều kiện đầu tiên thì mọi con số quay về đúng bằng định mức trên giấy, không hơn cách làm cũ.
Đọc tiếp trong series
- Odoo kế toán vs MISA SME: đối chiếu 24 danh mục
- Odoo không phải phần mềm kế toán Việt Nam — và cách vá đúng
- Chuyển từ MISA sang Odoo: lộ trình 6 bước
- Odoo dở hay bên triển khai gà? Vì sao dự án ERP thất bại
- Đang chạy LarkSuite, thêm Odoo có phải bỏ Lark không?
Liên quan về bán hàng và vận hành:
Nguồn tham khảo
- Odoo Documentation — Manufacturing: https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/manufacturing.html
- Odoo Documentation — Subcontracting: https://www.odoo.com/documentation/19.0/applications/inventory_and_mrp/manufacturing/subcontracting.html
- Thông tư 133/2016/TT-BTC — Chế độ kế toán doanh nghiệp nhỏ và vừa
- Thông tư 200/2014/TT-BTC — Chế độ kế toán doanh nghiệp
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools



