Chào các bạn,
Mình muốn hỏi về quan hệ table (hoặc model) giữa Employee và User hoặc Partner, nhìn trên table thì không thấy mối liên kết. Bạn nào biết thì chỉ mình với! Xin cảm ơn!
0
3 Trả lời
Best Answer
OK. Vậy thì đúng là bạn chưa cần quan tâm đến quan hệ giữa các bảng mà chỉ cần quan tâm đến quan hệ giữa các model sau:
- hr.employee: có trường user_id để gắn employee với một user, và có trường address_home_id gắn với một partner
- res.users: có trường partner_id để gắn user với một partner.
- res.partner: công nợ trong Odoo được tính toán cho partner nên chỗ này rất quan trọng
- hr.payslip: phiếu lương có trường employee_id để thể hiện đây là phiếu lương của nhân viên nào
- sale.order: có trường user_id để thể hiện đơn hàng này do ai phụ trách.
Cách tính lương theo doanh số thì cơ bản phải như sau:
- Lấy ra được doanh số của nhân viên trong khoảng thời gian của phiếu lương (giữa 2 giá trị date_from và date_to của phiếu lương) và load thành một dòng ở chỗ Dữ liệu nhập ngoài khác. Hoặc có thể làm hẳn một table mới để load nó vào. Vì có thể bạn sẽ cần nhiều dòng để phục vụ cho salary rules: doanh thu đã xác nhận; doanh thu đã hoàn thành; doanh thu bị huỷ; v.v.
- Làm một salary rule để tự động tính số tiền để thanh toán cho người lao động dựa trên cái doanh số đã có trên phiếu lương.
P/s: Bạn không cần phải viết một câu SQL nào cho nghiệp vụ trên. Hãy dùng các phương thức search, read, browse của self.env['ten_model'], code sẽ ngắn hơn và không sợ lỗi logic hay sót như khi viết SQL