AS-IS → TO-BE: đưa Bestmix về luồng gốc Odoo

Bức tranh tổng quan để thống nhất với Kinh doanh, Tài chính, Cung ứng, Kho, Sản xuất và Thi công trước khi triển khai hệ thống mới.

27/08/2026 · Phạm vi: CRM, Sale, Project, MRP, Field Service · Định hướng: native-first, custom tối thiểu

1. Kết luận để thống nhất

Không thay đổi nghiệp vụ kiểm soát; thay đổi chứng từ trung tâm. Thay vì BO là đường bắt buộc rồi mới sinh Đơn bán, sale.order (Quotation) trở thành một chứng từ xuyên suốt: báo giá → chờ duyệt → đơn đã xác nhận → kích hoạt giao hàng, mua hàng hoặc sản xuất.

CRM / Khách hàngQuotation: sale.orderApprovalsConfirm SOStock / MRP / Project / FSM

1.1. Hình minh họa thay đổi

So sánh luồng BO hiện hành và luồng Sale Order native-first mới

Đọc từ trái sang phải. Luồng mới giữ nguyên các cửa kiểm soát nhưng dồn dữ liệu và lịch sử vào Sale Order; approval là lớp kiểm soát gắn với đơn, còn Stock, MRP, Project và Field Service được khởi động bằng hành vi native sau Confirm.

2. Bảng thay đổi theo module

Module / đối tượngAS-IS — user đang làmTO-BE — user sẽ làmNative tận dụngCustom còn lại
CRM
crm.lead
NVKD dự án tạo lead PJ, giữ dạng lead; dữ liệu chuyên ngành nằm trên bm_crm. CRM đại lý ít là đường đặt hàng chính. Lead sơ bộ vẫn giữ. Khi đủ điều kiện thương mại, NVKD/QL chuyển thành Opportunity, dùng pipeline, hoạt động và xác suất gốc; tạo Quotation ngay từ Opportunity. crm, sale_crm, activity plan, pipeline/stage. Giữ dữ liệu CĐT, TVTK, nhà thầu, loại công trình, tiến độ, phân quyền chi nhánh/team của bm_crm.
Đổi không dùng lead PJ như chứng từ bán hàng cuối.
Sale
sale.order
NVKD lập báo giá custom/BO; BO đi trạng thái leader → tài chính → hợp đồng; sales admin tạo sale.order từ BO hoặc tạo trực tiếp. NVKD/sales admin lập Quotation trên sale.order. Cùng chứng từ chứa sản phẩm, giá, chiết khấu, điều khoản, ngày giao và lịch sử trao đổi. Khi duyệt xong, người có quyền Confirm chính SO đó. sale_management, sale_crm, sale_stock, pricelist, quotation template, optional products. Custom nhỏ loại đơn dự án/đại lý, branch, trường giao hàng/điều khoản đặc thù, cảnh báo giá nếu native chưa đủ.
Dừng vai trò trung tâm BO như bản sao bắt buộc của báo giá/SO.
Phê duyệt
approvals + SO
Duyệt trạng thái của BO. Các nhánh dự án/đại lý và TT ngay/công nợ được hard-code trong workflow BO. Trên Quotation, user bấm Gửi phê duyệt. Approvals tạo request liên kết SO. Xong toàn bộ approver thì SO mới được Confirm. approvals, account; cảnh báo credit limit nếu cấu hình. Custom bắt buộc rule chọn approver: dự án → GĐKD → (công nợ) Kế toán → Cung ứng; đại lý → (công nợ) Kế toán → Cung ứng. Chặn action_confirm() khi request chưa approved; thông báo Teams/ZNS theo một nguồn duy nhất.
Project
project.project, project.task
Project được tạo tay từ lead qua wizard; có thể tồn tại trước hoặc không liên kết trực tiếp với SO. Chỉ tạo Project/Task khi đơn có dịch vụ/thi công được xác nhận; project, task và sale line liên kết tự động. Một Opportunity có thể có nhiều Quotation/SO theo tiến độ. project, sale_project, sale_timesheet, project_account. Cần quyết định có còn trường hợp phải mở Project trước khi có SO không. Nếu có, giữ wizard như ngoại lệ có kiểm soát; không dùng làm đường mặc định.
Kho & MRP
stock.picking, mrp.production
Sau duyệt, bộ phận kiểm tra đáp ứng; thiếu hàng được tổng hợp/yêu cầu sản xuất riêng. MRP/Quality Bestmix đã custom sâu. Confirm SO là điểm tạo nhu cầu: đủ hàng → reservation + Delivery; thiếu hàng với route Manufacture → MO; route Buy → RFQ. Kho/Cung ứng thao tác trên Delivery, Replenishment, MO/RFQ. sale_stock, stock, sale_mrp, mrp, mrp_workorder, quality_mrp, project_mrp. Giữ Bestmix MRP, QC, đa chi nhánh, quy tắc nhà máy và phân quyền BOM khi là yêu cầu thật.
Rà soát bm_production_request: chỉ giữ khi đây là đánh giá khả thi trước cam kết; không dùng để thay MO/procurement sau Confirm.
Field Service
project.task
Chưa là luồng chuẩn thống nhất cho thi công; Project và giao vật tư có thể rời nhau. Dự án có thi công dùng một FSM Project. QL thi công phân công task hiện trường; kỹ thuật ghi thời gian, worksheet, vật tư; kho xử lý picking vật tư; kế toán dùng dữ liệu sale/timesheet/analytic. industry_fsm, industry_fsm_sale, industry_fsm_stock, timesheet. Custom nhỏ mẫu worksheet, bước nghiệm thu, phân quyền theo chi nhánh/đội thi công, trường chuyên ngành. Không dùng FSM cho đơn chỉ giao hàng.

3. Thay đổi nhìn từ từng vai trò

Vai tròTrướcSauLợi ích vận hành
NVKD dự ánCRM PJ → BO / báo giá custom → chờ các bước BO.CRM → Opportunity → Quotation; xem trạng thái phê duyệt và delivery/MO/task trên cùng chuỗi.Không nhập lặp dòng hàng, giá và điều khoản trên nhiều chứng từ.
NVKD đại lýKhách hàng → BO retail hoặc nhờ admin tạo SO native.Khách hàng → Quotation/SO; vẫn có thể để admin tạo hộ nhưng ownership là NVKD.Một quy trình bán hàng; chỉ rule duyệt khác dự án.
GĐ Kinh doanh / Kế toán / Cung ứngVào BO theo trạng thái chờ xử lý.Nhận Approval Request có link về Quotation/SO, thấy toàn bộ giá trị và điều kiện trước khi duyệt.Audit trail duy nhất, không phải đối chiếu BO với SO sau đó.
Kho / Kế hoạch / Nhà máyNhận yêu cầu hoặc kiểm tra đáp ứng sau khi đơn được xử lý qua nhiều lớp.Nhận Delivery, Replenishment, MO/RFQ do SO confirmed tạo theo route.Nhu cầu và tồn dự báo cùng nằm trong Stock/MRP.
QL thi công / kỹ thuậtTheo dõi dự án và vật tư qua các màn hình rời.Thao tác trên FSM task: lịch, nhân công, vật tư, worksheet, nghiệm thu.Có liên kết chi phí/doanh thu theo task/project/SO.

4. Phạm vi custom sau khi đưa về gốc

NhómGiữ / làm mớiKhông làm lại
Dữ liệu ngành hàngThông tin công trình, các bên liên quan, technical/QC data, chi nhánh, mẫu chứng từ.Tạo CRM/Project/MO model mới khi Odoo đã có chứng từ gốc.
ApprovalBridge nhỏ giữa sale.orderapproval.request, approval matrix theo loại đơn/công nợ/chi nhánh.State machine BO hoặc mô hình đơn hàng song song.
MRP/StockChất lượng, đa chi nhánh, thông tin/xử lý nhà máy đặc thù Bestmix.Tự tạo Delivery/MO thay cho procurement rule, reservation và route gốc.
Field ServiceWorksheet, nghiệm thu, quyền và form đặc thù thi công.Task/model thi công riêng không liên kết sale/project/stock.

5. Tính năng dự kiến loại bỏ khỏi hệ thống

Danh sách này phân biệt rõ chức năng được thay thế trực tiếp bởi luồng mới với chức năng cần quyết định nghiệp vụ riêng. Việc retire chỉ thực hiện sau khi UAT, đối soát dữ liệu và xác nhận không còn người dùng phụ thuộc.

Menu / tính năng hiện tạiPhạm viLý do loại bỏ hoặc quyết địnhThay thế trong luồng mớiTrạng thái
Đặt hàng
Danh sách và form BO
bm_sale_blanket_order
sale.blanket.order
BO không còn là chứng từ bắt buộc để đi tới đơn bán; tránh nhập và theo dõi hai chứng từ cho cùng một giao dịch. Quotation / sale.order native. Loại bỏ khỏi luồng mới
Báo giá sản phẩm bm_sale_quotation
menu Create Material Quotation
Model báo giá riêng bị thay thế trực tiếp bởi quotation native; giá, hàng, thuế và điều khoản sẽ nằm trên SO. sale.order ở trạng thái draft/sent; pricelist, optional products và quotation template. Loại bỏ khỏi luồng mới
Báo giá dự án bm_sale_quotation
menu Create Project Quotation
Báo giá dự án không cần model riêng; Opportunity gắn Quotation/SO bảo toàn chuỗi CRM → bán hàng. Opportunity → New Quotation qua sale_crm. Loại bỏ khỏi luồng mới
Cấu hình BO/báo giá custom
cột báo giá, validity/auto-cancel BO, lý do hủy và wizard tạo SO từ BO
bm_sale_blanket_order
bm_sale_quotation
Đây là cấu hình/phụ trợ dành cho hai chứng từ sẽ không còn dùng trong luồng bán chuẩn. Cấu hình pricelist, payment term, quotation template và approval matrix trên SO. Loại bỏ cùng BO/báo giá custom
Thầu thợ — danh sách, đăng ký quà tặng, tích điểm, khuyến mãi, quà tặng và báo cáo Khu vực/ứng dụng Thầu thợ Không bị thay thế trực tiếp bởi CRM/Sale/Approvals. Audit ngày 21/08/2026 chỉ xác nhận CRM Applicator (AC) có 0 bản ghi mới trong năm 2026 — tức không có phát sinh ít nhất từ 01/01 đến 21/08/2026 (gần 8 tháng). Chưa có dữ liệu chứng minh ngày dùng cuối của menu tích điểm/quà tặng, nên chỉ loại bỏ nếu nghiệp vụ xác nhận dừng toàn bộ chương trình Thầu thợ. Không có thay thế tự động trong luồng bán mới; cần đánh giá riêng về CRM, Loyalty/Promotion hoặc portal. Cần quyết định nghiệp vụ

Nguyên tắc retire: ẩn menu trước, chặn tạo mới, giữ quyền đọc dữ liệu lịch sử trong thời hạn đối soát; chỉ gỡ module/xóa dữ liệu sau khi đã hoàn tất migration và xác nhận lưu trữ.

6. Fields dự kiến loại bỏ hoặc quy về field gốc

Đây là danh sách hợp nhất field để giảm trùng lặp dữ liệu. “Ít dùng” chỉ được kết luận sau khi đo dữ liệu production; các dòng dưới là đề xuất dựa trên field trùng nghĩa, hoặc vì model sở hữu sẽ được retire.

Field / nhóm field hiện tạiModel hiện tạiĐề xuấtField/module gốc thay thếĐiều kiện trước khi retire
state, stage_id, approval_date, approval_by, rejection_reason, rejection_date, approvals_token bm.sale.quotation Loại bỏ cùng model báo giá custom. sale.order.state, chatter và approval.request. Migration lịch sử báo giá/duyệt cần lưu trữ hoặc liên kết vào SO/chatter nếu còn giá trị audit.
delivery_terms, payment_terms, validaty_terms, contact_info, validity_date, pricelist_id, fiscal_position_id, totals/taxes custom bm.sale.quotation Quy về field và tính toán native, không sao chép sang model khác. sale.order.note, payment_term_id, validity_date, partner_id, pricelist, fiscal position, order lines và tax totals native. Đối chiếu mẫu in báo giá; chỉ custom trường nào không thể hiện được bằng template/field native.
blanket_order_id, blanket_order_line, state_processing, confirmed, draft_date, quota/remaining/delivered trên BO sale.order, sale.blanket.order và line Loại bỏ liên kết và state chỉ phục vụ BO; không mang sang SO mới. sale.order.state, delivery/invoice status, stock.picking, procurement/MO. Chỉ giữ BO nếu có trường hợp hợp đồng khung thực sự; nếu có, tách phạm vi đó khỏi đơn bán thông thường.
is_opportunity crm.lead Loại bỏ field trùng nghĩa. Native crm.lead.type = lead / opportunity. Kiểm tra không còn view, domain, report hay automation tham chiếu field cũ.
project_stage_id, current_status_id, probability_note crm.lead Đề xuất hợp nhất vào pipeline chính thức; không auto-delete nếu stage/status có ý nghĩa quản trị riêng. Native stage_id, probability, Lost Reason, activity plan và chatter. Đo số record có giá trị, báo cáo đang dùng và mapping stage trước khi migrate.
customer_code, reg_date, crm_team_id crm.lead Quy về data master/native khi cùng nghĩa. res.partner.ref, create_date, native crm.team/team_id. Xác định field có phải đang dùng làm khóa tích hợp/sequence hay chỉ là bản sao hiển thị.
product_ids, volume/weight/met/thỏi dự kiến, expected_delivery_time crm.lead Đưa nhu cầu thương mại sang quotation lines; chỉ giữ trên CRM nếu phục vụ forecast trước báo giá. Native quotation lines, sale.order.commitment_date; Project task deadline cho phần thi công. Xác minh công thức quy đổi và nhu cầu forecast xác suất; không mất dữ liệu kỹ thuật chưa có nơi chứa tương đương.

Phương pháp quyết định field ít dùng: với mỗi field, thống kê số record khác rỗng, lần cập nhật gần nhất, view/report/export/automation tham chiếu và nhóm người dùng còn truy cập. Chỉ retire khi không còn dependency hoặc đã có mapping/migration được UAT.