0
Tải bản đầy đủ (.pdf) (67 trang)

Phân tích và triển khai bài toán quản lý hợp đồng mua trên Adempiere

Một phần của tài liệu LUẬN VĂN: ỨNG DỤNG ERP ADEMPIERE TRONG QUẢN LÝ HỢP ĐỒNG DOC (Trang 33 -67 )

4.1.1 Quy trình xử lý

4.1.1.1 Quy trình xử lý

Quy trình xử lý bài toán quản lý hợp đồng mua được mô tả như dưới đây (Tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4]):

Hình 6. Mô tả quy trình quản lý hợp đồng mua [4] 4.1.1.2 Mô tả các bước trong quy trình

Theo tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4] quy trình xử lý của bài toán quản lý hợp đồng mua qua các bước:

- Bước 1: Đơn vị, phòng ban có nhu cầu lập hợp đồng.

- Bước 2: Phòng Đầu tư kiểm tra hợp đồng. Nếu đồng ý thì chuyển qua phòng Tài chính, nếu không đề nghị sửa.

- Bước 3: Phòng Tài chính kiểm tra hợp đồng. Nếu đồng ý thì chuyển lên Ban giám đốc, nếu không đề nghị sửa.

- 4: Sau khi được Ban giám đốc phê duyệt, phòng Đầu tư cập nhật tiến độ thực hiện hợp đồng, đơn vị phòng ban và phòng Đầu tư thực hiện việc nhập kho.

- 5: Phòng Tài chính theo dõi và cập nhật tiến độ thanh toán của hợp đồng.

4.1.2 Mô tả Use Case mức cao

Mô hình Use Case mức cao của quy trình quản lý hợp đồng mua được mô trong tài liệu đặc tả yêu cầu người dùng của dự án ERP-VTT [4] như hình 7.

Hình 7. Mô hình Use Case mức cao-Quản lý hợp đồng mua [4]

Mô hình Use Case của Quản lý hợp đồng mua có ba tác nhân (actor) là: Đơn vị sử dụng, Phòng Đầu tư, Phòng Tài chính.

- Khi một Đơn vị sử dụng có nhu cầu, hệ thống sẽ lập một hợp đồng mua theo các yêu cầu mà đơn vị đưa ra.

- Khi phòng Đầu tư muốn cập nhật thông tin của hợp đồng mua, hệ thống sẽ phải hiển thị các thông tin về tiến độ thực hiện của hợp đồng, thông tin của việc nhập kho và cho phép phòng Đầu tư có thể thực hiện việc cập nhật.

- Khi phòng Tài chính muốn cập nhật thông tin của hợp đồng mua, hệ thống sẽ phải hiển thị các thông tin về tiến độ thanh toán của hợp đồng và cho phép phòng Tài chính có thể thực hiện việc cập nhật.

- Trong quá trình thực hiện hợp đồng, Đơn vị sử dụng cũng thường xuyên thực hiện việc nhập kho, hệ thống phải theo dõi và cập nhật được thông tin này để cung cấp cho phòng Đầu tư và Đơn vị sử dụng khi cần.

4.1.3 Biểu đồ phân rã chức năng

Hình 8. Biểu đồ phân rã chức năng-Quản lý hợp đồng mua

Phân hệ quản lý hợp đồng mua gồm có ba chức năng chính là: - Quản lý thông tin chung về hợp đồng.

- Quản lý thông tin về tiến độ thực hiện hợp đồng.

- Quản lý thông tin về tiến độ thanh toán. Mỗi chức năng sẽ được gán cho một role riêng:

- Chức năng quản lý thông tin chung về hợp đồng được gán cho Đơn vị sử dụng.

- Chức năng quản lý thông tin về tiến độ thực hiện hợp đồng được gán cho phòng Đầu tư.

- Chức năng quản lý thông tin về tiến độ thanh toán được gán cho phòng Tài chính.

Quản lý hợp đồng mua

Thông tin chung về hợp đồng

Thông tin về tiến độ thực hiện hợp đồng

Thông tin về tiến độ thanh toán

4.1.4 Mô hình ER

Hình 9. Mô hình ER-Quản lý hợp đồng mua

Các thực thể cùng các thuộc tính trong mô hình: Ban giám đốc Hợp đồng Phòng tài chính Phòng đầu tư Đơn vị sử dụng Kho Kiểm tra Phê duyệt Y/C nhập kho Y/C nhập kho Cập nhật thực hiện Khởi tạo Cập nhật thanh toán Kiểm tra (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,n) (1,n) (1,1) (1,1) (1,n) DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID CONTRACT_ID BPARTNER_ID DEPARTMENT_ID DATE CREATBY TOTALAMOUNT CURRENCY

- Hợp đồng: CONTRACT_ID, DEPARTMENT_ID, BPARTNER_ID, DATE, CREATBY, TOTALAMOUNT, CURRENCY.

- Đơn vị sử dụng: DEPARTMENT_ID, EMPLOYEE_ID.

- Phòng đầu tư: DEPARTMENT_ID, EMPLOYEE_ID.

- Phòng tài chính: DEPARTMENT_ID, EMPLOYEE_ID.

- Ban giám đốc: DEPARTMENT_ID, EMPLOYEE_ID.

- Kho: DEPARTMENT_ID, EMPLOYEE_ID.

4.1.5 Triển khai trên Adempiere

Việc triển khai module quản lý hợp đồng mua được thực hiện dựa trên các thành phần chính của Adempiere là window, workflow, process và các mô tả chức năng của bài toán.

4.1.5.1 Xây dựng window cho quản lý hợp đồng mua

Tạo bảng VTT_BuyingContract trong cơ sở dữ liệu với các trường thông tin như mô tả ở phần yêu cầu chức năng.

Sử dụng chức năng Table & Column để tạo bảng VTT_BuyingContract trong Adempiere:

Hình 10. Tạo bảng VTT_BuyingContract

Sau khi điền các thông tin cần thiết ta nhấn nút Create Column From Table để lấy các trường có trong bảng VTT_BuyingContract trong cơ sở dữ liệu. Tiếp đó, ta dùng tab Column để lấy các trường muốn hiển thị.

Sử dụng chức năng Window, Tab & Field để tạo mới cửa sổ VTT Buying Contract:

Hình 11. Tạo cửa sổ “VTT Buying Contract”

Hình 12. Tạo tab VTT Buying Contract

Hình 13. Tạo tab Payment Progress

Hình 14. Tạo tab Supplying Product

Tab này sẽ hiển thị các thông tin về sản phẩm.

Sau khi tạo xong window VTT Buying Contract ta chạy file GenerateModel.java trong gói org.adempiere.util để tạo lớp I, lớp X cho window vừa mới tạo.

4.1.5.2 Gắn vào menu

Hình 15. Tạo Menu “VTT Buying Contract” 4.1.5.3 Tạo workflow cho chức năng quản lý hợp đồng mua

Đăng nhập vào Adempiere với tài khoản là SuperUser và Role là VTT admin.

Tạo mới các role để xử lý workflow bằng việc sử dụng chức năng Role để tạo mới các role sau: VTT Investment Dept Staff, VTT Financial Dept Staff, VTT Investment Dept Chief, VTT Financial Dept Chief .

Hình 16. Tạo mới các role xử lý workflow

Sử dụng chức năng Workflow để tạo mới workflow cho chức năng quản lý hợp đồng mua

Hình 17. Tạo workflow “Buying Contract”

Tạo mới các node cho workflow: + Node Start

Hình 18. Tạo node Start workflow “VTT Buying Contract”

Node Start sẽ khởi đầu cho một workflow + Node Prepare

Hình 19. Tạo node Prepare workflow “VTT Buying Contract”

Node Prepare sẽ chuẩn bị thiết lập các thông tin cho document.

+ Node Approved (node này được gán cho role là trưởng phòng đầu tư- Investment Dept Chief)

Hình 20. Tạo node Approved workflow “VTT Buying Contract”

Hình 21. Tạo node Doc Complete workflow “VTT Buying Contract”

Node Doc Complete đánh dấu việc một document đã được điền đầy đủ thông tin. + Node Doc Auto

Hình 22. Tạo node Doc Auto workflow “VTT Buying Contract”

Hình 23. Tạo node Send Request workflow “VTT Buying Contract”

Node Send Request sẽ là node gửi các yêu cầu về việc cập nhật tiến độ thực hiện hay tiến độ thanh toán.

+ Node Update Payment Progress (node này được gán cho role phòng tài chính- Financial Dept Staff).

Hình 24. Tạo node Update Payment Progress

Node này có chức năng cập nhật thông tin về tiến độ thanh toán.

+ Node Update Performance Progress (node này được gán cho role Phòng đầu tư- Investment Dept Staff).

Hình 25. Tạo node Update Performance Progress workflow “VTT Buying Contract”

Node này có chức năng cập nhật tiến độ thực hiện.

Hình 26. Hiển thị workflow “VTT Buying Contract” 4.1.5.4 Gắn workflow với Process

- Sử dụng chức năng quản lý Report&Process để tạo ra một process cho workflow

Buying Contract và gắn workflow vào.

o Name: Buying Contract Process

o Data Access level: chọn all.

o Report type: Standard.

o Workflow: Chọn Buying Contract

Hình 27. Tạo Process cho workflow “VTT Buying Contract”

- Sử dụng chức năng Quản lý Table, Column and Field để gắn process vào trường DocAction

o Reference: Button.

o Process: Chọn Buying Contract Process

o Reference Key: _DocumentAction

o Default Logic: CO

o Updateable: Tích chọn

Hình 28. Gắn process “Buying Contract Process” vào trường Doc Action

4.2 Phân tích và triển khai bài toán quản lý hợp đồng bán trên Adempiere 4.2.1 Mô tả quy trình xử lý 4.2.1 Mô tả quy trình xử lý

4.2.1.1 Quy trình xử lý

Quy trình xử lý bài toán quản lý hợp đồng bán được mô tả như dưới đây (Tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4]):

Hình 29. Mô tả quy trình quản lý hợp đồng bán [4] 4.2.1.2 Mô tả các bước trong quy trình

Theo tài liệu đặc tả yêu cầu người dùng dự án ERP-VTT [4] quy trình xử lý của bài toán quản lý hợp đồng bán qua các bước:

- Bước 1: Đơn vị, phòng ban có nhu cầu lập hợp đồng.

- Bước 2: Phòng Đầu tư kiểm tra hợp đồng. Nếu đồng ý thì chuyển qua phòng Tài chính, nếu không đề nghị sửa.

- Bước 3: Phòng Tài chính kiểm tra hợp đồng. Nếu đồng ý thì chuyển lên Ban giám đốc, nếu không đề nghị sửa.

- 4: Sau khi được Ban giám đốc phê duyệt, phòng Đầu tư cập nhật tiến độ thực hiện hợp đồng, đơn vị phòng ban và Phòng đầu tư thực hiện việc xuất kho.

- 5: Phòng tài chính theo dõi và cập nhật tiến độ thanh toán của hợp đồng.

4.2.2 Mô tả Use Case mức cao

Mô hình Use Case mức cao của quy trình quản lý hợp đồng bán được mô trong tài liệu đặc tả yêu cầu người dùng của dự án ERP-VTT [4] như hình 30.

Hình 30. Mô hình Use Case mức cao-Quản lý hợp đồng bán [4]

Mô hình Use Case của Quản lý hợp đồng bán có ba tác nhân (actor) là: Đơn vị sử dụng, Phòng Đầu tư, Phòng Tài chính.

- Khi một Đơn vị sử dụng có nhu cầu, hệ thống sẽ lập một hợp đồng bán theo các yêu cầu mà Đơn vị sử dụng đưa ra.

- Khi phòng Đầu tư muốn cập nhật thông tin của hợp đồng bán, hệ thống sẽ phải hiển thị các thông tin về tiến độ thực hiện của hợp đồng, thông tin của việc xuất kho và cho phép phòng Đầu tư có thể thực hiện việc cập nhật.

- Khi phòng Tài chính muốn cập nhật thông tin của hợp đồng bán, hệ thống sẽ phải hiển thị các thông tin về tiến độ thanh toán của hợp đồng và cho phép phòng Tài chính có thể thực hiện việc cập nhật.

- Trong quá trình thực hiện hợp đồng, Đơn vị sử dụng cũng thường xuyên thực hiện việc xuất kho, hệ thống phải theo dõi và cập nhật được thông tin này để cung cấp cho phòng Đầu tư và Đơn vị sử dụng khi cần.

4.2.3 Biểu đồ phân rã chức năng

Hình 31. Biểu đồ phân rã chức năng-Quản lý hợp đồng bán

Phân hệ quản lý hợp đồng bán gồm có ba chức năng chính là: - Quản lý thông tin chung về hợp đồng

- Quản lý thông tin về tiến độ thực hiện hợp đồng

- Quản lý thông tin về tiến độ thanh toán

Mỗi chức năng sẽ được gán cho một role riêng:

- Chức năng quản lý thông tin chung về hợp đồng được gán cho Đơn vị sử dụng.

- Chức năng quản lý thông tin về tiến độ thực hiện hợp đồng được gán cho phòng Đầu tư.

- Chức năng quản lý thông tin về tiến độ thanh toán được gán cho phòng Tài chính.

Quản lý hợp đồng bán

Thông tin chung về hợp đồng

Thông tin về tiến độ thực hiện hợp đồng

Thông tin về tiến độ thanh toán

4.1.4 Mô hình ER

Hình 32. Mô hình ER-Quản lý hợp đồng bán

Các thực thể cùng các thuộc tính trong mô hình:

- Hợp đồng: CONTRACT_ID, DEPARTMENT_ID, BPARTNER_ID, DATE, CREATBY, TOTALAMOUNT, CURRENCY.

- Đơn vị sử dụng: DEPARTMENT_ID, EMPLOYEE_ID. Ban giám đốc Hợp đồng Phòng tài chính Phòng đầu tư Đơn vị sử dụng Kho Kiểm tra Phê duyệt Y/C xuất Y/C xuất Cập nhật thực hiện Khởi tạo Cập nhật thanh toán Kiểm tra (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,1) (1,1) (1,1) (1,n) (1,1) (1,n) (1,n) (1,1) (1,1) (1,n) DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID DEPARTMENT_ID EMPLOYEE_ID CONTRACT_ID BPARTNER_ID DEPARTMENT_ID DATE CREATBY TOTALAMOUNT CURRENCY

- Phòng đầu tư: DEPARTMENT_ID, EMPLOYEE_ID.

- Phòng tài chính: DEPARTMENT_ID, EMPLOYEE_ID.

- Ban giám đốc: DEPARTMENT_ID, EMPLOYEE_ID.

- Kho: DEPARTMENT_ID, EMPLOYEE_ID.

4.2.5 Triển khai trên Adempiere

Việc triển khai chức năng quản lý hợp đồng bán hoàn toàn tương tự như phần triển khai với chức năng quản lý hợp đồng mua với việc xuất phát từ bảng VTT_SellingContracct trong cơ sở dữ liệu.

4.3 Đánh giá hiệu quả làm việc của hệ thống

Qua quá trình chạy thử, kết quả là các chức năng như lập hợp đồng, cập nhật tiến độ thực hiện, cập nhật tiến độ thanh toán đã thỏa mãn được những yêu cầu ban đầu đề ra.

Trong thực nghiệm, hệ thống đã có thể hỗ trợ hàng chục người sử dụng cùng một lúc. Tuy nhiên, do cơ sở dữ liệu là tương đối lớn (vì phải xây dựng cơ sở dữ liệu chung cho cả doanh nghiệp) cho nên việc kết nối cơ sở dữ liệu là hơi mất thời gian.

Đồng thời trong quá trình thử nghiệm đã cho thấy dữ liệu luôn đạt được sự đồng nhất mặc dù đã có nhiều người dùng thuộc nhiều phòng ban cùng tác động lên dữ liệu.

Với tính năng workflow, các hoạt động mua/bán của doanh nghiệp đều đã được thực hiện theo đúng các quy trình nghiệp vụ với thời gian thực hiện được rút ngắn, các bước thực hiện đều được gán với vai trò của mỗi nhân viên, phòng ban nhất định nên việc kiểm soát trách nhiệm là đơn giản.

Kết Luận

Nhu cầu về việc triển khai ERP trong các doanh nghiệp ngày càng cần thiết, trong đó việc xây dựng module Quản lý hợp đồng là một phần quan trọng trong tổng thể hệ thống ERP chịu ảnh hưởng riêng bởi đặc trưng sản xuất kinh doanh của từng doanh nghiệp.

Khóa luận này đã giúp chúng ta tiếp cận gần hơn với một hệ thống ERP, thực hiện việc xây dựng và triển khai phân hệ Quản lý hợp đồng trong thực tế.

Khóa luận đã đạt được những kết quả sau:

- Tìm hiểu được vai trò, ý nghĩa của ERP trong doanh nghiệp.

- Tìm hiểu được một giải pháp ERP trong thực tế là Adempiere.

- Xây đựng và triển khai được ứng dụng về quản lý hợp đồng trên hệ nguồn mở Adempiere trong thực tế.

Do thời gian và kiến thức hạn chế của tác giả nên khóa luận không khỏi có những thiếu sót. Những thiếu sót này cần được bổ sung và tiếp tục hoàn thiện.

Phụ lục 01: Các trạng thái và hành động cho một document.

/* Complete = CO */

public staticfinal String ACTION_Complete = "CO";

/* Wait Complete = WC */

public staticfinal String ACTION_WaitComplete = "WC";

/* Approve = AP */

public staticfinal String ACTION_Approve = "AP";

/* Reject = RJ */

public staticfinal String ACTION_Reject = "RJ";

/* Post = PO */

public staticfinal String ACTION_Post = "PO";

/* Void = VO */

public staticfinal String ACTION_Void = "VO";

/* Close = CL */

public staticfinal String ACTION_Close = "CL";

/* Reverse - Correct = RC */

public staticfinal String ACTION_Reverse_Correct = "RC";

/* Reverse - Accrual = RA */

public staticfinal String ACTION_Reverse_Accrual = "RA";

/* ReActivate = RE */

public staticfinal String ACTION_ReActivate = "RE";

/* <None> = -- */

public staticfinal String ACTION_None = "--";

/* Prepare = PR */

/* Unlock = XL */

public staticfinal String ACTION_Unlock = "XL";

/* Invalidate = IN */

public staticfinal String ACTION_Invalidate = "IN";

/* ReOpen = OP */

public staticfinal String ACTION_ReOpen = "OP";

/* Drafted = DR */

public staticfinal String STATUS_Drafted = "DR";

/* Completed = CO */

public staticfinal String STATUS_Completed = "CO";

/* Approved = AP */

public staticfinal String STATUS_Approved = "AP";

/* Invalid = IN */

public staticfinal String STATUS_Invalid = "IN";

/* Not Approved = NA */

public staticfinal String STATUS_NotApproved = "NA";

/* Voided = VO */

public staticfinal String STATUS_Voided = "VO";

Một phần của tài liệu LUẬN VĂN: ỨNG DỤNG ERP ADEMPIERE TRONG QUẢN LÝ HỢP ĐỒNG DOC (Trang 33 -67 )

×