- APPS
- OmniApproval™: One platform. Every approval. 17.0
| Lines of Code | 15532 |
| Technical name | viin_approval |
| License | OPL-1 |
| Website | https://viindoo.com/apps/app/17.0/viin_approval |
| Read description for | |
| Required Apps | Discuss (mail) Employees (hr) |
| Included Dependencies | Approvals Viindoo Base Advanced HR Management Safe Field & Model Selector |
| Extensions | Recruitment Requests/Approvals OmniApproval™ - Employee Contract Approvals OmniApproval™ - Overtime Approvals OmniApproval™ - Timesheet Approvals OmniApproval™ - ECO Approvals OmniApproval™ - Approval by Coaches OmniApproval™ - Recognition & Discipline Approvals (HR) OmniApproval™ - Maintenance Approvals OmniApproval™ - Accounting Approvals OmniApproval™ - Analytic Accounting Approvals Approval Tests OmniApproval™ - Stock Approvals |
OmniApproval™: Một nền tảng, mọi phê duyệt.
Chuẩn hóa và tự động hóa toàn bộ quy trình phê duyệt trong doanh nghiệp — từ nhân sự, tài chính, mua sắm, bán hàng, sản xuất, dự toán, dự án đến vận hành — trên một bộ máy cấu hình duy nhất ngay trong Viindoo/Odoo. Không còn email rời rạc. Không còn bảng tính thủ công. Không còn script chắp vá.
OmniApproval™ hợp nhất mọi đề nghị, lưu toàn bộ dấu vết kiểm toán với ảnh chụp dữ liệu và so sánh khác biệt, đồng thời cung cấp cơ chế móc lệnh Python an toàn để đơn vị triển khai và lập trình viên mở rộng theo nhu cầu.
Tính năng nổi bật
Nền tảng phê duyệt dùng chung cho mọi mô hình trong Viindoo/Odoo. Cấu hình một lần, tái sử dụng ở nhiều nơi. Thiết kế an toàn ngay từ đầu. Sẵn sàng phục vụ kiểm toán và quản trị tuân thủ.
Hỗ trợ mọi mô hình
Khai báo mô hình nghiệp vụ áp dụng cho từng kiểu phê duyệt, loại trừ mô hình kỹ thuật/nội bộ, kích hoạt phê duyệt ngay từ danh sách và biểu mẫu bằng hành động tích hợp sẵn.
Trình hướng dẫn chọn dữ liệu
Chọn mô hình và bản ghi theo điều kiện lọc. Tạo một phiếu cho mỗi bản ghi, một phiếu cho nhiều bản ghi, hoặc gắn thêm vào phiếu phê duyệt hiện có.
Bộ máy ánh xạ trường an toàn
Ánh xạ trường dữ liệu đơn và trường quan hệ (tiêu đề/dòng, cây/lồng nhau) với danh sách chặn sẵn, tránh ghi sai chiều hoặc chạm vào trường nội bộ. Không cần mã dán thủ công.
Trường động linh hoạt
Bật/tắt và quy định bắt buộc cho số tiền, đối tác, nhân viên, kỳ hạn, địa điểm, tiền tệ, sản phẩm, tham chiếu, địa chỉ, v.v. Giao diện và trình hướng dẫn tự động tuân thủ thiết lập hiển thị và bắt buộc.
Ảnh chụp dữ liệu & so sánh khác biệt
Lưu ảnh chụp theo phiếu và theo từng bản ghi, tự động phát hiện thay đổi sau khi gửi phê duyệt và ghi log khác biệt trên cả phiếu phê duyệt lẫn chứng từ nghiệp vụ, sẵn sàng cho kiểm toán và phân tích.
Móc lệnh Python nội tuyến an toàn
Cho phép chạy mã trước/sau khi xác nhận, phê duyệt, từ chối, hủy, đưa về nháp. Hỗ trợ xử lý theo lô, cung cấp sẵn ngữ cảnh và cơ chế kiểm tra an toàn, ngăn câu lệnh nguy hiểm và cho phép áp đặt quy tắc nghiệp vụ chặt chẽ.
Hiển thị quyết định ngay trên chứng từ
Mỗi lần chấp thuận hoặc từ chối được ghi chú rõ ràng trên đơn bán hàng, đơn mua, hóa đơn, dự án... giúp lãnh đạo xem nhanh ai đã phê duyệt, khi nào và kèm theo nhận xét gì.
Nút phê duyệt ở đúng nơi người dùng làm việc
Hành động “Gửi phê duyệt” và trạng thái phê duyệt hiển thị trực tiếp trên màn hình chính. Nhân viên gửi đề nghị ngay từ danh sách và biểu mẫu quen thuộc, không cần học thêm một ứng dụng mới.
Lợi ích cho doanh nghiệp
Chỉ buộc phê duyệt với những nghiệp vụ thực sự cần, dựa trên điều kiện rõ ràng. Giảm ồn cho lãnh đạo nhưng vẫn đảm bảo đầy đủ điểm kiểm soát cho kiểm toán.
Thay thế các đoạn mã tùy biến rời rạc bằng một động cơ phê duyệt thống nhất, với các điểm mở rộng rõ ràng, không sửa lõi, dễ bảo trì và nâng cấp lâu dài.
Theo dõi đầy đủ thay đổi đến cấp độ trường dữ liệu cho cả phiếu phê duyệt và chứng từ liên quan, phù hợp yêu cầu tuân thủ (ISO, SOX-like) và chuẩn quản trị của doanh nghiệp lớn.
Lãnh đạo và kiểm toán có thể xem lịch sử phê duyệt trực tiếp trên đơn bán hàng, đơn mua, hóa đơn, dự án... với cả quyết định, ghi chú và thay đổi dữ liệu ngay tại một nơi.
Động cơ phê duyệt xử lý sẵn tình huống chứng từ nguồn được sửa hoặc xóa, hạn chế tối đa phiếu “mồ côi” và giữ cơ sở dữ liệu sạch, dễ giải trình theo thời gian.
Đơn vị triển khai và lập trình viên dùng chung một nền tảng cho nhiều bài toán: nhân sự, kế toán, bán hàng, mua hàng, kho, dự án, sản xuất... giảm khối lượng mã, giảm rủi ro lỗi và rút ngắn thời gian go-live.
Một động cơ cho mọi mô hình
- Định nghĩa mô hình nghiệp vụ áp dụng cho từng kiểu phê duyệt.
- Mỗi công ty có sẵn một mẫu phê duyệt “Tổng quát” để dùng ngay, sau đó tinh chỉnh dần thay vì xây lại từ đầu.
- Ngăn chọn các mô hình kỹ thuật hoặc không an toàn.
- Kích hoạt phê duyệt trực tiếp từ giao diện danh sách và biểu mẫu.
Bộ máy ánh xạ trường an toàn
- Hỗ trợ đầy đủ trường số, chuỗi, lựa chọn, ngày, tiền tệ, quan hệ nhiều kiểu.
- Ánh xạ được cả tiêu đề, dòng, cấu trúc con và dữ liệu lồng nhau.
- Có sẵn danh sách chặn chiều đồng bộ và trường nội bộ để tránh sai sót dữ liệu.
Trường động, không cần lặp giao diện
- Tùy chọn hiển thị và bắt buộc cho số tiền, đối tác, nhân viên, địa điểm, v.v.
- Áp dụng thống nhất trên phiếu phê duyệt, dòng chi tiết và các trình hướng dẫn.
- Phù hợp xây thư viện mẫu phê duyệt chung cho nhiều phòng ban.
Ảnh chụp dữ liệu & nhật ký khác biệt
- Lưu ảnh chụp dữ liệu tại thời điểm gửi và phê duyệt cho từng chứng từ liên quan.
- Tự động phát hiện thay đổi sau khi gửi và ghi nhận khác biệt rõ ràng.
- Ghi nhật ký ngay trên phiếu phê duyệt và chứng từ nghiệp vụ để dễ theo dõi.
- Dữ liệu sẵn sàng kết nối với hệ thống phân tích, phục vụ kiểm toán và quản trị bằng số liệu.
Báo cáo & phân tích cho cấp quản lý
OmniApproval™ cung cấp sẵn ba bảng điều khiển để biến dữ liệu phê duyệt thành thông tin quản trị — không cần viết thêm báo cáo tùy biến.
Tổng quan đề nghị phê duyệt
Theo dõi số lượng và trạng thái phê duyệt theo thời gian, theo công ty, kỳ hoặc loại phê duyệt — với số liệu đã được quy đổi về một đơn vị tiền báo cáo thống nhất.
- Nhìn nhanh mỗi tháng có bao nhiêu đề nghị được phê duyệt, đang chờ, bị từ chối, bị hủy hoặc đã hoàn thành.
- Phát hiện thời điểm cao điểm, chậm trễ và tồn đọng trong toàn tổ chức.
Phân tích cơ cấu phê duyệt
So sánh khối lượng và giá trị phê duyệt giữa các loại phê duyệt, nhóm sản phẩm, bộ phận... trên cùng một bảng dữ liệu chi tiết, kể cả những đề nghị không có dòng chi tiết.
- Biết được loại phê duyệt và đơn vị nào phát sinh nhiều giao dịch nhất.
- Có số liệu làm căn cứ thiết kế ngân sách và cải tiến quy trình thay vì cảm tính.
Tải công việc & hiệu suất người phê duyệt
Đo lường số lượng đề nghị và thời gian ra quyết định của từng người phê duyệt, với thời gian trung bình và trung vị cho mỗi người.
- Nhận diện các cá nhân đang quá tải hoặc là “nút thắt” trong chuỗi phê duyệt.
- Đo mức độ tuân thủ thời hạn xử lý nội bộ và cam kết SLA.
Tất cả số liệu được lưu trên các mô hình dữ liệu có cấu trúc, sẵn sàng cho Pivot, biểu đồ, bảng tính Odoo hoặc các công cụ BI bên ngoài — giúp quản trị phê duyệt có thể đo lường, không chỉ đơn thuần cấu hình.
Xem quyết định ngay trên chứng từ
- Mỗi lần phê duyệt hoặc từ chối đều để lại ghi chú rõ ràng trên đơn hàng, chứng từ kế toán, dự án và các chứng từ khác.
- Người quản lý mở đơn hàng là thấy ngay ai đã phê duyệt, thời điểm nào và nội dung nhận xét đi kèm.
- Kết hợp với ảnh chụp & nhật ký khác biệt để có cả lịch sử quyết định lẫn lịch sử thay đổi dữ liệu tại một nơi.
- Giảm bớt email qua lại khi cần giải trình cho khách hàng hoặc kiểm toán.
Móc lệnh nội tuyến trong vùng an toàn
- Chạy mã trước/sau các hành động xác nhận, phê duyệt, từ chối, hủy và đưa về nháp.
- Sử dụng sẵn các biến như
env,records,fieldstrong khuôn khổ cho phép. - Bộ kiểm tra an toàn chặn các opcode và mẫu mã nguy hiểm trước khi chạy.
- Có thể phát sinh
UserError/ValidationErrorđể buộc tuân thủ quy định nội bộ.
Cũng được thiết kế cho Implementers & Developers
- Sử dụng mixin dùng chung để biến bất kỳ mô hình tùy biến nào thành mô hình “biết phê duyệt”, có liên kết tới phiếu phê duyệt, dòng và nguồn dữ liệu.
- Tận dụng các hàm trợ giúp để truy tìm phiếu phê duyệt và chứng từ liên quan, không cần viết SQL riêng hoặc glue code rải rác.
- Gọi dịch vụ dữ liệu phê duyệt (approval data service) có bộ nhớ đệm và cơ chế làm mới để hiển thị badge, smart button và số liệu tổng hợp trong các view riêng.
- Logic snapshot & diff được tách giữa phần tính toán khác biệt thuần dữ liệu và phần ghi log sau khi commit, giúp hành vi giao dịch dễ dự đoán hơn.
- Danh sách chặn sẵn cho mô hình kỹ thuật, mô hình mail, mô hình test và các trường nội bộ, giảm rủi ro ghi nhầm vào vùng dữ liệu nhạy cảm.
- Móc lệnh Python nội tuyến dùng chung lớp bảo vệ, context và cơ chế kiểm tra, giúp logic tùy biến theo dự án vẫn gọn, dễ bảo trì ngay trên từng loại phê duyệt.
Giới thiệu tổng quan OmniApproval™
Xem video giới thiệu để hình dung cách OmniApproval™ chuẩn hóa phê duyệt cho bán hàng, mua sắm, dự án, kế toán, kho vận và nhiều nghiệp vụ khác.
Tài liệu và hướng dẫn triển khai
OmniApproval™ cung cấp giao diện cấu hình trực quan. Tham khảo thêm tài liệu hướng dẫn chi tiết trên trang Viindoo (sẽ được cập nhật đường dẫn chính thức) để áp dụng hiệu quả cho từng doanh nghiệp cụ thể.
Cần hỗ trợ về OmniApproval™?
Vui lòng liên hệ Viindoo để được tư vấn giải pháp, hỗ trợ triển khai và phát triển chức năng theo yêu cầu.
Tư vấn & hợp tác
Khi liên hệ, vui lòng cung cấp:
- Phiên bản Odoo/Viindoo đang sử dụng (Community/Enterprise).
- Số lượng người dùng và các quy trình cần kiểm soát.
- Các mô-đun/giải pháp liên quan đang triển khai.
Hỗ trợ kỹ thuật
Khi báo lỗi, vui lòng gửi kèm:
- Số đơn hàng mua ứng dụng hoặc mã tham chiếu app.
- Phiên bản và ấn bản Odoo/Viindoo (CE/EE).
- Các bước thao tác để tái hiện lỗi kèm ảnh chụp màn hình/log nếu có.
Yêu cầu kỹ thuật
Nhật ký thay đổi
17.0.0.1 - Phát hành phiên bản đầu tiên
- Giới thiệu động cơ phê duyệt dùng chung cho mọi mô hình nghiệp vụ.
- Bổ sung khung ánh xạ trường an toàn với danh sách chặn và cấu trúc cây.
- Triển khai cơ chế trường động và các trình hướng dẫn tích hợp.
- Cung cấp tính năng ảnh chụp dữ liệu & so sánh khác biệt cho phiếu phê duyệt và chứng từ liên quan.
- Thêm móc lệnh Python nội tuyến với lớp kiểm tra an toàn trước khi thực thi.
Kết hợp mạnh mẽ với các mô-đun sau
OmniApproval™ được thiết kế như động cơ phê duyệt lõi. Các mô-đun dưới đây bổ sung quy trình nghiệp vụ chuyên sâu, nhưng không ràng buộc chặt — doanh nghiệp có thể triển khai từng phần theo nhu cầu.
OmniApproval™ - Duyệt Hợp Đồng Lao Động
Mở rộng OmniApproval™ sang xử lý hợp đồng lao động: ký mới, gia hạn, điều chỉnh lương-phúc lợi, thay đổi thông tin nhân sự, với đầy đủ các trường chuyên biệt của HR được bật/tắt linh hoạt.
OmniApproval™ - Phê duyệt mua sắm
Mẫu phê duyệt cho đề nghị mua và đơn mua, gắn với ngân sách và chính sách nhà cung cấp.
OmniApproval™ - Phê duyệt báo giá & đơn bán
Cấu hình phê duyệt cho báo giá, chiết khấu, hạn mức tín dụng và các thương vụ chiến lược.
OmniApproval™ - Phê duyệt dự án & công việc
Phê duyệt thay đổi phạm vi dự án, timesheet và các mốc quan trọng.
OmniApproval™ - Phê duyệt kế toán
Phê duyệt bút toán, thanh toán và các điểm kiểm soát tài chính với đầy đủ dấu vết.
OmniApproval™ - Phê duyệt kho
Kiểm soát phiếu chuyển kho, nhập, xuất gắn với quy trình OmniApproval™.
OmniApproval™ - Phê duyệt phân tích chi phí
Kiểm soát phân bổ chi phí theo mã phân tích, sẵn sàng cho báo cáo lợi nhuận đa chiều.
OmniApproval™ - Phê duyệt sản xuất
Phê duyệt lệnh sản xuất, thay đổi kỹ thuật và các ngoại lệ trong quá trình sản xuất.
OmniApproval™ phù hợp với ai?
Phù hợp với doanh nghiệp cần cơ chế phê duyệt thống nhất cho nhiều phòng ban, chi nhánh và mô hình kinh doanh — mà không muốn xây dựng các workflow rời rạc riêng lẻ.
Doanh nghiệp vừa, lớn & đang tăng trưởng
Các tập đoàn, tổng công ty đa đơn vị cần chuẩn hóa phê duyệt với dấu vết rõ ràng, dễ kiểm toán.
Đơn vị tư vấn & đối tác Odoo/Viindoo
Muốn triển khai phê duyệt nhanh cho nhiều dự án, tái sử dụng nền tảng chung thay vì “phát minh lại bánh xe” mỗi lần.
Ngành nghề chịu quản lý chặt
Tài chính, sản xuất, logistics, y tế, dịch vụ công... nơi mỗi quyết định chi tiêu, thay đổi hợp đồng hoặc điều chỉnh sản xuất đều cần được ghi nhận và giải trình rõ ràng.
OmniApproval™ (viin_approval)
Installation
- Go to Apps.
- Search for viin_approval.
- Click Activate.
Note
viin_approval is the core engine of OmniApproval™ and must be installed before any vertical approval modules.
Configuration
Approval Types
- Navigate to OmniApproval™ - Configuration - Approval Types.
- Create or open an approval type.
- Set the following fields:
- Source Model
- Source Button Label
- Applicable Records Domain (optional)
- Before-Approval Required Domain (optional)
- Field Mapping Strategy: single or multi
- Has Lines / Lines Required (if line-level approval is needed)
Approvers
- Open the Approvers tab.
- Configure:
- Required approvers
- Sequence
- Minimum approvals
Field Enablement (Head)
- For each toggle field, choose one of:
- none: hidden
- optional: shown, optional
- required: shown, mandatory
Common head toggles include:
- has_document
- has_reference
- has_date
- has_period
- has_amount / has_amount2 / has_amount_currency
- has_quantity / has_quantity_integer
- has_partner / has_partner_ids
- has_user_id / has_user_ids
- has_employee_id / has_employee_ids
- has_department_id / has_job_id
- has_product_id / has_product_tmpl_id
- has_country_id / has_country_state_id
- has_address_id
- has_location
- has_resource_calendar_id
- has_description / has_description_html
- has_res_ref
- has_time_period
- etc
Field Enablement (Lines)
Line toggle fields follow the same structure, using line_has_... prefixes.
Custom Labels
- In the Labels section, set custom labels for enabled fields. These labels override defaults in both the request form and the wizard.
Field Mapping
- Open the Field Mappings tab.
- Add mapping lines specifying:
- Source Model
- Source Field
- Destination Model (Request or Request Line)
- Destination Field
- Optional Child Mappings for nested structures
Mapping Strategy Behavior
Single Strategy
- One approval request per source record.
- If line mappings exist, source lines map to request lines.
Multi Strategy
- One approval request for multiple source records.
- Each source record becomes one request line.
Allowed mapping field types:
- Basic stored fields
- many2one
- many2many
- one2many (converted into lines)
Snapshots and Diff
- When a request is confirmed, a snapshot is stored:
- One snapshot for the request head
- One snapshot per request line
- Later changes to the source record are detected and displayed as diffs.
Using OmniApproval™
Creating a Request
- Open any supported source record.
- Click Get Approved.
- The wizard loads mapped values.
- Select an approval type.
- Confirm to create the request.
Attaching to an Existing Request
(Available only when the approval type uses multi strategy.)
- Select multiple source records.
- Choose Attach to existing request.
- Select the target request.
- Confirm.
Inline Python Hooks (Admin Only)
These hooks allow system admins to add controlled automation.
Action Hooks
Executed before or after actions:
- Confirm -> code_confirm_pre / code_confirm_post
- Validate -> code_validate_pre / code_validate_post
- Refuse -> code_refuse_pre / code_refuse_post
- Cancel -> code_cancel_pre / code_cancel_post
- Draft -> code_draft_pre / code_draft_post
Available variables:
- env
- records (batched approval requests)
- log (logging helper)
Example:
# Confirm related transfers when approval is validated
pickings = records._get_res_ref_records_map().get('stock.picking')
if pickings:
pickings.action_confirm()
Inline Onchange Hooks (UI Only)
These run only in web client onchange events, never on backend create/write:
- code_onchange_request
- code_onchange_request_line
Example:
# Autofill quantity when product changes
for r in records:
if r.product_id and not r.quantity:
r.quantity = 1
Default Code Snippets
Each hook field includes example code which demonstrates:
- Allowed global variables
- Safe operation patterns
- Batch processing via records
Admins should begin with these examples.
Best Practices
- Keep mapping rules simple and focused.
- Do not map compute-only or non-stored fields.
- Use snapshot/diff to track post-approval changes.
- Use inline hooks for lightweight automation only.
- For complex logic, create a dedicated module.
Summary
viin_approval provides:
- Configurable approval request structures
- Head/line field toggles
- Customizable labels
- Flexible field mapping
- Snapshot and diff audit trails
- Safe inline Python automation
It is the foundation of the OmniApproval™ ecosystem.
This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file).
You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one).
It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software.
The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.