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

Cách thêm module mới trong OpenERP

Ảnh đại diện
trannhatlinh

Anh viết bài hướng dẫn cách thêm một module cụ thể được không anh. Hiện tại em đang mù tịt về vấn đề này, Em mới làm quen OpenERP nên còn mù mờ lắm ạ.

Ảnh đại diện
Huỷ bỏ
13 Trả lời
1
Ảnh đại diện
Leo Tran
Best Answer
Cách của anh Leo Tran hay nè, giờ em mới biết. Anh cho em hỏi, sau khi tìm ra file xml lỗi rồi, anh có thủ thuật nào tìm ra đoạn code xml lỗi nhanh nhất không anh?

Thực ra cách làm cũng tuơng tự:
1.Chia code xml ra thành các cum code, cụ thể ở đây là từ thẻ mở view đến thẻ đóng view. Sau đó comment hết các cụm này lại, để lại cụm đầu tiên.
2. Vào OpenERP install module, nếu lỗi => cụm đó bị lỗi. Cứ như trên mà làm :p
Ảnh đại diện
Huỷ bỏ
1
Ảnh đại diện
Leo Tran
Best Answer
Vâng. Thế còn sửa các file xml thì sao ạ? Mình phải sửa hết tất cả các file .xml có rong module ạ? Để sửa được thì mình phải so sánh giữa các file .xml của module sale_commission với module Sale của bản 7.0 ạ?
Về mặt lý thuyết thì file nào lỗi sửa file đấy, cách tìm ra file xml lỗi rất đơn giản.
1. Em vào file __openerp__.py, comment (dùng dấu #) hết file xml trong đoạn code update{…}. Để lại 1 file xml đầu tiên.
2. Vào OpenERP install module đó, nếu lỗi thì chứng tổ file xml đó bị lỗi. Nếu không lỗi, em lại vào bỏ comment file xml tiếp theo. Sau đó vào OpenERP, kích vào module đó rồi Upgrade. Nếu không lỗi thì chứng tỏ file xml thứ 2 không vấn đề gì. Em cứ thế làm sẽ phát hiện ra file xml nào bị lỗi.

Lưu ý, mỗi lần thay đổi code python, cụ thể ở đây là file __openerp__.py, em cần restart lại service, hoặc vào IDE chạy lại.
Ảnh đại diện
Huỷ bỏ
1
Ảnh đại diện
trannhatlinh
Best Answer

Vâng. Thế còn sửa các file xml thì sao ạ? Mình phải sửa hết tất cả các file .xml có rong module ạ? Để sửa được thì mình phải so sánh giữa các file .xml của module sale_commission với module Sale của bản 7.0 ạ?

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Leo Tran
Best Answer
Liệu anh có thể hướng dẫn em cách viết một module như anh David Tran bảo không ạ? Và anh có thể nói trước về thời gian để có thể hoàn thành được module này không ạ? Em cảm ơn.
Anh chỉ có thể hướng dẫn em upgrade module commission lên bản 7.0. Đó là cách duy nhất anh có thể giúp em vào lúc này.
Còn hướng dẫn viết mới một module thì anh sẽ cần phải thu xếp thời gian đã.
1 Bình luận
Ảnh đại diện
Huỷ bỏ
Ảnh đại diện
ViindooBot
-

Vâng. Anh cứ sắp xếp đi ạ. Bao giờ được, anh gửi mail cho em. trannhatlinh1689@gmail.com. Mong sự hồi âm sớm của anh. Em cảm ơn anh nhiều.

0
Ảnh đại diện
trannhatlinh
Best Answer

Liệu anh có thể hướng dẫn em cách viết một module như anh David Tran bảo không ạ? Và anh có thể nói trước về thời gian để có thể hoàn thành được module này không ạ? Em cảm ơn.

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Leo Tran
Best Answer

@nhatlinh,

Việc can thiệp vào module Sale là tối kỵ, Vì nghiệp vụ Sale là vô cùng quan trọng đối với bất kỳ một doanh nghiệp nào, đặc biệt là doanh nghiệp sử dụng ERP. Trừ khi em là chuyên gia.

P/S: Để biết được độ phức tạp của nó, em có thể vào menu Setting/Technical/Workflow/Workflows và xem workflow có tên sale.order.basic dưới dạng diagram view

Ảnh đại diện
Huỷ bỏ
0
Best Answer

Cách làm như ở TERP cũng được và theo mình thì đơn giản hơn là viết một module mới vì nó giải quyết ngay vấn đề trước mắt. Tuy nhiên, mình khuyên bạn không nên làm như vậy vì các lý do dưới đây:

  1. Quá trình test sẽ kéo dài hơn: vì không có gì đảm bảo việc chỉnh sửa một module sẵn có sẽ không làm ảnh hưởng đến các tính năng sẵn có. Và do đó, sau khi chỉnh sửa xong, ngoài việc test tính năng mới bổ sung thì vẫn phải test lại các tính năng cũ.
  2. Ảnh hưởng đến việc nâng cấp sau này: Nếu mỗi lần có nhu cầu về tính năng mới, bạn lại tìm cách sửa đổi thì cuối cùng cái module tiêu chuẩn sẽ tan nát và đường nhiên bạn sẽ phải là người chịu trách nhiệm bảo trì cho cái module ấy. Giả sử sau này OpenERP lên bản 8 với nhiều tính năng hấp dẫn, lúc này bạn muốn nâng cấp thì sẽ phải viết lại toàn bộ module sales và module payroll. Mà chưa chắc bác đã làm được và cũng không có gì đảm bảo nó không lỗi nếu như bạn làm được.
  3. Cách làm đó đi ngược lại với triết lý "chia nhỏ để trị": Đối với các phần mềm kiến trúc dạng module như OpenERP, Joomla, Drupal, v.v. thì ưu điểm lớn của chúng chính là cái kiến trúc chia nhỏ để trị. Bạn tìm cách gộp thì bạn đã phá hỏng cái ưu điểm của nó rồi.
  4. Hạn chế khả năng mở rộng sau này: Giả sử sau khi bạn chỉnh sửa xong như hướng dẫn bên ERP, lúc đó bạn/sếp bạn phát sinh thêm nhu cầu trả thưởng cho nhân viên kinh doanh tăng dần theo doanh số, ví dụ: doanh số/tháng từ 0~100tr thì được thưởng 2%, doanh số từ 100tr đến 500% thì được 5%, v.v. thì bạn sẽ giải quyết thế nào? Bạn lại tiếp tục "đè" cái sales và payroll ra để "xử" à?
Vậy nên bạn cân nhắc trước khi quyết định. Dĩ nhiên, bạn hoàn toàn có thể làm theo cách làm của bên TERP nếu tương lai bạn không mở rộng tính năng, hoặc nâng cấp, v.v.
Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Leo Tran
Best Answer
- Customize lai module sale = cách tình % hoa hồng theo Sales Order
- Customize lai module hr payroll để khi Compute Salary thì load thông số các Sales Order liên quan đến tháng đó và add vô Allowance trong bảng lương (Do đó phải tạo trước 1 Salary Category là dạng Allowance )
Nếu em đã đủ kinh nghiệm để customize được như vậy thì việc em upgrade module commission lên thì qua đơn giản. Chưa kể module đó còn cho phép em cấu hình quy tắc tính hoa hồng, cái này anh David chuyên về Sale giải thích sẽ rõ hơn.

Nói như vậy có nghĩa, đối với người mới tiếp cận với OpenERP thì rõ ràng việc customize như trên sẽ khó hơn việc sửa xml, lý do: xml là ngôn ngữ phổ biến, em chỉ cần xem qua 1 file xml mẫu là biết cách dùng các thẻ của nó. Trong khi đó để customize một module với yêu cầu như của em, em sẽ phải tìm hiểu rất nhiều: cách tổ chức module, workflow, model, function trong OpenERP. Tùy em chọn thôi,
Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
trannhatlinh
Best Answer

Cho em hỏi, cách này có phải là cách giải quyết duy nhất cho cách tính % lương theo sản phẩm của nhân viên không ạ? Ở diễn đàn terp.vn thì có một cách như sau dành cho bản 7.0. Các anh xem và cho nhận xét xem thế nào ạ.
- Customize lai module sale = cách tình % hoa hồng theo Sales Order
- Customize lai module hr payroll để khi Compute Salary thì load thông số các Sales Order liên quan đến tháng đó và add vô Allowance trong bảng lương (Do đó phải tạo trước 1 Salary Category là dạng Allowance )
Ps/ Em cũng chưa hiểu và thử cách này, nhưng nghe có vẻ đơn giản hơn việc update lên ạ.

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Leo Tran
Best Answer
Cách của Leo Trần là để giúp anh em tiếp cận theo hướng tự mò thôi, không phải cách làm chính tắc. Tuy nhiên, nó cũng hữu ích trong một số trường hợp.
Hôm nào Leo làm một bài help cụ thể chi tiết hướng dẫn anh em viết module cho OpenERP đi. Như thế mới chính tắc, chứ chơi cái bài dò lỗi này có vẻ hơi nông dân :p
Nhất trí thôi anh.
Ảnh đại diện
Huỷ bỏ
0
Best Answer

Cách của Leo Trần là để giúp anh em tiếp cận theo hướng tự mò thôi, không phải cách làm chính tắc. Tuy nhiên, nó cũng hữu ích trong một số trường hợp.
Hôm nào Leo làm một bài help cụ thể chi tiết hướng dẫn anh em viết module cho OpenERP đi. Như thế mới chính tắc, chứ chơi cái bài dò lỗi này có vẻ hơi nông dân :p

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Leo Tran
Best Answer

@nhatlinh,

Trước tiên, anh rẽ nhanh phản hồi của em thành một topic mới cho tiện trao đổi. Để thêm một module mới vào trong danh sách module của OpenERP em làm như sau:

1. Download module cần cài đặt.
2. Giải nén và copy vào thư mục addons
3. Truy cập vào hệ thống OpenERP, vào menu Thiết lập (setting)/Cập nhật danh sách module (Update module list), kích vào nút Cập nhật (Update). Lúc này hệ thống đã update module mới mà em vừa copy vào thư mục addons
4. Search tên module đó.
5. Install.

Chúc em thành công!

Ảnh đại diện
Huỷ bỏ
0
Ảnh đại diện
Vũ Trọng Đạt
Best Answer

Cách của anh Leo Tran hay nè, giờ em mới biết. Anh cho em hỏi, sau khi tìm ra file xml lỗi rồi, anh có thủ thuật nào tìm ra đoạn code xml lỗi nhanh nhất không anh?

Ả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.