- ỨNG DỤNG
- OmniApproval™: Một nền tảng, mọi phê duyệt 17.0
Một bộ máy phê duyệt cho mọi chứng từ trong Odoo
Định nghĩa ai duyệt cái gì, theo thứ tự nào, cho bất kỳ model nào - một khoản thanh toán, một hợp đồng, một lượt đặt xe, một bút toán - và có bản ghi chính xác về thứ đã được duyệt.
OmniApproval™: Một nền tảng, mọi phê duyệt (tên kỹ thuật viin_approval) là ứng dụng Odoo 17.0 cho Odoo Community và Odoo Enterprise và Viindoo Cloud, dành cho người yêu cầu, người duyệt, chủ quy trình, kiểm toán.
Tóm tắt nhanh
Dữ kiện về OmniApproval™: Một nền tảng, mọi phê duyệt, phiên bản 0.2.4, gom một chỗ. Phát hành bởi Viindoo.
Tính năng chính
Phần lớn ứng dụng phê duyệt gắn thêm hai bước kiểm tra vào một chứng từ: đơn mua hàng, hoặc đơn xin nghỉ. Ứng dụng này đi ngược lại: bạn khai báo một loại phê duyệt, trỏ nó vào bất kỳ model nào trong cơ sở dữ liệu, và mô tả người duyệt - một người cụ thể, quản lý của người yêu cầu, một nhóm, một quy tắc viết bằng Python, hoặc nhiều người theo thứ tự. Từ đó yêu cầu mang theo dấu vết phê duyệt của chính nó, cùng ảnh chụp bản ghi tại thời điểm mỗi người duyệt đồng ý, để kiểm toán thấy được thứ thực sự đã duyệt chứ không phải bản ghi trông thế nào hôm nay.
Đang chờ tôi
Danh sách riêng của người duyệt, lọc đúng phần thực sự của họ - không phải cả hàng đợi với một bộ lọc phải nhớ.
Duyệt cả lô theo dòng
Chọn các bản ghi nguồn - thanh toán, hoá đơn - và tạo một yêu cầu có các dòng phản chiếu chúng, thay vì mỗi chứng từ một yêu cầu.
Phân tích phê duyệt
Số lượng, trạng thái và thời gian xử lý theo loại và theo kỳ, trên chính các yêu cầu.
Loại phê duyệt như một danh mục
Mọi quy trình phê duyệt trong công ty trên một màn hình, kèm phạm vi áp dụng và thời hạn cho phép.
Cách vận hành
Ba bước để đưa một chứng từ vào phê duyệt, và một bước để đọc kết quả.
Khai báo loại phê duyệt
Đặt tên loại, chọn model nó duyệt, đặt số ngày được phép, và quyết định quản lý của người yêu cầu có luôn bắt buộc không. Đây là cấu hình - không phát triển, không thêm module cho mỗi loại chứng từ.
Mô tả ai duyệt, theo thứ tự nào
Mỗi bước chọn người duyệt: một người cụ thể, quản lý của người yêu cầu, một nhóm, hoặc biểu thức Python cho trường hợp danh sách thả xuống không diễn đạt được - duyệt trên một mức tiền, duyệt cho phòng ban này. Các bước chạy tuần tự, nên người duyệt thứ hai chỉ thấy yêu cầu khi người thứ nhất đã ký.
Tạo yêu cầu
Yêu cầu được tạo từ màn hình tổng quan hoặc từ chính chứng từ. Nó mang số tiền, ngày tháng, phòng ban và các dòng, và cho thấy những người duyệt còn lại. Từ chối sẽ hỏi lý do, và lý do ở lại trên bản ghi.
Đọc khối lượng, không đọc hộp thư
Ba báo cáo đi kèm: yêu cầu theo loại và trạng thái, lượt duyệt theo thời gian, và khối lượng theo người duyệt. Cái cuối cùng trả lời câu hỏi mọi chủ quy trình rồi cũng hỏi - tháng này ai là điểm nghẽn.
Bạn nhận được gì
Loại phê duyệt cho bất kỳ model nào - các loại có sẵn đã bao gồm thanh toán, hoá đơn khách hàng, liên hệ, hợp đồng lao động và đặt xe
Các bước duyệt theo thứ tự: một người cụ thể, quản lý của người yêu cầu, tất cả thành viên một nhóm, hoặc quy tắc Python - với tuỳ chọn yêu cầu tất cả hay chỉ cần một
Ảnh chụp: bản ghi trông thế nào tại thời điểm duyệt, lưu bên cạnh yêu cầu
Yêu cầu có dòng chi tiết, nên một lô thanh toán duyệt được như một yêu cầu thay vì hai mươi
Hạn xử lý theo ngày cho từng loại, các yêu cầu quá hạn hiện thành danh sách riêng
Báo cáo về yêu cầu, về lượt duyệt và về khối lượng mỗi người duyệt đang gánh
Thêm màn hình
Mọi hình bên dưới chụp trên cơ sở dữ liệu có dữ liệu nghiệp vụ thật, đúng phiên bản này - không phải bản dựng mẫu, không phải ảnh của phiên bản cũ.
Mọi yêu cầu, với loại, người yêu cầu, số tiền và trạng thái
Một yêu cầu đang chờ người duyệt tiếp theo
Một loại phê duyệt mở từ màn hình tổng quan
Ứng dụng này không làm gì
Hãy đọc trước khi mua. Những điều bên dưới là việc ứng dụng chủ ý để lại cho ứng dụng khác hoặc cho bạn.
Người duyệt chạy tuần tự có điều kiện; sơ đồ rẽ nhánh, cổng song song và vòng lặp không được mô hình hoá. Nếu bạn cần BPMN, đây không phải nó.
Loại trỏ vào thanh toán hay hoá đơn ánh xạ trường của bản ghi nguồn lên yêu cầu. Tạo tay rồi tự nhập dòng không phải cách dùng dự kiến, và ứng dụng nên từ chối rõ ràng hơn hiện tại.
Phê duyệt quyết định việc có được tiếp tục hay không; nó không quyết định ai được đọc hay ghi bản ghi. Quyền truy cập giữ nguyên.
Cửa sổ duyệt ba ngày là ba ngày lịch.
Kết hợp tốt với
Các ứng dụng cùng hệ, được xây để ghép với ứng dụng này:
Phê duyệt cho Kế toán
Thanh toán, hoá đơn khách hàng và bút toán đi qua phê duyệt, với chứng từ làm nguồn.
viin_approval_accountTạm ứng nhân viên
Tạm ứng tiền mặt được tạo, duyệt và quyết toán trên cùng bộ máy.
to_hr_employee_advancePhê duyệt tăng ca
Yêu cầu tăng ca đi qua cùng các bước duyệt như mọi thứ khác.
viin_hr_overtime_approvalTự động hoá quy trình
Khi quyết định không phải một người mà là một quy tắc phải chạy theo lịch.
viin_workflow_automationAi nên dùng OmniApproval™: Một nền tảng, mọi phê duyệt?
Người yêu cầu
Tạo yêu cầu từ màn hình tổng quan hoặc ngay trên chứng từ, và theo dõi nó.
Người duyệt
Chỉ thấy những gì đang chờ mình, duyệt hoặc từ chối kèm lý do, và không bao giờ phải mở chứng từ gốc để biết cái gì đã đổi.
Chủ quy trình
Khai báo loại, model áp dụng và thứ tự người duyệt, không cần viết module.
Kiểm toán
Đọc dấu vết: ai duyệt, lúc nào, và bản ghi trông thế nào tại thời điểm đó.
Câu hỏi thường gặp
OmniApproval™: Một nền tảng, mọi phê duyệt làm gì?
Định nghĩa ai duyệt cái gì, theo thứ tự nào, cho bất kỳ model nào - một khoản thanh toán, một hợp đồng, một lượt đặt xe, một bút toán - và có bản ghi chính xác về thứ đã được duyệt.
OmniApproval™: Một nền tảng, mọi phê duyệt not làm gì?
Không phải công cụ thiết kế quy trình bằng sơ đồ. Người duyệt chạy tuần tự có điều kiện; sơ đồ rẽ nhánh, cổng song song và vòng lặp không được mô hình hoá. Nếu bạn cần BPMN, đây không phải nó. Loại gắn với chứng từ phải được tạo từ chính chứng từ đó. Loại trỏ vào thanh toán hay hoá đơn ánh xạ trường của bản ghi nguồn lên yêu cầu. Tạo tay rồi tự nhập dòng không phải cách dùng dự kiến, và ứng dụng nên từ chối rõ ràng hơn hiện tại. Không thay thế quy tắc phân quyền bản ghi. Phê duyệt quyết định việc có được tiếp tục hay không; nó không quyết định ai được đọc hay ghi bản ghi. Quyền truy cập giữ nguyên. Hạn xử lý tính theo ngày lịch, không theo ngày làm việc. Cửa sổ duyệt ba ngày là ba ngày lịch.
OmniApproval™: Một nền tảng, mọi phê duyệt dành cho ai?
Người yêu cầu: Tạo yêu cầu từ màn hình tổng quan hoặc ngay trên chứng từ, và theo dõi nó. Người duyệt: Chỉ thấy những gì đang chờ mình, duyệt hoặc từ chối kèm lý do, và không bao giờ phải mở chứng từ gốc để biết cái gì đã đổi. Chủ quy trình: Khai báo loại, model áp dụng và thứ tự người duyệt, không cần viết module. Kiểm toán: Đọc dấu vết: ai duyệt, lúc nào, và bản ghi trông thế nào tại thời điểm đó.
Hỗ trợ phiên bản và ấn bản Odoo nào?
Odoo 17.0 - Odoo Community, Odoo Enterprise, Viindoo Cloud. Nâng cấp lên dòng Odoo mới hơn là một lần mua riêng cho dòng đó.
Ứng dụng phụ thuộc vào gì?
Ứng dụng cài trên nền: base_setup, to_approvals, viin_safe_field_model_selector, product. Odoo sẽ cài kèm khi cài ứng dụng này.
Thiết lập như thế nào?
Ba bước để đưa một chứng từ vào phê duyệt, và một bước để đọc kết quả.
Kết hợp tốt với ứng dụng nào?
Phê duyệt cho Kế toán (viin_approval_account): Thanh toán, hoá đơn khách hàng và bút toán đi qua phê duyệt, với chứng từ làm nguồn. Tạm ứng nhân viên (to_hr_employee_advance): Tạm ứng tiền mặt được tạo, duyệt và quyết toán trên cùng bộ máy. Phê duyệt tăng ca (viin_hr_overtime_approval): Yêu cầu tăng ca đi qua cùng các bước duyệt như mọi thứ khác. Đặt xe (viin_fleet_booking): Yêu cầu xe được duyệt trước khi điều vận nhìn thấy. Tự động hoá quy trình (viin_workflow_automation): Khi quyết định không phải một người mà là một quy tắc phải chạy theo lịch.
Có thể dùng thử trước khi mua không?
Yes - the Live Preview button at the top of this page opens the module's own screen on a working database.
Nhận hỗ trợ bằng cách nào?
Gửi thư tới apps.support@viindoo.com kèm phiên bản Odoo và tên kỹ thuật viin_approval; câu hỏi trước bán hàng gửi sales@viindoo.com.
Xem OmniApproval™: Một nền tảng, mọi phê duyệt vận hành
Live demo: v17demo-int.viindoo.com/web#action=to_approvals.approval_request_action
Cần hỗ trợ về OmniApproval™: Một nền tảng, mọi phê duyệt?
Cần giải đáp, hỗ trợ triển khai hay phát triển thêm tính năng, hãy liên hệ Viindoo.
Tư vấn bán hàng & hợp tác
sales@viindoo.comNâng cấp lên dòng Odoo mới hơn là một lần mua riêng cho dòng đó.
Tất cả ứng dụng Viindoo: apps.odoo.com/apps/modules/browse?author=Viindoo
Yêu cầu kỹ thuật
Nhật ký thay đổi
0.2.4 - Mới nhất trên dòng 17.0
- Ảnh chụp bản ghi đã duyệt được lưu theo từng bước duyệt, để kiểm toán thấy đúng phiên bản đã ký.
- Bước duyệt nhận bộ chọn Python cho các quy tắc danh sách thả xuống không diễn đạt được.
- Danh sách chờ được lọc theo các bước đang chờ chính người duyệt thay vì cả hàng đợi.
- Loại phê duyệt ánh xạ chứng từ nguồn sẽ từ chối yêu cầu thiếu dòng bắt buộc, nêu rõ tên loại.
OmniApproval™ (viin_approval)
Cài đặt
- Vào Apps.
- Tìm viin_approval.
- Nhấn Activate để cài đặt.
Note
viin_approval là engine lõi của OmniApproval™ và phải được cài trước các module phê duyệt mở rộng.
Cấu hình
Loại phê duyệt (Approval Types)
- Vào OmniApproval™ - Configuration - Approval Types.
- Tạo mới hoặc mở một loại phê duyệt.
- Thiết lập các trường sau:
- Source Model: model nguồn cần phê duyệt.
- Source Button Label: nhãn nút trên bản ghi nguồn.
- Applicable Records Domain (tùy chọn): giới hạn bản ghi có thể dùng loại phê duyệt này.
- Before-Approval Required Domain (tùy chọn): yêu cầu phải có phê duyệt trước khi thực hiện hành động quan trọng.
- Field Mapping Strategy: single hoặc multi.
- Has Lines / Lines Required: bật/tắt phê duyệt theo dòng.
Người phê duyệt (Approvers)
- Mở tab Approvers.
- Thiết lập:
- Người phê duyệt bắt buộc
- Thứ tự phê duyệt
- Số lượng phê duyệt tối thiểu
Bật/tắt trường phần đầu (Head)
- Mỗi trường toggle có thể đặt thành:
- none: ẩn
- optional: hiển thị, không bắt buộc
- required: hiển thị và bắt buộc
Danh sách trường phổ biến:
- 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
- v.v.
Bật/tắt trường phần dòng (Lines)
Các trường toggle của dòng sử dụng tiền tố line_has_... và hoạt động tương tự phần đầu.
Nhãn tùy chỉnh
- Trong mục Labels, thiết lập nhãn tùy chỉnh cho các trường đã bật. Nhãn tùy chỉnh sẽ hiển thị trên form và wizard thay cho nhãn mặc định.
Ánh xạ trường (Field Mapping)
- Vào tab Field Mappings.
- Thêm các dòng ánh xạ với:
- Source Model
- Source Field
- Destination Model (Request hoặc Request Line)
- Destination Field
- Child Mappings (tùy chọn, cho cấu trúc con)
Hành vi theo chiến lược Mapping
Single Strategy
- Mỗi bản ghi nguồn tạo ra một yêu cầu phê duyệt.
- Nếu bật ánh xạ dòng, từng dòng của bản ghi nguồn sẽ tạo thành dòng phê duyệt.
Multi Strategy
- Một yêu cầu phê duyệt chứa nhiều bản ghi nguồn.
- Mỗi bản ghi nguồn trở thành một dòng phê duyệt.
Kiểu trường hỗ trợ ánh xạ:
- Trường lưu trữ cơ bản
- many2one
- many2many
- one2many (đưa vào dòng)
Snapshot và Diff
- Khi yêu cầu ở trạng thái confirm, hệ thống lưu:
- Một snapshot cho phần đầu yêu cầu
- Một snapshot cho từng dòng
- Khi dữ liệu nguồn thay đổi, hệ thống hiển thị diff (so sánh thay đổi).
Sử dụng OmniApproval™
Tạo yêu cầu phê duyệt
- Mở bản ghi nguồn.
- Nhấn Get Approved.
- Wizard tự điền dữ liệu từ mapping.
- Chọn loại phê duyệt.
- Xác nhận để tạo yêu cầu.
Gắn thêm bản ghi vào yêu cầu sẵn có
(Chỉ khả dụng khi loại phê duyệt dùng multi)
- Chọn nhiều bản ghi nguồn.
- Chọn Attach to existing request.
- Chọn yêu cầu đích.
- Xác nhận.
Inline Python Hooks (chỉ dành cho Quản trị hệ thống)
Các hook này cho phép tự động hóa ở mức độ an toàn mà không cần viết module tùy chỉnh.
Action Hooks
Chạy trước hoặc sau các hành động sau:
- 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
Các biến có sẵn:
- env: môi trường Odoo
- records: danh sách yêu cầu phê duyệt
- log: ghi nhật ký
Ví dụ:
# Xác nhận các phiếu kho liên quan khi yêu cầu được duyệt
pickings = records._get_res_ref_records_map().get('stock.picking')
if pickings:
pickings.action_confirm()
Inline Onchange Hooks (chỉ chạy trên giao diện)
- code_onchange_request
- code_onchange_request_line
Chạy chỉ khi người dùng thay đổi dữ liệu trên giao diện (UI), không chạy khi ghi ORM.
Ví dụ:
# Tự điền số lượng khi người dùng chọn sản phẩm
for r in records:
if r.product_id and not r.quantity:
r.quantity = 1
Mẫu code mặc định
Các trường python đều có ví dụ đi kèm, bao gồm:
- biến toàn cục được phép dùng
- cú pháp an toàn
- cách xử lý batch qua records
Khuyến nghị
- Giữ ánh xạ đơn giản.
- Không ánh xạ các trường compute-only hoặc không lưu trữ.
- Dùng snapshot/diff để kiểm tra thay đổi sau phê duyệt.
- Chỉ dùng inline hook cho logic nhẹ.
- Logic phức tạp nên đưa vào module riêng.
Tóm tắt
viin_approval cung cấp:
- Cấu trúc yêu cầu phê duyệt linh hoạt
- Bật/tắt trường phần đầu và dòng
- Nhãn tùy chỉnh
- Ánh xạ trường mạnh mẽ
- Lưu snapshot và diff để phục vụ kiểm soát
- Inline Python automation an toàn
Đây là nền tảng của hệ sinh thái OmniApproval™.
Phần mềm này và các tệp liên kết ("Phần mềm") được sử dụng (chạy, tuỳ biến, chạy sau khi được tuỳ biến) chỉ khi bạn mua được giấy phép có hiệu lực từ tác giả, điển hình như qua các Ứng dụng Odoo, hoặc trong trường hợp bạn nhận được thoả thuận bằng văn bản từ tác giả của Phần mềm (chi tiết tại tệp COPYRIGHT).
Bạn có thể phát triển các phân hệ Odoo có sử dụng Phần mềm như một Thư viện (thường là phụ thuộc vào, nhập vào và sử dụng nguồn của nó) nhưng không sao chéo bất kỳ mã nguồn hay tài liệu nào thuộc Phần mềm. Bạn có thể phân phối những phân hệ này theo giấy phép mà bạn lựa chọn, miễn sao nội dung giấy phép đó tương tích với điều khoản của Giấy phép Phần mềm Độc quyền Odoo (ví dụ: LGPL, MIT hay bất kỳ loại giấy phép phần mềm độc quyền nào tương tự vậy).
Nghiêm cấm phát hành, phân phối, cấp phép lại hoặc bán bản sao của Phần mềm hoặc bản sao Phần mềm đã được sửa đổi.
Thông báo bản quyền và chấp thuận nêu trên buộc phải được bao gồm trong tất cả các bản sao hoặc các phần quan trọng của Phần mềm.
PHẦN MỀM ĐƯỢC CUNG CẤP "NGUYÊN TRẠNG", KHÔNG BẢO ĐẢM DƯỚI BẤT KỲ HÌNH THỨC NÀO, ĐƯỢC THỂ HIỆN RÕ RÀNG HOẶC NGỤ Ý, KHÔNG GIỚI HẠN ĐẢM BẢO VỀ CÁC BẢO ĐẢM NGỤ Ý VỀ KHẢ NĂNG THƯƠNG MẠI, PHÙ HỢP VỚI MỤC ĐÍCH CỤ THỂ VÀ KHÔNG VI PHẠM. TRONG MỌI TRƯỜNG HỢP SẼ KHÔNG CÓ TÁC GIẢ HOẶC CHỦ SỞ HỮU BẢN QUYỀN NÀO CHỊU TRÁCH NHIỆM VỀ BẤT KỲ KHIẾU NẠI, THIỆT HẠI HOẶC TRÁCH NHIỆM PHÁP LÝ KHÁC NÀO TRONG PHẠM VI HỢP ĐỒNG, CÁC THIỆT HẠI HOẶC CÁCH KHÁC, PHÁT SINH TỪ, NGOÀI HOẶC CÓ LIÊN KẾT VỚI PHẦN MỀM HOẶC VIỆC SỬ DỤNG HOẶC KINH DOANH KHÁC TẠI PHẦN MỀM.