Hỏi Đáp

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Tham số tính lương (inputs) gán bằng code Python không tham gia tính lương.

1 - Mình thấy là các tham số tính lương (inputs) nếu được gán bằng code (để tự động lấy một giá trị mặc định nào đó), mà không phải nhập thủ công bằng tay thì tham số này vẫn được truyền vào bảng lương, tuy nhiên không tham gia vào tính toán lương (hệ thống vẫn hiểu tham số đó bằng 0).
- Nếu nhập bằng tay thì tham số đó lại được tham gia vào tính toán lương.
Cụ thể thế này nhé:

Ví dụ:
- Hệ số hiệu quả HHQ của mình thường là bằng 1. Tùy tháng, có người có thể được duyệt 1,1 hoặc 1,2, hoặc 0,9. Để cho khỏe mình gán cho giá trị mặc định bằng 1 theo code:

if (inputs.HHQ.amount == 0):
    result = 1
else:
    result = inputs.HHQ.amount 



- Khi lập phiếu lương, với những nhân viên có hệ số hiệu quả (HHQ) bằng 1 thì mình bỏ qua, hệ thống tự động gán giá trị 1 vào bảng lương nhân viên. Mình chỉ quan tâm đến những nhân viên có HHQ khác 1 mới phải nhập bằng tay.

- Khi tính toán lương, mình thấy các thông số này vẫn được gán đúng và có xuất hiện trong phiếu lương, nhưng kết quả tính toán lương lại sai (hệ thống lấy giá trị 0, thay cho giá trị đã được gán).

- Nhưng nếu mình nhập thủ công bằng tay cho tham số này thì kết quả tính toán lương lại đúng.

- Mình đã thử lại nhiều lần và với các tham số khác đều như vậy.


Nếu đây là cách hành xử của phần mềm thì mình sẽ chịu khó nhập thủ công vậy, nhưng nếu là bug thì các bác xem hộ nhé.


2 - Khi phiếu lương đã được lập, tính toán không báo lỗi Quy tắc lương, kết quả lương chính xác.

- Nhưng khi mình xác nhận phiếu lương và hoàn tiền phiếu lương đó thì lại báo Quy tắc lương bị lỗi.


Trình bày thì hơi khó nắm bắt, mình khai báo đăng nhập, nhờ các bạn kỹ thuật vào kiểm tra lỗi và xem xét hộ nhé.

Cảm ơn nhiều.

Các tham số tính lương trong ERP

Các tham số tính lương trong ERP

Các tham số tính lương trong ERP

Ảnh đại diện
Huỷ bỏ
7 Trả lời
0
Best Answer

Báo cáo các bác là em tìm được lý do rùi:
Vấn đề ở đây là một quy tắc lương: NCQĐ và một dữ liệu nhập ngoài (inputs) NCQĐ, hai cái này có cùng tên, cùng mã nhưng là 2 giá trị độc lập.
* Khi không nhập bằng tay thì giá trị inputs.NCQD.amount luôn luôn bằng 0,
* Khi đó NCQĐ được gán giá trị theo biểu thức Python dựa trên giá trị của inputs.NCQD.amount.
Vậy nên trong tính toán lương dựa trên inputs.NCQD.amount sẽ luôn cho giá trị bằng 0

if (inputs.NCQD.amount = 0):
    result = (contract.wage / inputs.NCQD.amount) * inputs.SNC.amount 
else:
    result = 0


* Em sửa lại như sau thì được:

if (NCQD != 0):
    result = (contract.wage / NCQD) * inputs.SNC.amount 
else:
    result = 0


Tuy nhiên vẫn phải nhờ các bác vấn đề về xóa phiếu lương:
- Khi phiếu lương đã được lập, tính toán không báo lỗi Quy tắc lương, kết quả lương chính xác.
- Nhưng khi mình xác nhận phiếu lương và hoàn tiền phiếu lương đó thì lại báo Quy tắc lương bị lỗi.
Nà thao nhỉ????
Thanks!!!
Ảnh đại diện
Huỷ bỏ
0
Best Answer

Cụ thể thêm thế này nhé:
1. Hoàn tiền lần 1, báo mã Python của quy tắc lương Số ngày công quy định (NCQD) lỗi, mình vào "đánh lừa" phần mềm bằng cách chuyển NCQD về giá trị cố định, luôn đúng (không dùng mã Python).
2. Hoàn tiền lần 2, không báo lỗi NCQD nữa, nhưng lại báo mã Python của Ngày công trong tháng (SNC) lỗi, mình cũng xử lý tương tự, chuyển SNC về giá trị cố định.
3. Hoàn tiền lần 3, báo mã Python của Số ngày công lễ (SNCL) lỗi, xử lý tương tự như trên,
4. Hoàn tiền lần 4, báo mã Python của Hệ số hiệu quả (HHQ) lỗi, xử lý tương tự;
5. Hoàn tiền lần 5, báo mã Python của Hệ số sản lượng (HSL) lỗi, xử lý tương tự.
Sau đó thì thao tác hoàn tiền được, không báo lỗi. Mình lưu ý thấy là tất cả các quy tắc lương trên đều là các inputs. Các quy tắc lương khác đều không bị báo lỗi. Lạ một cái là tính lương thì không báo lỗi, mà hoàn tiền mới báo.

Gian nan kinh.

1 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
Trần Ngọc Tuấn
-

Em vừa vào làm thử, đúng là bị thế thật. Nhưng chưa rõ nguyên nhân. Để debug thêm xem sao rồi em sẽ trả lời bác sau.

0
Best Answer

Lỗi như cái hình đầu thớt đấy ạ. Mấy cái phiếu lương đã xác nhận rồi cái nào cũng thía. Hoặc bác có thể vào xác nhận 1 phiếu lương bất kỳ để kiểm tra cũng đc. Mình đang set up tính lương nên cũng không sao.
Note. Mình nghĩ, Hiện tại mình chưa gắn các tài khoản vào lương để phiếu lương chuyển thành bút toán kế toán. Có phải vì vậy mà thao tác hoàn tiền báo lỗi không nhỉ.
:p

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Trần Ngọc Tuấn
Best Answer
Lê Ngọc Ngân viết:
Tuy nhiên vẫn phải nhờ các bác vấn đề về xóa phiếu lương:
- Khi phiếu lương đã được lập, tính toán không báo lỗi Quy tắc lương, kết quả lương chính xác.
- Nhưng khi mình xác nhận phiếu lương và hoàn tiền phiếu lương đó thì lại báo Quy tắc lương bị lỗi.
Nà thao nhỉ????
Thanks!!!
Lỗi nó báo thế nào bác? Bác PM cho em URL cái phiếu lương mà bị lỗi khi xác nhận để em vào em debug xem sao.
Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Trần Ngọc Tuấn
Best Answer

Em vừa vào làm thử thì thấy trong phiếu lương có cái dòng NCQD = 23.5. Cái này là do đoạn code này của bác

if not inputs.NCQD.amount > 0:
    result = 23.5
else:
    result = inputs.NCQD.amount

Có chỗ nào không đúng nhỉ?

Nhân tiện, bác nên tổ chức cấu trúc lương theo cách kế thừa để dễ quản lý hơn. Ví dụ
  1. Cấu trúc cơ bản gồm: Quy tắc 1, Quy tắc 2, Quy tắc 3
  2. Cấu trúc nhân viên văn phòng: kế thừa cấu trúc cơ bản và có thêm Quy tắc 4, Quy tắc 5
  3. Cấu trúc công nhân: kế thừa cấu trúc cơ bản và có thêm Quy tắc 6
  4. Cấu trúc ban lãnh đạo: Kế thừa cấu trúc nhân viên văn phòng và có thêm Quy tắc 7
Để kế thừa thì ở Cấu trúc nhân viên văn phòng bác để trường Cấp cha là Cấu trúc cơ bản. Như vậy thì bác không phải đưa 3 Quy tắc của Cấu trúc cơ bản vào cấu trúc nhân viên văn phòng nữa. Lúc xem xét nó sẽ dễ dàng hơn vì không phải căng mắt đi tìm một quy tắc trong cả mớ vài chục quy tắc trên 1 cấu trúc lương.
2 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
ViindooBot
-

1. Mình xoay mãi mà không biết sai ở đâu. Bác nghiên cứu thêm cho em nhé. Không thì không làm lương đc.
2. Về cái kế thừa quy tắc lương, có lẽ mình đang tư duy ngược nên lúng túng. Để mình nghiên cứu thêm.
Thanks!

Ảnh đại diện
Trần Ngọc Tuấn
-

Thứ 2 tới em rảnh buổi chiều. Bác qua Skype để trao đổi thêm vì em vào chưa thấy lỗi ở đâu cả. Ngồi dò từng quy tắc của bác thì hơi nản nên để qua skype bác chỉ em rồi em xử.

0
Best Answer

Không được bác ah.
- Mình đã sửa lại code theo gợi ý của bác.
- Đã xoá 1 quy tắc lương NCQD.
- 2 vấn đề nêu trên vẫn không giải quyết đc.
P/s: việc trùng mã NCQD cho 2 quy tắc lương là mình chủ ý để sử dụng trong 2 cấu trúc lương riêng biệt. Mình nghĩ là không ảnh hưởng. Tuy nhiên cho chắc ăn, mình xoá 1 rồi.
Bác vào xem thêm cho mình nhé.

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Trần Ngọc Tuấn
Best Answer

Hi Bác,

Bác có mấy Inputs trùng mã NCQD nên lúc chạy Odoo nó báo lỗi. Bác xử cái này xong thì nó sẽ fix luôn cả cái vụ code kia không chạy.

Em khuyên bác nên code thế này thì hơn:

if not inputs.HHQ.amount > 0: # để bắt cả những gì không lớn hơn 0 (gồm cả giá trị 0, không có giá trị, v.v.)
    result = 1
else:
    result = inputs.HHQ.amount


Nếu vẫn không được thì bác cho em biết, để em vào em xem.
Ảnh đại diện
Huỷ bỏ

Trả lời của Bạn

Vui lòng đảm bảo câu trả lời của bạn có liên quan và giải đáp đúng nội dung câu hỏi. Nếu muốn bình luận về câu hỏi hoặc câu trả lời, hãy sử dụng công cụ Bình luận. Lưu ý, bạn có thể thay đổi nội dung trả lời thay vì trả lời lại 02 lần cho cùng một câu hỏi. Đồng thời bạn có thể nhấn nút để bầu chọn câu hỏi / câu trả lời tốt nhất.