Báo cáo tốt nghiệp về vấn đền Triển khai phần mềm quản lý quan hệ khách hàng cho một doanh nghiệp cụ thế dựa trên phần mềm mã nguồn mở sugarCRM
Trang 1MỤC LỤC Page 1
MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGARCRM 9
1.1 Kiến trúc SugarCRM 9
1.2 Tùy biến trong SugarCRM 14
CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU 31
2.1 Giới thiệu công ty RED 31
2.2 Mô tả bài toán 31
2.3 Các yêu cầu cho hệ thống CRM của công ty Red 32
2.4 Qui trình hoạt động 34
2.5 Lược đồ Usecase 36
2.5.1 Usecase của Actor Nhân Viên 37
2.5.2 Usecase của Actor Nhân Sự 38
2.5.3 Usecase của Actor Kế Toán 39
2.5.4 Usecase của Actor Manager: 40
2.6 Phân tích yêu cầu về cơ sở dữ liệu 41
2.6.1 Các thuộc tính của Account 42
2.6.2 Các thuộc tính của Revenues actual 43
2.6.3 Các thuộc tính của Revenues Estimation 44
2.6.4 Các thuộc tính của Production Cost Esmation 45
2.6.5 Các thuộc tính của Production Cost Actual 46
2.6.6 Các thuộc tính của Manpower Cost 47
2.6.7 Các thuộc tính của User 47
2.6.8 Các thuộc tính của Timesheets 48
2.6.9 Các thuộc tính của Leaving 50
2.6.10 Các thuộc tính của Salary 51
2.6.11 Các thuộc tính của Project 53
2.7 Các mẫu Report tham khảo 54
2.7.1 Mẫu Report Project Cost Estimate 54
2.7.2 Mẫu Report Project Cost Actual (CR) 55
Trang 2MỤC LỤC Page 2
2.7.3 Mẫu Report Project Cost Actual (MA) 56
2.7.4 Mẫu Report Profit And Loss (CR) 57
2.7.5 Mẫu Report Profit And Loss (MA) 57
2.7.6 Mẫu Report Revenue 57
2.7.7 Mẫu Report Timesheet (%) 58
2.7.8 Mẫu Report Timesheet 59
2.8 Khảo sát hệ thống server đang hoạt động của Red 60
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG 61
3.1 Module Account 62
3.2 Module ManPower Cost 63
3.3 Module Production cost actual 64
3.4 Module Production cost estimation 64
3.5 Module Projects 64
3.6 Module Revenues Estimation 65
3.7 Module Revenues Actual 65
3.8 Module Salary 66
3.9 Module Timesheets 67
3.10 Module Leaving 67
3.11 Module PublicDays 68
3.12 Module Report 68
3.12.1 Report Estimate Cost 69
3.12.2 Report Actual Cost (MA) 69
3.12.3 Report Actual Cost (CR) 70
3.12.4 Report Profit And Loss (CR) 71
3.12.5 Report Profit And Loss (MA) 71
3.12.6 Report Revenues Projection 72
3.12.7 Report timesheet 72
3.12.8 Report Timesheets (%) 74
CHƯƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED 75
4.1 Module Account 75
4.2 Module Projects 76
Trang 3MỤC LỤC Page 3
4.3 Module timesheets 81
4.4 Module Teams 84
4.5 Module salary 86
4.6 Module report 89
4.6.1 Report estimate cost 91
4.6.2 Report actual cost 95
4.7 Module Manpower Cost 100
4.8 Đánh giá hệ thống 101
KẾT LUẬN 104
TÀI LIỆU THAM KHẢO 105
PHỤ LỤC 1 106
PHỤ LỤC 2 113
Trang 4MỤC LỤC HÌNH ẢNH Page 4
MỤC LỤC HÌNH ẢNH
Hình 1: Các module trong SugarCRM 10
Hình 2: Cấu trúc các thư mục con của một thư mục gốc 12
Hình 3: Các công cụ trong Developer Tools 14
Hình 4: Công cụ Repair trong System 15
Hình 5: Tạo relationship trong công cụ studio 23
Hình 6: các quan hệ giữa các module với nhau 23
Hình 7: Cấu trúc code của file logic hook 25
Hình 8: Qui trình hoạt động tìm kiếm khách hàng và lập dự án 35
Hình 9: Lược đồ Uscae tổng thể 36
Hình 10: Lược đồ Usecase của Actor Nhân Viên 37
Hình 11: Lược đồ Usecase của Actor Nhân Sự 38
Hình 12: Lược đồ Uscase của Actor Kế Toán 39
Hình 13: Lược đồ Usecase cho Actor Manager (người quản lý) 40
Hình 14: Mô hình ERD tổng thể 41
Hình 15: Các thuộc tính của thực thể Account 42
Hình 16: Các thuộc tính của thực thể revenues actual 43
Hình 17: Các thuộc tính của thực thể Revenues Estimation 44
Hình 18: Các thuộc tính của thực thể Production Cost Estiamtion 45
Hình 19: Các thuộc tính của thực thể Production Cost Actual 46
Hình 20: Các thuộc tính của thực thể Manpower Cost 47
Hình 21: Các thuộc tính của thực thể Users 48
Hình 22: Các thuộc tính của thực thể Timesheets 49
Hình 23: Các thuộc tính của thực thể Leaving 50
Hình 24: Các thuộc tính của thực thể Salary 52
Hình 25: Các thuộc tính của thực thể Project 53
Hình 26: WorkFlow của hệ thống Red online timesheet (Red CRM) 62
Hình 27: Giao diện màn hình listview của module Account 62
Hình 28: Giao diện màn hình editview của module Account 63
Hình 29: Giao diện tạo mới Manpower Cost 63
Hình 30: Giao diện tạo mới Prduction cost actual 64
Hình 31: Giao diện tạo mới Production cost Estimation 64
Hình 32: Giao diện mới mới Projects 65
Hình 33: Giao diện tạo mới Revenues Estimation 65
Hình 34: Giao diện tạo mới Revenues Actual 66
Hình 35: Giao diện tạo mới Salary 66
Trang 5MỤC LỤC HÌNH ẢNH Page 5
Hình 36: Giao diện khi nhập Timesheets 67
Hình 37: Giao diện khi nhập Leaving 67
Hình 38: Giao diện khi tạo mới Publicdays 68
Hình 39: Giao diện các Report trong hệ thống 68
Hình 40: Giao diện Report Estiamte Cost 69
Hình 41: Giao diện Report Actual Cost (MA) 70
Hình 42: Giao diện Report Actual Cost (CR) 70
Hình 43: Giao diện Report Profit And Loss (CR) 71
Hình 44: Giao diện Report Profit And Loss (MA) 72
Hình 45: Giao diện Report Revenues Projection 72
Hình 46: Giao diện Report Timesheet đƣợc lọc theo dự án 73
Hình 47: Giao diện Report Timesheet đƣợc lọc theo nhân viên 73
Hình 48: Giao diện Report Tímesheet (%) 74
Hình 49: Màn hình đ ng nhập vào hệ thống 75
Hình 50: Màn hình edit account 76
Hình 51: Màn hình tạo mới Project 79
Hình 52: Màn hình chi tiết các thông tin liên quan đến Project 80
Hình 53: Màn hình Timesheets 84
Hình 54: Màn hình nhập team và xem các user đƣợc thêm vào team 86
Hình 55: Màn hình Salary 89
Hình 56: Màn hình danh sách các report 91
Hình 57: Màn hình Report estimate cost 94
Hình 58: Màn hình Report Actual cost 99
Trang 6MỤC LỤC BẢNG Page 6
MỤC LỤC BẢNG
Bảng 1: Tạo mới một package trong SugarCRM 16
Bảng 2: Tạo mới một module trong SugarCRM 17
Bảng 3: Tùy chỉnh module bằng công cụ Studio trong module builder 21
Bảng 4: Deloy module để đƣa vào sử dụng trong hệ thống SugarCRM 22
Bảng 5: danh sách các tính n ng cần quản lý cho công ty Red 34
Bảng 6: Mẫu Report Project Cost Estimation 54
Bảng 7: Mẫu Report Project Cost Actual (CR) 55
Bảng 8: Mẫu Report Project Cost Actual (MA) 56
Bảng 9: Mẫu Report Profit And Loss (CR) 57
Bảng 10: Mẫu Report Profit And Loss (MA) 57
Bảng 11: Mẫu Report Revenues 57
Bảng 12: Mẫu Report Timesheet (%) 58
Bảng 13: Mẫu report Timesheet 59
Trang 7MỞ ĐẦU Page 7
MỞ ĐẦU
Cuộc cách mạng công nghệ thông tin ở thế kỷ 20 đã cho chúng ta thấy ảnh hưởng sâu sắc của công nghệ thông tin đến mọi lĩnh vực trong đời sống kinh tế, v n hóa, xã hội; đưa xã hội loài người chuyển mạnh từ xã hội công nghiệp sang xã hội thông tin, từ kinh tế công nghiệp sang kinh tế trí thức Nội dung cơ bản của cuộc cách mạng này là ứng dụng công nghệ cao, hiện đại với công nghệ thông tin và truyền thông (CNTT&TT) là phương tiện có ý nghĩa quyết định, với trí tuệ và sáng tạo là nguồn lực quốc gia quan trọng, phục vụ cho việc xây dựng và phát triển một
xã hội ngày càng tốt đẹp hơn Từ những thập kỉ cuối thế kỷ 20 CNTT&TT đã có những bước phát triển vũ bão và đã đem lại những thay đổi lớn lao cho cuộc sống nhân loại
CNTT, nhất là mạng Internet làm cho khoảng cách trên thế giới ngày càng trở nên nhỏ bé Tri thức và thông tin không biên giới sẽ đưa hoạt động kinh tế vượt
ra khỏi phạm vi quốc gia và trở thành hoạt động mang tính toàn cầu Trong mọi hoạt động kinh doanh, khách hàng luôn đóng vai trò trung tâm Và câu hỏi được đặt
ra làm sao để quản lý khách hàng được tốt? Làm sao để khách hàng hợp tác với công ty lâu dài hơn ? Làm sao để t ng lợi nhuận cho công ty ? Làm sao để t ng sự cộng tác giữa các nhân viên trong một công ty, một phòng ban ? Làm sao để bảo mật các thông tin nhạy cảm Phần mềm quản lí quan hệ khách hàng (CRM) ra đời nhằm để giải quyết các vấn đề trên
Mục tiêu và phạm vi khóa luận
Mục tiêu của khóa luận tốt nghiệp này chính là triển khai phần mềm quản lý quan hệ khách hàng cho một doanh nghiệp cụ thể dựa trên phần mềm mã nguồn mở SugarCRM
Cấu trúc khóa luận
Cấu trúc của khóa luận bao gồm các phần sau:
Phần mở đầu
Phần nội dung
Trang 8MỞ ĐẦU Page 8
Chương 1 giới thiệu nền tảng sugarcrm: các kiến thức cấn biết về cấu trúc thư mục của SugarCRM, các cách chỉnh sửa trong SugarCRM
Chương 2 thu thập và phân tích yêu cầu: giới thiệu về công ty red, các yêu cầu
về bài toán, lược đồ usecase, mô hình ERD cho phần mềm, các thuộc tính các lưu trữ dành riêng cho từng module
Chương 3 thiết kế hệ thống: Workflow cho hệ thống, thiết kế giao diện của từng module
Chương 4 xây dựng hệ thống thực tế cho Red: dựa vào những thiết kế ban đầu tiến hành xây dựng hệ thống thực tế
Phần kết luận: kết quả đạt được
Trang 9CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 9
CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGARCRM
1.1 Kiến trúc SugarCRM
SugarCRM là phần mềm mã nguồn mở sử dụng hệ điều hành LAMP (Linux, Apache,MySQL và PHP) Kể từ phiên bản 1.0, đội ngũ phát triển SugarCRM đã thêm nhiều hỗ trợ cho mỗi hệ thống hoạt động (bao gồm Windows, Unix và Mac OSX) mà trên những hệ thống đó sử dụng ngôn ngữ lập trình PHP chạy trên Microsoft IIS Web server, Microsoft SQL Server, và Oracle databases
Từ khi phát triển SugarCRM Open Source vào n m 2004, những nhân viên của SugarCRM đã thiết kế mã nguồn ứng dụng cho phép những nhà phát triển có thể tự kiểm tra và chỉnh sửa được Cơ sở ứng dụng Sugar có khuôn mẫu mở rộng rất phức tạp được xây dựng trên ứng dụng cho phép những nhà phát triển có thể có những thay đổi quan trọng trên ứng dụng theo cách thức tối ưu và theo từng kiểu riêng biệt SugarCRM được thiết kế để hỗ trọ tối đa cho những người sử dụng dù biết về code hay không biết về code php cũng có thể có những tùy biến trong hệ thống của SugarCRM để đáp ứng nhu cầu của người sử dụng Nếu người sử dụng không biết về code php có thể sử dụng công cụ developer trong màn hình admin để
có những thiết lập cần thiết
Các ứng dụng của SugarCRM được xây dựng dựa trên module framework, khi ứng dụng bắt đầu chạy sẽ gọi các entry point lên (mặc định sẽ gọi index.php hoặc soap.php)
Entry point chính của SugarCRM khi được gọi lên là index.php Có 3 thông
số chính trong việc gọi các entry point đó là:
Module: sẽ gọi đến module được truy cập
Action: gọi đến hành động được thực hiện khi gọi module
Recort: là id dùng để truy cập
Tất cả các module được tạo ra hoặc cài đặt thông qua module loader đều phải tồn tại trong đường dẫn <root><sugar/modules/tên module Dưới đây là cấu trúc các thư mục trong SugarCRM
Trang 10CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 10
H nh 1: Các module trong SugarCRM
Cache : Các thư mục cache khác nhau được viết cho thư mục hệ thống nhằm hạn chế những sự tiếp cận cơ sở dữ liệu và t ng tốc độ hiển thị nội dung vì khi load trang web lên nội dung sẽ được lấy trong bộ nhớ cache
Custom: Thư mục này đảm nhận việc tập trung lại các chỉnh sửa của những người phát triển, khi các nhà phát triển có những thay đổi trong Studio thì trong thư mục custom sẽ tự động sinh ra những code tương ứng với các thay đổi đó, nhà phát triển hoàn toàn có thể có những chỉnh sửa cần thiết cho hệ thống của mình bằng cách chỉnh sửa trong module custom này
Data: những files hệ thống quan trọng được lưu trữ tại đây, đáng chú ý nhất
là lớp cơ sở SugarBean nó kiểm soát trật tự ứng dụng mặc định cho mọi đối tượng trong Sugar
Trang 11CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 11
Include: Nhiều chức n ng có ích của Sugar được lưu trữ ở đây cũng như những hàm xử lý khác mà Sugar dùng như là một phần trong hoạt động của nó Đáng lưu ý nhất trong hướng dẫn này là file utils.php file nó chứa hầu hết các chức
n ng có lợi rộng rãi nhất được sử dụng
Metadata: Thư mục này chứa các mối quan hệ giữa các module với nhau Modules: Bao gồm tất cả các chức n ng trong hệ thống được hiển thị trên web Những chương trình chức n ng Custom được lắp đặt thông qua Module Loader cũng hiển thị ở đây, các thao tác của người phát triển đều có thể thực hiển ở thư mục Modules những như thế sẽ ảnh hưởng cho việc tập trung code và khó cho việc chỉnh sửa sau này
Đó là những module chính trong SugarCRM ngoài ra cũng còn có những module khác như : service, soap, themes…
Thông thường mỗi module đại diện cho một thực thể tương ứng trong mục đích kinh doanh, ví dụ như là module “contact” trong SugarCRM Một module bao gồm 3 phần chính đó là lược đồ dữ liệu, giao diện người dùng và chức n ng ứng dụng Dưới đây là cấu trúc thư mục của một module của SugarCRM :
Trang 12CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 12
H nh 2: Cấu trúc các thư mục con của một thư mục gốc
Dashlets: Sẽ là nơi chứa các mảng dùng để lưu trữ thông tin của module có thể hiện thị ở trang chủ, mặc định ở trang chủ trong SugarCRM sẽ hiển thị các thông tin chính của từng module Vì vậy nếu muốn hiển thị thông tin gì của module
ra ngoài màn hình trang chủ thì khai báo ở đây Mặc định của Dashlets sẽ lấy màn hình Listview làm màn làm dashlets
Language: Là thư mục chưa định nghĩa của các chuỗi hiển thị trong module
Vì SugarCRM là một phần mềm đa ngôn ngữ, nên tất các các nhãn của module sẽ được định nghĩa tại tại thư mục này để tiện lợi cho việc thay đổi ngôn ngữ mà không ảnh hưởng đến việc hiển thị các chuỗi hiển thị ra ngoài ứng dụng
Metadata: Thư mục này có nhiêm vụ lưu các file hiện thị của module bao gồm việc hiển thị các subpanel, màn hình listview, detailview, editview
Trang 13CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 13
Tpls: Thư mục này chưa các các dòng HTML đảm nhiệm việc hiển thị dữ liệu ra bên ngoài màn hình ứng dụng
Views: Cách thức hiển thị dữ liệu của SugarCRM được sử dụng bằng nhiều cách, và Views chính là thư mục để đảm nhiệm một trong các công việc đó, nơi nay
sẽ lưu các file php của màn hình editview,detailview hay là listview
Khi giới thiệu về các thành phần của module thường hay nhắc đến màn hình editview, detailview hay listview, các màn hình này sẽ đảm nhiệm những công việc
cụ thể cho việc hiển thị như sau:
ListView : Là màn hình sẽ hiển thị các danh sách các dữ liệu có trong module, màn hình sẽ hiển thị mặc định khi nhấp vào một module nào đó, trong màn hình này còn có các chức n ng như search
EditView: Là màn hình hiển thị ra các trường để hiển thị các trường dữ liệu hiện có của module để người sử dụng nhập vào
DetailView: Là màn hình hiển thị thông tin chi tiết dữ liệu đã được nhập và
đã được lưu xuống cơ sở dữ liệu
Bên cạnh các thư mục chính trên SugarCRM còn bao gồm những tâp tin bổ sung như sau:
Form.php: Tập tin này có chức n ng làm cho Javascript xác nhận các hành động chỉnh sửa khi người sử dụng có những thay đổi
Menu.php: Tập tin này làm nhiệm vụ hiển thị ra các phím tắt menu, được hiển thị ở bên trái phía trên của màn hình sử dụng, mỗi menu này sẽ liên kết với màn hình listview, hay editview tùy theo từng trường hợp sử dụng
Vadefs.php: Tập tin này sẽ định nghĩa các trường dữ liệu của module, các trường dữ liệu có thể được định nghĩa để lưu xuống database hoặc không cho lưu xuống database Ngoài ra các mối quan hệ giữa module và module cũng có thể được định nghĩa ở đây ( ở các module có thể có các mối quan hệ như là: 1-n, n-n,1-1)
SugarBean.php: Tập tin này nằm dưới thư mục '<sugar root> / dữ liệu chứa các lớp cơ sở SugarBean đều được sử dụng Bất kỳ module đọc, viết hoặc hiển thị
Trang 14CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 14
các dữ liệu sẽ mở rộng lớp này SugarBean thực hiện tất cả các nâng nặng cho dữ liệu tương tác, xử lý mối quan hệ,
SugarCRM được phát triển để giúp các người sử dụng dù không biết về code PHP vẫn có thể có những chỉnh sửa về giao diện hoặc viết thêm các module đơn giản để đáp ứng các yêu cầu của người sử dụng Phần này sẽ giải thích các cách khác nhau để tùy chỉnh SugarCRM
Cấu trúc các thư mục trong SugarCRM được tạo ra để giúp thực hiện các tuỳ biến các module hiện tại hoặc tạo ra các module hoàn toàn mới Thông qua các thành phần khác nhau các người sử dụng có thể mở rộng các chức n ng của SugarCRM một cách hiệu quả Với Module Builder và các công cụ Studio, có sẵn
từ trang chủ admin, cho phép người sử dụng có thể thực hiện các tùy chỉnh phổ biến Ngoài ra người sử dụng có thể tiếp tục mở rộng phát triển hệ thống bằng cách thêm các đoạn code PHP tùy ý trong các file của thư mục Custom
1.2.1 Tùy biến trong SugarCRM sử dụng công cụ developer
Các tùy chỉnh phổ biến được thực hiện với các bộ công cụ phát triển được cung cấp trong màn hình quản trị của SugarCRM Những công cụ này bao gồm:
H nh 3: Các công cụ trong Developer Tools
Studio - Chỉnh sửa Dropdowns, Fields, Layouts và Nhãn
Module Builder - Xây dựng các module mới để mở rộng các chức n ng của SugarCRM
Module Loader - Thêm hoặc loại bỏ các module SugarCRM, chủ đề, và các gói ngôn ngữ
Trang 15CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 15
Dropdown Editor - Thêm, xóa, hoặc thay đổi danh sách thả xuống trong ứng dụng
Rename Tabs - Thay đổi nhãn của các tab module
Display Tabs Module và Subpanels - Chọn tab module và bảng để hiển thị trong ứng dụng
Configure Grouped modules - Tạo, chỉnh sửa và gom nhóm các module trong SugarCRM
Bởi vì SugarCRM là một ứng dụng mã nguồn mở, người sử dụng có thể truy cập vào code Nhưng những tùy chỉnh code của người sử dụng thực hiện trong các tập tin cốt lõi cần phải được repair lại cho đồng nhất với các thư mục khác để tránh xảy ra xung đột
H nh 4: Công cụ Repair trong System
Các bước để tạo mới 1 module trong SugarCRM dựa trên các công cụ có sẵn trong trang chủ của Admin Trong SugarCRM mỗi bảng dữ liệu đều ứng với mỗi module được đặt tên tương ứng, ngoài ra SugarCRM còn hỗ trợ cho việc tạo các mối quan hệ giữa các module với nhau thông qua công cụ studio Dưới đây là các hình ảnh cũng như thao tác minh họa cho việc tạo mới các module và thiết lập các mối quan hệ giữa các module với nhau
Bước 1: Tạo mới package (package là một gói có thể chưa một hoặc nhiều module)
Trang 16CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 16
1 Tạo mới package
Màn hình tạo mới package
Bảng 1: Tạo mới một package trong SugarCRM
Để có thể tạo mới được một module trong hệ thống thì trước hết cần phải tạo
ra các package đứa chưa các module cần tạo mới, module builder giúp tạo các gói package và xuất ra file Zip để người sử dụng có thể dễ dàng cài đặt và di chuyển khi
có những thay đổi trong SugarCRM
Bước tiếp theo sau khi tạo mới package là người sử dụng tạo các module mới cũng như thiết lập các fields, các mối quan hê, các nhãn…
Trang 17CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 17
Bước 2: Tạo mới module
2 Tạo mới module
Màn hình tạo mới module
Bảng 2: Tạo mới một module trong SugarCRM
N m trong số sáu mẫu đối tượng có chứa các chức n ng CRM được xây dựng trước đối với từng trường hợp sử dụng CRM Những đối tượng này là:
“basic”, “company”, “file”, “issue”, “person”, and “sale” Mẫu “basic” cung cấp các field như: tên, được chỉ định để, ngày tạo, và mô tả Phần còn lại của các mẫu này có chứa các lĩnh vực để mô tả các thực thể tương tự lần lượt là “Accounts”,
Trang 18CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 18
“Documents, “Cases”, “Contacts”, và “Opportunities” Vì vậy, để tạo ra một Module để theo dõi các loại tài khoản, người sử dụng nên chọn mẫu
“Company” Tương tự như vậy, để theo dõi các tương tác của con người, người sử dụng nên chọn “People” Người sử dụng dựa trên mục đích của mình để tạo chọn các mẫu có sẵn trong module Builder Nếu người sử dụng muốn tạo mới module mới với các field cơ bản thì nên chọn mẫu “basic”
Khi đã tạo mới module và chọn các mẫu mặc định, người sử dụng tiến hành tạo mới các field và các nhãn cho các field đó
Bước 3: Dùng studio trong module builder để tiến hành các chỉnh sửa
Trang 19CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 19
từ bên cửa sổ Toolbox
sang cửa sổ Layout và
ngược lại
- Sau khi thiết kế
giao diện Edit ta
giao diện hiển
thị chi tiết của
Trang 20CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 20
những Fields(đã add) từ
bên cửa sổ Toolbox
sang cửa sổ Layout và
- Sau khi thiết kế
giao diện Detail
từ bên cửa sổ Hidden
sang cửa sổ Available
và ngược lại
- Sau khi thiết kế
Trang 21CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 21
giao diện List ta
từ bên cửa sổ Hidden
sang cửa sổ Default và
Bảng 3: Tùy chỉnh module bằng công cụ Studio trong module builder
Với các thao tác trên người sử dụng có thể thiết lập các màn hình edit view, detail view, list view, quick create trong phần layout
Edit view: là màn hình tạo mới hoặc chỉnh sửa thông tin khi người dùng bấm vào button edit hay create của module đó
Trang 22CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 22
Detail view: là màn hình xem chi tiết các thông tin
List view: là màn hình danh sách các thông tin của module, cũng là màn hình mặc định khi chọn vào mỗi module
Quick create: là màn hình tạo mới các thông tin cần thiết của mỗi module Trong module builder còn hỗ trợ cho việc tạo giao diện cho các dashlet, popup view, search và các subpanel
Trang 23CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 23
Sau khi packages mới được published, người sử dụng có thể xác nhận packages này vào hệ thống của Sugar thông qua module Loader người sử dụng sẽ upload file Zip vừa được publish
Đó là các bước cơ bản để tạo mới một module đưa vào hệ thống Sau khi đưa module mới vào hệ thống nếu người sử dụng có những thay đổi, cũng như muốn xây dựng các mối quan hệ giữa module mới tạo với các module cũ trong hệ thống,
có thể vào phần Studio trong trang của Admin để tiến hành các chỉnh sửa
H nh 5: Tạo relationship trong công cụ studio
Trong phần Studio này người sử dụng có thể tạo các mối quan hệ, cũng như thay đổi lại các nhãn cho các module, người sử dụng có thể tạo các quan hệ: 1-1, 1-
n, n-n trực tiếp thông qua công cụ này
H nh 6: các quan hệ giữa các module với nhau
Trang 24CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 24
Đó chính các các bước để người sử dụng có thể tạo mới một module đơn giản, và tạo các quan hệ giữa các module trong hệ thống mà không cần hiểu biết nhiều code PHP Tuy nhiên nếu muốn mở rộng các ứng dụng của hệ thống cần có những hiểu biết về cấu trúc của từng thư mục thì mới có chỉnh sửa sâu vào hệ thống Dưới đây là phần giới thiệu về chức n ng của từng thư mục
Thư mục Custom: Hệ thống của Sugar có chứa 1 thư mục gọi là “custom” Thư mục này chữa đựng các file Metadata và code để mở rộng các chức n ng của Sugar Một số file trong thư mục này được tự động tạo ra nhờ Module Builder, Studio, và Workflow tools (Chỉ có ở Sugar Professional và Sugar enterprise) và các file còn lại có thể được thêm vào hoặc chỉnh sửa trực tiếp tuy vào người sử dụng Các file trong thư mục Custom bao gồm:
Vardefs : file này được dùng để định nghĩa các trường thuộc tính cho một module nào đó Các vardefs có sẵn có thể được chỉnh sửa và ta có thể tạo ra các vardefs mới bằng cách thay đổi các file vardefs trong thư mục custom Người sử dụng nếu muốn chỉnh sữa hoặc thêm vào các file mới trong các thư mục này này:
/custom/Extension/modules/<MODULE_NAME>/Ext/Vardefs/
Tuy nhiên cũng lưu ý đối với các file trong các thư mục
/custom/modules/<MODULE_NAME>/Ext/Vardefs/vardefs.ext.php được tự động tạo ra bởi hệ thống và không nên chỉnh sửa Các file Vardefs có thể thay thế toàn bộ các định nghĩa của các field hoặc chỉ thêm vào Nên repair lại để các field được đồng nhất với nhau (Admin->Repair->Quick Repair and Rebuild)
Languages: Người sử dụng có thể ghi đè lên các chuỗi hiển thị bằng một ngôn ngữ nào đó hoặc tạo ra các chuỗi hoàn toàn mới bằng các chỉnh sửa trong các thư mục
/custom/include/language/ (for $app_strings or $app_list_strings)
/custom/Extension/application/Ext/Include/
/custom/Extension/modules/<MODULE_NAME>/Ext/Language/ (for
$mod_strings only)
Trang 25CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 25
1.2.2 Tùy biến trong SugarCRM bằng code
Trong khi lợi ích chính của module builder là người quản trị có thể tạo một module hoàn toàn mới mà không phải viết code, tuy nhiên vẫn còn một vài công việc cần phải viết bằng code PHP, lấy ví dụ như là : chỉnh sửa các quan hệ hoặc các dịch vụ liên quan đến Web Serivce Có một trong hai phương pháp có thể là được điều này tạoLogic Hook và chỉnh sửa Bean Files
1.2.2.1 Tùy biến logic hook
Logic hook là việc quản lý các sự kiện trong SugarCRM, các sự kiện có thể gọi được các action trong hệ thống ví dụ:
H nh 7: Cấu trúc code của file logic hook
Logic Hook bằng cách viết code PHP chứa các quản lý các sự kiện hiện có ở trong Sugar, để thực hiện điều này người phát triển phải custom code sau đó thêm vào file manifest trong package “Media Inquiry” Một vài code mẫu bằng cách dùng logic hook.Ví dụ này thêm một time stamp vào file Media Inquiry mỗi khi dữ liệu được lưu trữ
Đầu tiên, tạo file AddTimeStamp.php với nội dung như sau:
<?php
//prevents directly accessing this file from a web browser
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class AddTimeStamp {
function StampIt(& $focus, $event){
Trang 26CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 26
// Do not store anything in this file that is not part of the array or the
hookversion This file will
// be automatically rebuilt in the future
$hook_version = 1;
$hook_array = Array();
// position, file, function
$hook_array['before_save'] = Array();
$hook_array['before_save'][] = Array(1, 'custom',
'custom/modules/Media/AddTimeStamp.php ','AddTimeStamp', 'StampIt');
Logic hook của người phát triển cũng sẽ định nghĩa array
$hook_array $hook_array là một array hai chiều:
name : tên của event người phát triển đang hooking custom logic
Trang 27CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 27
array : một array có chứa các tham số cần thiết để (fire) chạy hook
Một quy trình kỹ thuật tốt nhất là cho mỗi entry (đầu vào) trong array cao cấp nhất được định nghĩa trên một single line (dòng đơn nhất/ dòng thống nhất) để dễ dàng
tự động thay thế file này Ngoài ra, logic_hooks.php cũng nên chỉ chứa các định nghĩa hook, bởi vì tính logic thực sự được định nghĩa ở bất kỳ nơi nào
Lấy ví dụ:
Các hooks được tiến hành theo trật tự khi chúng được thêm vào array Chiều đầu
tiên là chỉ đơn giản là thao tác hiện tại, lấy ví dụ before_save Các hooks sau đây
Chạy sau khi một record đã được lấy ra từ cơ sở dữ liệu (database) Hook này
không chạy, khi người phát triển tạo một record mới
before_save
Trang 28CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 28
Chạy trước khi một record được lưu
Bây giờ thêm hai file ở trên vào file zip Media Inquiries mà người phát triển đã lưu trữ trước đó Tạo ra một đường dẫn có tên là “SugarModules/custom/” trong file
zip và thêm hai file trên vào đường dẫn đó, sau đó chỉnh sửa file manifest.php vào file zip để bao gồm định nghĩa sau trong $install_defs['copy'] array
array (
'from' => '<basepath>/SugarModules/custom',
'to' => 'custom/modules/jsche_Media',
),
1.2.2.2 Tùy biến thư mục vadefs
Ý nghĩa của các biến trong SugarCRM:
id - Một id duy nhất cho module
language - Một mảng trong đó chứa chi tiết các file ngôn ngữ riêng lẻ cho
Module của người phát triển Patch nguồn, file đích, và tên language pack phải được quy định cho mỗi file language
layoutdefs - Một mảng trong đó chi tiết các file layoutdef riêng lẻ, được sử
dụng chủ yếu để thiết lập các subpanels trong các Module khác Các patch nguồn và Module đích phải được quy định cho mỗi file layoutdef
layoutfields - Một mảng trong đó chi tiết các fields custom được thêm vào
các layout hiện có Các fields sẽ được thêm vào các views edit và detail của Module
vardefs - Một mảng trong đó chi tiết các files vardef riêng lẻ, được sử dụng
chủ yếu để xác định các fields và các mối quan hệ phi nhiều-nhiều (non many) trong các Module khác Các patch nguồn và module đích phải được quy định cho mỗi file vardef
many-to-menu - Một mảng trong đó chi tiết các file many-to-menu cho module mới của người
phát triển Một patch nguồn và module đích phải được quy định cho mỗi file menu
beans - Một mảng trong đó quy định cụ thể các file bean cho module mới
của người phát triển
Trang 29CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 29
class: tên class cơ sở Module
patch: patch (đường dẫn) đến file Bean của người phát triển nơi mà các class
ở trên được định nghĩa
tab: Những kiểm soát liệu Module mới của người phát triển có nên hay
không nên xuất hiện như một tab
relationships - Một mảng trong đó chi tiết các file quan hệ, được sử dụng để
liên kết các Module mới của người phát triển với các module hiện có Một patch metadata phải được quy định cho mỗi mối quan hệ
custom_fields - Một mảng trong đó chi tiết các field custom để được cài đặt
cho Module mới của người phát triển
name: tên nội bộ field custom của người phát triển Lưu ý rằng field custom
của người phát triển sẽ được gọi là <name> _c, như là "_c" chỉ dẫn một field custom
label: Nhãn có thể nhìn thấy field custom của người phát triển
type: loại của field custom Các giá trị được chấp nhận bao gồm text,
textarea, double, float, int, date, bool, enum, và relate
max_size: Kích cỡ lưu trữ đặc tính tối đa lưu trữ của field custom
require_option: Được sử dụng để đánh dấu các field custom hoặc theo yêu cầu hoặc
là tùy chọn Giá trị được chấp nhận bao gồm tùy chọn và theo yêu cầu
default_value: Được sử dụng để xác định một giá trị mặc định cho field
custom của người phát triển
ext1: Được sử dụng để xác định một dropdown name (chỉ áp dụng đối với
enum type custom fields
ext2: không được sử dụng
ext3: không được sử dụng
audited: Được sử dụng để biểu hiện một field custom có hay không được kế
thừa Giá trị được chấp nhận bao gồm 0 và 1
module: Được sử dụng để xác định các module, nơi mà các field custom sẽ
được thêm vào
Thư mục vadefs đóng vai trò hết sức quan trọng nên việc thao tác ở thư mục này cần có những hiểu biết nhất định Khi ứng dụng SugarCRM được gọi lên, các trường
Trang 30CHƯƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 30
được định nghĩa trong thư mục custom/extension/module/ext/vadefs/vardef.ext.php sẽ được gọi lên trước, vì thế nên khi định nghĩa các trường dữ liệu thì người sử dụng nên định nghĩa ở thư mục này, sau đó vào admin tiến hành repair để đồng nhất dữ liệu
Với các kiến thức về hệ thống SugarCRM người sử dụng có thể thao tác chỉnh sửa hoặc nâng cấp các module chức n ng của mình một cách hiệu quả, người
sử dụng phải có các kiến thức c n bản về code PHP, Jquery, lập trình hướng đối tượng… Và muốn trích lọc được dữ liệu phải thao tác được trên MySQL
Trang 31CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 31
CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU
2.1 Giới thiệu công ty RED
Công ty Red là công ty chuyên về lĩnh vực quảng cáo và xây dựng thương hiệu Công ty có các trụ sở đặt tại Hà Nội, Tp Hồ Chí Minh , và công ty gốc đặt ở Austraylia
Trụ sở Red đặt tại thành phố Hồ Chí Minh tại địa chỉ: 10 Phan Ngu St.,Da Kao Wd D.1, HCMC, Vietnam Để biết thêm chi tiết có thể truy cập vào website của công ty: www.red.tm
2.2 Mô tả bài toán
Một công ty Red đang gặp khó kh n như sau:
Công ty thường sẽ chạy cùng 1 thời điểm rất nhiều dự án Vì vậy làm sao để người quản lý có thể kiểm soát được tình hình dự án đang đến giai đoạn nào, chi phí
và nhân sự tham gia dự án ra sao, lãi lỗ của 1 dự án ngay tại 1 thời điểm bất kỳ, 1 nhân viên có thể thực hiện được bao nhiêu dự án trong 1 khoảng thời gian…v.v
Khi có một yêu cầu báo cáo về dự án được đặt ra, làm sao để nhân viên có được những thông tin nhanh nhất và chính xác phục vụ cho yêu cầu báo cáo của cấp trên
Làm sao kiểm soát hoạt động của các nhân viên tham gia dự án?
Làm sao để biết được tổng thời gian nhân viên đó đã tham gia 1 dự án hoặc nhiều dự án
Làm sao biết được tổng số ngày nghỉ phép của nhân viên trong tháng, n m
Ở cấp độ nhân viên nếu nhân viên đó không có mặt trong công ty liệu nhân viên đó có thể xin nghỉ phép với 1 qui trình nghỉ phép chặc chẽ không? Hay nhân viên đó phải làm thủ công như viết email, nhắn tin hoặc gọi điện cho cấp trên của mình theo 1 qui trình thủ công (viết đơn, trình duyệt, chờ đợi sự chấp nhận của cấp trên…)
Trang 32CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 32
Ở cấp độ quản lý: Nếu người quản lý là người thường xuyên ra ngoài gặp khách hàng, đối tác,….Việc duyệt ngày nghỉ phép cho các nhân viên là cả 1 vấn đề khi người quản lý không có mặt ở v n phòng
Trước những vấn đề trên cần một phần mềm có thể giải quyết các khó kh n
đó Sau khi khảo sát hiện trạng, phân tích viên nắm được những thông tin như sau :
Trong công ty có những nhân viên bán hàng làm nhiệm vụ tìm kiếm liên hệ với các khách hàng, sau khi có được thông tin của khách hàng cũng như các yêu cầu của khách hàng, nhân viên bán hàng sẽ tiến hành tổng hợp lại các thông tin về hợp đồng mà khách hàng yêu cầu để đưa lên cấp trên
Cấp trên khi nhận thấy có thể kí kết được hợp đồng sẽ tiến hành lập các thông tin về dự án sắp tới lên hệ thống của công ty
Khi bắt đầu triển khai dự án thực tế, người quản lý sẽ vào phần mềm và tạo các thông tin về dự án sắp được triển khai Khi lên dự án mới có thể dự tính được chi phí cho dự án đó, cũng như có thể quản lý thời gian làm việc của các nhân viên trong dự án đó, thêm các nhân viên để tham gia dự án Người quản lý cùng với nhân viên kế toán đưa ra các hóa đơn dự tính cho dự án đang được triển khai
Trong quá trình dự án diễn ra các nhân viên khi đi làm việc sẽ truy cập vào
hệ thống và điền số giờ mình đã làm việc trong ngày dành cho dự án nào, những ngày nhân viên không đi làm vì lí do gì thì nhân viên phải vào hệ thống điền vào ngày mình nghỉ và lí do nghỉ để đợi sự cho phép của người quản lý
Đến cuối tháng nhân viên kế toán sẽ xuất ra các báo cáo về những chi phí dành cho từng dự án, cũng như số tiền mà công ty phải thanh toán cho các nhân viên của từng dự án
Lưu ý trong công ty ngoài nhân viên kế toán ra không có nhân viên nào được truy cập vào hệ thống lương của công ty
2.3 Các yêu cầu cho hệ thống CRM của công ty Red
Công ty Red cần phải quản lý nhiều công việc, nên yêu cầu của hệ thống CRM phải được xây dựng để giải quyết được các yêu cầu công việc, tính tiện dụng, bảo mật… Dưới đây là danh sách các tính n ng cần phải xây dựng cho hệ thống
Trang 33CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 33
Thay đổi mật khẩu người sử dụng
Phân quyền cập nhật dữ liệu cho từng người dùng
3 Thông tin chương trình, tài liệu hướng dẫn sử dụng
4 Bảo mật dữ liệu và backup dữ liệu
II Quản lý thông tin nhân viên
1 Thông tin về hồ sơ nhân viên
Quản lý mã nhân viên, họ tên, phòng ban, chức vụ, mức lương …
III Quản lý thông tin nghỉ phép của nhân viên
1 Nhân viên tự cập nhật ngày nghỉ của mình theo từng loại ngày nghỉ
được hệ thống thiết lập sẵn
Báo cáo tổng quan chi tiết về ngày nghỉ của mỗi nhân viên trong tháng
IV Quản lý hóa đơn
1 Quản lý thông tin chi tiết hóa đơn của từng dự án ( tình trạng của hóa đơn : khách hàng thanh toán đủ hay thiếu….)
V Quản lý TimeSheet
1 Qui trình cập nhật Project cost Estimation
2 Qui trinh cập nhật PROJECT COST ACTUAL
3 Qui trình cập nhật REVENUE REPORT
4 Qui trình cập nhật PROFIT AND LOSS BY PROJECT
Trang 34CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 34
VI Quản lý báo cáo
1 Báo cáo project cost estimation
2 Báo cáo project cost actual (CR) và project cost actual (MA)
3 Báo cáo REVENUE REPORT
4 Báo cáo PROFIT AND LOSS BY PROJECT
5 Báo cáo TimeSheet (theo dự án, theo nhân viên)
6 Báo cáo timesheet % ngày làm thực tế, ngày build của từng nhân viên
Bảng 5: danh sách các tính năng cần quản lý cho công ty Red
2.4 Qui tr nh hoạt động
Công ty Red có qui trình hoạt động trong việc tìm kiếm khách hàng và lập
dự án như sau: công ty có đội ngũ nhân viên đảm nhiệm công việc liên hệ và trao đổi thông tin với khách hàng, tìm hiểu yêu cầu của bên khách hàng, lập danh sách các thông tin về khách hàng để dễ dàng cho việc trao đổi Khi khách hàng có nhu cầu thì đội ngũ nhân viên cùng với ban lãnh đạo sẽ để xuất dự án tiền khả thi để cho khách hàng nắm tương đối công việc của 2 bên cần phải làm, khi thấy dự án khả quan, và khách hàng ưng ý với chất lượng làm việc của công ty thì cả 2 bên sẽ tiến hành tiến tới kí hợp đồng và đưa dự án chính thức vào thi công Khi dự án đã được hoàn thành và nghiệm thu mà không phát sinh ra bất cứ lỗi gì thì công ty sẽ có cử đội ngũ nhân viên có nhiệm vụ ch m sóc và hỗ trợ cho khách hàng để đảm bảo quá trình hợp tác giữa 2 bên sẽ lâu dài hơn
Trang 35CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 35
Thu Thập thông tin khách hàng
Kết thúc
Kết thúc
Không thể làm
Có thể làm Chưa chắc chắn
Không
Có Chưa thống nhất
Có
Không Lập dự án
Trang 36CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 36
2.5 Lược đồ Usecase
H nh 9: Lược đồ Uscae tổng thể
Lược đồ usecase tổng thể bao gồm các actor:
Quản lý: là nhân viên cấp cao trong hệ thống, các hoạt động của nhân viên quản lý bao gồm luôn cả các hành động của nhân viên bán hàng và nhân viên nhân
Trang 37CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 37
2.5.1 Usecase của Actor Nhân Viên
H nh 10: Lược đồ Usecase của Actor Nhân Viên
Mô tả chi tiết:
Xem thông tin nhân viên: Nhân viên có thể xem thông tin của chính nhân viên đó trong hệ thống và thiết lập lại thông tin của chính nhân viên
Tim kiếm: Nhân viên có thể tìm kiếm thông tin của nhân viên, thời gian làm việc hàng ngày, và số ngày nghỉ của nhân viên đó trong hệ thống
Cập nhật ngày nghỉ: những ngày không làm việc thì nhân viên phải nhập vào ngày nghỉ và lí do nghỉ, kiểm tra xem số ngày nghỉ có vượt quá sự cho phép hay không
Lên lịch các cuộc gọi, cuộc hẹn: lên lịch các cuộc gọi hoặc cuộc hẹn giữa các nhân viên với nhau hoặc với khách hàng
Nhập thời gian: Nhập thời gian làm việc trong hệ thống đối với từng dự án
Trang 38CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 38
2.5.2 Usecase của Actor Nhân Sự
Tìm kiếm nhân v iên
Thêm mới nhân v iên
Phê duyệt nghỉ phép cho nhân v iên
NhanVien
H nh 11: Lược đồ Usecase của Actor Nhân Sự
Mô tả chi tiết:
Xem thông tin của từng nhân viên: Xem thông tin của các nhân viên trong
hệ thống
Chỉnh sửa thông tin của từng nhân viên: Trong hệ thống nhân sự có quyền chỉnh sửa thông tin của các nhân viên
Tìm kiếm nhân viên: Tìm kiếm thông tin của từng nhân viên xem nhân viên
đó thuộc team nào, làm dự án nào
Thêm nhân viên mới: Có quyền thêm mới một nhân viên vào hệ thống
Phê duyệt nghỉ phép cho nhân viên: Khi nhân viên xin phép nghỉ, phải được
sự cho phép của nhân sự thì nhân viên đó mới được phép nghỉ
Ngoài ra nhân sự còn có các hành động của nhân viên
Trang 39CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 39
2.5.3 Usecase của Actor Kế Toán
H nh 12: Lược đồ Uscase của Actor Kế Toán
Mô tả chi tiết:
Xem báo cáo: xem các báo cáo chi tiết về chi phí dự tính của từng dự án, báo cáo về chi phí thực tế của từng nhân viên…
Cập nhật lương cho nhân viên: Cập nhật lương cho từng nhân viên theo từng tháng trong n m
Quản lý chi tiết hóa đơn: có mối quan hệ <<extend>> với thêm hóa đơn, hủy hóa đơn, sửa hóa đơn, và kiểm tra việc thanh toán hóa đơn của khách hàng nếu hóa đơn đã được thanh toán là : paid ngược lại là not paid
Ngoài ra kế toán còn có các hành động cua nhân viên
Trang 40CHƯƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 40
2.5.4 Usecase của Actor Manager:
H nh 13: Lược đồ Usecase cho Actor Manager (người quản lý)
Mô tả chi tiết
Tạo dự án mới: Manager( người quản lý) có hoạt động tạo mới một dự án khi
đã có thông tin của khách hàng từ nhân viên bán hàng
Phân quyền cho từng nhân viên: Người quản lý có hoạt động phân quyền cho từng nhân viên trong hệ thống
Banhang