114
MỤC LỤC Page 1 MỤC LỤC CHƢƠNG 1: GIỚI THIU NN TNG 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. Gii 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 hthng 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 ca Actor Kế Toán ..................................................................................... 39 2.5.4. Usecase ca Actor Manager: .................................................................................... 40 2.6. Phân tích yêu cầu vcơ sở dliu ................................................................................... 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 kho .............................................................................................. 54 2.7.1. Mu Report Project Cost Estimate ........................................................................... 54 2.7.2. Mu Report Project Cost Actual (CR) ..................................................................... 55

Đồ án tốt nghiệp: Triển khai CRM thực tế

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 2: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 3: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 4: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 5: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 6: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỤ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

Page 7: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỞ ĐẦ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

Page 8: Đồ án tốt nghiệp: Triển khai CRM thực tế

MỞ ĐẦ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.

Page 9: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Page 10: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Page 11: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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 :

Page 12: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Page 13: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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ị

Page 14: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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ệ, ...

1.2. Tùy biến trong SugarCRM

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

Page 15: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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)

Page 16: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 16

1 Tạo mới package

B1: Vào

AdminModule

Builder

B2: Tạo mới 1

package,

Điền tên package,key

và save lại.

Màn mình module builder

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…

Page 17: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

B1: Click new

module

B2: Điền thông tin

Module

- Module Name

- Label

- Chọn Type

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”,

Page 18: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

3

Tùy chỉnh module

bằng công cụ Studio.

A. Fields

B1: Chọn test1Fields

Add Fields

B2: Điền thông tin

Fields

Save lại.

B. EditView

Màn hình edit Fields

Page 19: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 19

B1: Chọn test1

LayoutsEditView

- EditView là

giao diện thêm

mới hoặc chỉnh

sửa một dòng dữ

liệu với Module

đó.

B2: Tại đây ngƣời

dùng có thể kéo thả

những Fields(đã add)

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

chọn Save.

C. DetailView

B1: Chọn test1

LayoutsDetailView

- DetailView là

giao diện hiển

thị chi tiết của

một trƣờng dữ

liệu trong

Modulel đó.

B2: Tại đây ngƣời

dùng có thể kéo thả

Màn hình Edit View

Màn hình Detail View

Page 20: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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à

ngƣợc lại.

- Cửa sổ Layout

là nơi chứa

những fields của

màn hình

DetailView của

Module.

- Sau khi thiết kế

giao diện Detail

ta chọn Save.

D. ListView

B1: Chọn test1

LayoutsListView

- ListView là giao

diện Hiển thị

danh sách các

Records trong

Modulel đó.

B2: Tại đây ngƣời

dùng có thể kéo thả

những Fields(đã add)

từ bên cửa sổ Hidden

sang cửa sổ Available

và ngƣợc lại.

- Sau khi thiết kế

Page 21: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 21

giao diện List ta

chọn Save.

E. Search

B1: Chọn test1

LayoutsSearchBas

ic Search

- Basic Search là

giao diện Hiển

thị các tiêu chí

search các

record của

module.

B2: Tại đây ngƣời

dùng có thể kéo thả

những Fields(đã add)

từ bên cửa sổ Hidden

sang cửa sổ Default và

ngƣợc lại.Nhằm thêm

bớt các tiêu chí search

cho module.

- Sau khi thiết kế

giao diện

Search ta chọn

Save.

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 đó.

Page 22: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Bƣớc 4: Deloy module

Sau khi đã tạo đƣợc các thông tin cần thiết cho module, ngƣời sử dụng sẽ

tiến hành Deloy hoặc là Publish để có thể đƣa module mới tạo vào trong hệ thống.

4 Deploy Module

Sau khi tùy chỉnh

Module bằng công cụ

Studio chúng ta có thể

sử dụng Module này

hoặc Publish ra ngoài để

cài đặt sau.

A. Deploy

- Để sử dụng

module này

chúng ta vào

Module Buider

Test

- Sau đó ta chọn

Deploy

- Sau khi Deploy

Module này đã

đƣợc cài đặt vào

Sugar.

- Chúng ta có thể

vào Menu để sử

dụng Module này.

Bảng 4: Deloy module để đƣa vào sử dụng trong hệ thống SugarCRM

Page 23: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Page 24: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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)

Page 25: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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){

Page 26: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 1: GIỚI THIỆU NỀN TẢNG SUGACRM Page 26

global $current_user;

$focus->description .= “\nSaved on ”. date(“Ymd g:i a”). “ by

”. $current_user->user_name;

}

}

?>

Bƣớc tiếp theo đ ng kí chức n ng custom bằng cách tạo file logic_hooks.php với

nội dung sau:

<?php

// 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');

?>

$ Hook_version

Tất cả các logic hooks nên định nghĩa các $hook_version nên đƣợc sử dụng. Hiện

nay, chỉ $ hook_version đƣợc hỗ trợ duy nhất là 1.

$ Hook_version = 1

$ Hook_array

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

Page 27: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

có sẵn:

Application hooks: Những hook không sử dụng của các đối số $bean.

after_ui_frame

Chạy sau khi cái sƣờn đã đƣợc gọi trƣớc khi footer đã đƣợc gọi.

after_ui_footer

Chạy sau khi footer đã đƣợc gọi

server_round_trip

Chạy vào cuối mỗi Sugar page

Modulehook

before_delete

Chạy trƣớc khi một record đƣợc xóa

after_delete

Chạy sau khi một record đƣợc xóa

before_restore

Chạy trƣớc khi một record đƣợc phục hồi

after_restore

Chạy sau khi một record đƣợc phục hồi

after_retrieve

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

Page 28: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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-to-

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.

menu - Một mảng trong đó chi tiết các file 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.

Page 29: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Page 30: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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í dụ :

<?php

$dictionary["C_project"]["fields"]["project_status"] = array (

'name' => 'project_status',

'vname' => 'LBL_PROJECT_STATUS',

'type' => 'radioenum',

'dbType' => 'varchar',

'len' => 50,

'default' => 'enable',

'options' => 'project_status_list',

);

Đây là cách thêm một trƣờng dữ liệu vào module C_project, với vname sẽ đƣợc

khai báo trong thƣ mục custom/modules/C_project/language/en_us.lang.php

<?php

// created: 2012-05-11 17:33:01

// created: 2012-05-15 13:46:18

$mod_strings = array (

'LBL_PROJECT_STATUS' => 'Status',

);

Khi đã khai báo xong hết, muốn đƣa trƣờng dữ liệu này vào sử dụng thì vào

admin/repair để tiến hành repair cho đồng nhất dữ liệu, khi đó dữ liệu này sẽ đƣợc

đồng nhất với dữ liệu trong module gốc.

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.

Page 31: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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…)

Page 32: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Page 33: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 33

# Nội dung

1 Quản lý danh mục dùng chung

Danh mục phòng ban

Danh mục dự án

Danh mục ngƣời dùng

2 Quản lý ngƣời sử dụng, phân quyền bảo mật hệ thống

Quản lý ngƣời dùng đ ng nhập hệ thống.

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

Page 34: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Page 35: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Lập hồ sơ quản lý khách hàng

Lên phƣơng án kinh doanh

Xác định n ng lực công ty

Ch m sóc khách hàng

Đề xuất dự án tiền khả thi

Đàm phán hợp đồng

Ký hợp đồng

Nghiệm thu

Tƣ vấn lại khách hàng

Quyết định

Thống nhất

Phát sinh

Sales

Sales

Sales

Sales

Sales

Sales

Sales

Sales

Sales

Manager

Manager

Manager

Manager

Manager Accounting

Kết thúc

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

Chƣa thống nhất

KhôngLập dự án

Hoàn thành dự án

Kiểm tra lỗi

Không

Sửa chữa lại các lỗi

Manager

Employee

Employee

H nh 8: Qui tr nh hoạt động t m kiếm khách hàng và lập dự án

Page 36: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

sự

Kế toán: Là nhân viên có hoạt động cập nhật lƣơng và xem các báo cáo,

nhân viên quản lý cũng đƣợc xem các báo cáo

Nhân Sự: là nhân viên đảm nhận việc chỉnh sửa thông tin của các nhân viên,

phê duyệt nghỉ phép cho các nhân viên

Nhân viên bán hàng: là nhân viên đảm nhận việc liên lạc với khách hàng, lƣu

các thông tin của khách hàng vào hệ thống và tìm kiếm thông tin khách hàng.

Nhân viên: là actor đảm nhiệm việc điền thời gian làm việc và điền những

ngày nghỉ trong hệ thống

Page 37: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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.

Page 38: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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ự

uc Actors

NhanSu

Xem thông tin của

từng nhân v iên

Chỉnh sửa thông tin

của từng nhân v iên

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.

Page 39: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Page 40: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠ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

Page 41: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 41

Xem và đổi mật khẩu cho từng nhân viên: khi nhân viên làm mất mật khẩu

hoặc vì lí do nào đó muốn thay đổi mật khẩu thì ngƣời quản lý có thể thay đổi mật

khẩu cho nhân viên hoặc tự nhân viên thay đổi mật khẩu.

Xóa thông tin nhân viên: Những nhân viên nghỉ việc hoặc không tồn tại

trong công ty sẽ đƣợc xóa thông tin trong hệ thống

Cấu hình cho hệ thống: Cấu hình mail, repair lại hệ thống khi có những thay

đổi và có thể thiết lập ngày giờ cho hệ thống

Cập nhật project cost estimation: cập nhật chi phí dự tính cho từng dự án. Có

mối quan hệ <<extend>> với nhập mới project cost estimation, chỉnh sửa project

cost estimation, xóa project cost estimation

2.6. Phân tích yêu cầu về cơ sở dữ liệu

PROJECT

ACCOUNT

MAN

POWERCOST

PRODUCTION

COST

ESTIMATION

PRODUCTION

COST ACTUAL

REVENUES

ESTIMATION

REVENUES

ACTUAL

USERS

Có Có

TIMESHEETS

LEAVING

SALARY

1

N

1

1

N

11

N

1N

1

N

N

1

1

N

1 N

1

N

H nh 14: Mô h nh ERD tổng thể

Page 42: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 42

2.6.1. Các thuộc tính của Account

Thực thể Account gồm các thuộc tính:

IDaccount: id của từng khách hàng đƣợc lƣu xuống cơ sở dữ liệu

Assigned to: thuộc tính này để lƣu các id của các user thuộc module user

Bussiness Type: để lƣu các kiểu kinh doanh xuống cơ sở dữ liệu

Name: để lƣu tên của các khách hàng

Website: để lƣu các website mà khách hàng sử dụng

Office Phone: để lƣu số điện thoại v n phòng của khách hàng

Fax: để lƣu số fax của khách hàng

Billing Address: dùng để lƣu địa chỉ thanh toán của khách hàng

Office Address: dùng để lƣu địa chỉ v n phòng của khách hàng

Description: dùng để lƣu trữ các mô tả về khách hàng

Type: Để lƣu các kiểu khách hàng có thể là ngƣời hoặc là công ty.

ACCOUNT

PROJECT

Name

Website

Office

Phone Fax

Billing

Address

Office

Address

Email

Address

Description

Bussiness

Type

Assigned to

Type

IDaccount Có

1

1

H nh 15: Các thuộc tính của thực thể Account

Page 43: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 43

2.6.2. Các thuộc tính của Revenues actual

Thực thể revenues actual bao gồm các thuộc tính:

IDre_actual: dùng để lƣu các id của revenues actual

Invoice Number : thuộc tính này dùng để lƣu số của hóa đơn

Amount : chi phí của dự án đƣợc điền trong hóa đơn

VAT Amount : chi phí của dự án đƣợc tính thuế VAT

Total Amount : tổng chi phí của dự án bao gồm chi phí và chi phí VAT

Description : phần mô tả về hóa đơn

Date : ngày lập hóa đơn

Payment Status : trạng thái của hóa đơn, đã thanh toán hay chƣa đƣợc thanh

toán

User: Dùng để lƣu nhân viên nào lập hóa đơn

REVENUES

ACTUAL

PROJECT

IDre_actual

VAT

Amount

Total

Amount Description

Date

Payment

Status

User

IDproject

Amount

1

N

Invoice

Number

H nh 16: Các thuộc tính của thực thể revenues actual

Page 44: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 44

2.6.3. Các thuộc tính của Revenues Estimation

Thực thể revenues actual bao gồm các thuộc tính:

IDre_es: dùng để lƣu các id của revenues actual

Amount : chi phí của dự án đƣợc điền trong hóa đơn

VAT Amount : chi phí của dự án đƣợc tính thuế VAT

Total Amount : tổng chi phí của dự án bao gồm chi phí và chi phí VAT

Description : phần mô tả về hóa đơn

Date : ngày lập hóa đơn

Payment Status : trạng thái của hóa đơn, đã thanh toán hay chƣa đƣợc thanh

toán

User: Dùng để lƣu nhân viên nào lập hóa đơn

REVENUES

ESTIMATION

PROJECT

IDre_es

VAT

Amount

Total

Amount

Description

Date

Payment

Status

User

Amount

1

N

H nh 17: Các thuộc tính của thực thể Revenues Estimation

Page 45: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 45

2.6.4. Các thuộc tính của Production Cost Esmation

Thực thể Production Cost Estimation bao gồm các thuộc tính:

IDpro_esimation: dùng để lƣu các id của production cost estimation

Title : dùng để lƣu tiêu đề

Description : phần mô tả về production cost estimation

Amount : dùng để lƣu chi phí dự tính của production

PRODUCTION

COST

ESTIMATION

PROJECT

Idpro_estim

ation

Title Description

Amount

1

N

H nh 18: Các thuộc tính của thực thể Production Cost Estiamtion

Page 46: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 46

2.6.5. Các thuộc tính của Production Cost Actual

Thực thể Production Cost Actual bao gồm các thuộc tính:

IDpro_actual: dùng để lƣu các id của production cost actual

Title : dùng để lƣu tiêu đề

Description : phần mô tả về production cost estimation

Amount : dùng để lƣu chi phí thực tế của production

PRODUCTION

COST ACTUAL

PROJECT

Idpro_actual

TitleDescription

Amount

1

N

H nh 19: Các thuộc tính của thực thể Production Cost Actual

Page 47: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 47

2.6.6. Các thuộc tính của Manpower Cost

Thực thể Production Cost Actual bao gồm các thuộc tính:

IDmanpower: dùng để lƣu các id của manpower cost

Title : dùng để lƣu tiêu đề

Description : phần mô tả về manpower cost

Amount : dùng để lƣu chi phí dự tính dành cho các team

MANPOWER

COST

PROJECT

IDmanpowe

r

TitleDescription

Amount

Có1

N

H nh 20: Các thuộc tính của thực thể Manpower Cost

2.6.7. Các thuộc tính của User

Thực thể Production Cost Actual bao gồm các thuộc tính:

IDusers: dùng để lƣu các id của các user

Assigned to: lƣu ngƣời đƣợc giao để thiết lập các thông tin teams

User type: dùng để lƣu kiểu nhân viên

Name: để lƣu tên của các khách hàng

Website: để lƣu các website mà nhân viên sử dụng

Page 48: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 48

Office Phone: để lƣu số điện thoại v n phòng của nhân viên

Fax: để lƣu số fax của nhân viên

Billing Address: dùng để lƣu địa chỉ thanh toán của nhân viên

Office Address: dùng để lƣu địa chỉ v n phòng của nhân viên

Status: trạng thái khi thiết lập nhân viên đó

Last name: từ cuối cùng trong tên của nhân viên

USERS

PROJECT

User name

Website

Office

Phone FaxBilling

Address

Office

Address

Email

Address

status

User Type

Assigned to

Last nameIDusers

N

N

H nh 21: Các thuộc tính của thực thể Users

2.6.8. Các thuộc tính của Timesheets

Thực thể Timesheets bao gồm các thuộc tính:

IDtimesheet: dùng để lƣu các id của timesheet

Project Name : dùng để lƣu tên của các dự án

Hour : Số giờ đƣợc thêm vào từng dừng án

Page 49: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 49

Minutes: Số phút đƣợc thêm vào từng dự án

Description: các mô tả thêm về phần điền timesheet

PROJECT

TIMESHEETS

Description

IDtimesheet

1

N

Minutes

Hour

Project Name

H nh 22: Các thuộc tính của thực thể Timesheets

Page 50: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 50

2.6.9. Các thuộc tính của Leaving

Thực thể Leaving bao gồm các thuộc tính:

IDleaving: dùng để lƣu các id của leaving

Reason : dùng để lƣu các lí do xin nghỉ phép

Type: dùng để lƣu trữ là xin nghỉ nửa ngày, hay nguyên ngày

Description: các mô tả thêm về phần điền Leaving

USERS

LEAVING

Description

IDtimesheet

1

N

Type

Reason

H nh 23: Các thuộc tính của thực thể Leaving

Page 51: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 51

2.6.10. Các thuộc tính của Salary

Thực thể Leaving bao gồm các thuộc tính:

IDsalary: dùng để lƣu các id của salary

January : dùng để lƣơng của nhân viên của tháng 1

February: dùng để lƣơng của nhân viên của tháng 2

March: dùng để lƣơng của nhân viên của tháng 3

April: dùng để lƣơng của nhân viên của tháng 4

May: dùng để lƣơng của nhân viên của tháng 5

June: dùng để lƣơng của nhân viên của tháng 6

July: dùng để lƣơng của nhân viên của tháng 7

August: dùng để lƣơng của nhân viên của tháng 8

September: dùng để lƣơng của nhân viên của tháng 9

October: dùng để lƣơng của nhân viên của tháng 10

November: dùng để lƣơng của nhân viên của tháng 11

December: dùng để lƣơng của nhân viên của tháng 12

User: dùng để lƣu tên của nhân viên đƣợc nhập lƣơng

Year: dùng n m mà cần nhập lƣơng cho nhân viên

Page 52: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 52

USERS

SALARY

1

N

October

November

September

AugustJulyJune

May

December

April

March

February

January

UserIDsalary

Year

H nh 24: Các thuộc tính của thực thể Salary

Page 53: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 53

2.6.11. Các thuộc tính của Project

Thực thể project bao gồm các thuộc tính:

IDproject: dùng để lƣu các id của project

Project Code : dùng để lƣu mã của các dự án

Project Name: dùng để lƣu tên của các dự án

Project Mananger: dùng để lƣu ngƣời quản lý dự án

Client: dùng để lƣu khách hàng mà dự án triển khai

Start Date: dùng để lƣu ngày bắt đầu dự án

End Date: dùng để lƣu ngày kết thúc dự án

Status: dùng để lƣu trạng thái của dự án(enable/disable)

Description: mô tả về dự án

PROJECT

Project

Name

Project

Manager

ClientStart Date

End Date

Status

Project

Code

Description

IDproject

H nh 25: Các thuộc tính của thực thể Project

Page 54: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 54

2.7. Các mẫu Report tham khảo

Các mẫu Report này mang tính chất tham khảo để thiết kế giao diện cho các

module report cũng nhƣ định dạng cho các file excel khi xuất các report.

2.7.1. Mẫu Report Project Cost Estimate

Project name: World trade center

Branding & design JOB Code: VIN.001/1011

Client: Vinacapital

Business type Real Estate

Project period From: To:

Project leader: Ms Long Uyen

INTERNAL PROJECT MAN HOUR & COST ESTIMATION

Title Projected Hour Cost per hours (USD) Amount (USD)

MAN POWER COST: 710

Client services 8 20 160

Designers 15 20 300

Creative Director 5 50 250

-

-

-

-

-

0

PRODUCTION COST

500

0

Nhat Thong

250

Vietnam airlines (air ticket)

250

0

0

TOTAL - - 1.210

Bảng 6: Mẫu Report Project Cost Estimation

Page 55: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 55

2.7.2. Mẫu Report Project Cost Actual (CR)

Project name: World trade center

Branding & design JOB Code: VIN.001/1011

Client: Vinacapital

Business type

Real estate/ FMCG/

Education/Service

Project period From: 11-Thg10

To: 11-Thg11

Project leader: Ms Long Uyen

PROJECTED V.S ACTUAL MAN HOUR & COST

Title Person incharge Hours Diff

MAN POWER COST: Projected Actual

CR Uyen 5 2 3

Designer Tho 5

Dinh 5

Lan Anh 5

Toan 5

CD Lenny 5

PRODUCTION COST

Nhat thong

Itaxa

Vietnam airline

TOTAL:

Bảng 7: Mẫu Report Project Cost Actual (CR)

Page 56: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 56

2.7.3. Mẫu Report Project Cost Actual (MA)

Project name: World trade center

Branding & design JOB Code: VIN.001/1011

Client: Vinacapital

Business type

Real estate/ FMCG/

Education/Service

Project period From: 11-Thg10

To: 11-Thg11

Project leader: Ms Long Uyen

PROJECTED V.S ACTUAL MAN HOUR & COST

Title Person incharge Hours Cost per hours Amount (USD)

MAN POWER COST: Projected Actual 640

CR Uyen 5 3 20 60

Designer Tho 5 2 20 40

Dinh 5 3 20 60

Lan Anh 5 7 20 140

Toan 5 8 20 160

CD Lenny 5 9 20 180

-

PRODUCTION COST

300

-

Nhat thong

100

Itaxa

100

Vietnam airline

100

-

TOTAL:

940

Bảng 8: Mẫu Report Project Cost Actual (MA)

Page 57: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 57

2.7.4. Mẫu Report Profit And Loss (CR)

PROFIT AND LOSS - CR W.I.P BY PROJECT

Job code

Person

in

Charge

Client Description Project period Man Hours

Projection

Man Hours

Actual Renvenue (VND)

VIN.001/1011 Ms. Uyen Vinacapital World trade center

Branding & design

đƣa text

FromDate ,

ToDate vào

đây,

ví dụ:

23/04/2012 to

30/04/2012

[tổng thời gian

estimation]

[Tổng giờ

actual ] 50.000.000

TOTAL: 50.000.000

Bảng 9: Mẫu Report Profit And Loss (CR)

2.7.5. Mẫu Report Profit And Loss (MA)

Job code

Person

in

Charge

Client Description Project

period

Man Hours

Projection

Man Hours

Actual

Renvenue

(VND)

Manpower

cost

Production

cost

Margin

(VND)

VIN.001/1011 Ms. Uyen Vinacapital

World trade

center

Branding

& design

50.000.000 640 300 49.999.060

-

-

TOTAL:

50.000.000 640 300 49.999.060

Bảng 10: Mẫu Report Profit And Loss (MA)

2.7.6. Mẫu Report Revenue

REVENUE PROJECTION

From: 1

Nov

To: 30

Nov

Date Invoice

mber Project code Clients Description

Amount

(VND) VAT

Total Amount

(VND)

Payment

status

01-

Thg11 45 VIN.001/1011 Vinacapital

World trade center

Branding & design 50.000.000 5.000.000 55.000.000 Paid

Bảng 11: Mẫu Report Revenues

Page 58: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 58

2.7.7. Mẫu Report Timesheet (%)

TIMESHEET in OCT 2011

Name Working hours Billable hours Inputted % Input/ Billable hours % Input/

Working hours

Uyen 176 110 165 150% 94%

Khoi 176 110 4 4% 2%

Adie 176 110 55 50% 31%

Thao 176 110 161 146% 91%

Diep 176 110 166 151% 94%

Khanh Linh 176 110 77 70% 43%

Vy 176 110 121 110% 69%

Hoang Uyen 176 110 147 133% 83%

Huong 152 95 152 160% 100%

Thuy Linh 176 110 155 141% 88%

Lan Anh 176 110 161 146% 91%

Dinh 168 105 76 72% 45%

Dammy 152 95 138 146% 91%

Toan 176 110 120 109% 68%

Pham 168 105 104 99% 62%

Tan Hung 120 75 120 160% 100%

Quang 96 60 99 165% 103%

Hung 176 110 168 153% 95%

Tho 168 105 160 152% 95%

Hong Anh 56 35 31 89% 55%

Nhat Linh 168 105 161 153% 96%

Ai 168 105 60 57% 36%

Lenny 176 110 75 68% 43%

TOTAL 3.704 2.315 2.676 116% 72%

Bảng 12: Mẫu Report Timesheet (%)

Page 59: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 59

2.7.8. Mẫu Report Timesheet

TIMESHEET BY STAFF, BY PROJECT

Name of Staff: Code RED-001 Total

Hours

Date 01-Thg11 02-Thg11 03-Thg11 04-Thg11 05-Thg11 29-Thg11 30-Thg11

Job Code

VIN.001/1011 1 2 5 4 12

JC-002

JC-003

JC-004

JC-005

Total 1 2 5 0 4 0 0 12

Bảng 13: Mẫu report Timesheet

Page 60: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 2: THU THẬP VÀ PHÂN TÍCH YÊU CẦU Page 60

2.8. Khảo sát hệ thống server đang hoạt động của Red

Hiện tại công ty Red đang thuê VPS Server tại trang http://www.pavietnam.vn

Đặt tính của Server Thông tin chung gói VPS 5

Sever đặt tại Việt Nam

HDD 250GB

RAM 4GB + 1 GB(Free)

CPU E3-1230/E5620

Data transfer Unlimited

Cổng trong nƣớc 100Mbps

Cổng quốc tế 2Mbps/512Kbps

Host Kloxo CentOs 5.x: Cài sẵn Apache 2.2, PHP5, DNS,

MySQL, Mailserve

Page 61: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 61

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG

Hệ thống CRM của công ty Red phải đƣợc thiết kế để đảm bảo đƣợc những

yêu cầu mà công ty Red đặt ra, hệ thống phải đảm bảo đƣợc tính bảo mật dữ liệu

giữa các nhân viên, giao diện phải đơn giản, dễ hoạt động đối với nhân viên bình

thƣờng chỉ cần 2 module chính là timesheet và leaving, nên khi đ ng nhập vào hệ

thống thì màn hình đầu tiên sẽ là màn hình điền timesheet để nhân viên dễ sử dụng.

Đối với ngƣời quản trị và ngƣời quản lý thì phải có khả n ng phân quyền cho các

nhân viên khác và không đƣợc truy cập vào module salary của hệ thống. Trong

công ty chỉ có nhân viên kế toán là đƣợc phép truy cập và thao tác đƣợc trên module

salary. Font chữ sử dụng cho hệ thống phải là font aller.

Khi đ ng nhập vào Red CRM giao diện đầu tiên của Red là màn hình điền

timesheet. Giao diện của Red gồm các giao diện của module Account, Salary,

Team, Project, Timesheets… trong các module này module khi vào module nào

cũng đều có cách hiện thị chung của SugarCRM đó là màn hình Listview, khi nhấp

vào các thông tin chi tiết sẽ hiện ra màn hình Detail View, khi tạo hoặc chỉnh sửa

các thuộc tính thì sẽ hiện ra màn hình Edit View để hiển thị màn hình chỉnh sửa các

thông tin, tuy nhiên để đảm bảo sự tiện dụng cũng nhƣ mục đích của ngƣời sử dụng,

giao diện của module Timesheets và Leaving có những thay đổi khác.

Page 62: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 62

HOME

ACCOUNT PROJECTTEAMSSALARY TIMESHEETS LEAVING REPORTS PUBLICDAYS ADMINISTRATOR

MANPOWER

COST

ESTIMATION

PRODUCTION

COST

ESTIMATION

PRODUCTION

COST

ACTUAL

REVENNUES

ESTIMATION

REVENNUES

ACTUAL

REPORT

ESTIMATION

COST

REPORT

ACTUAL COST

(MA)

REPORT

ACTUAL COST

(CR)

REPORT PROFIT

AND LOSS (CR)

REPORT PROFIT

AND LOSS (MA)

REPORT

REVENUES

REPORT

TIMESHEETUSERS

SUGAR

CONNECT

SYSTEM

EMAIL

DEVELOPER

TOOLS

BUG

TRACKER

SECURITY

SUITE

H nh 26: WorkFlow của hệ thống Red online timesheet (Red CRM)

3.1. Module Account

Giao diện màn hình ListView của module Account bao gồm các thông tin

nhƣ Name, City, Phone, User, Email Address, Date Created. Ngoài ra mặc định

màn hình basic search thì sẽ search theo Name.

H nh 27: Giao diện màn h nh listview của module Account

Page 63: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 63

Giao diện của màn hình EditView của module Account gồm các field để điền

thông tin cần thiết cho dự án.

H nh 28: Giao diện màn h nh editview của module Account

3.2. Module ManPower Cost

Giao diện của module Manpower Cost gồm các file nhƣ: Teams, Projects

Hour, Projects, Assign to và cuối cùng là Description với Teams và minutes đƣợc

thiết kế với dạng dropdown ( combo box), Projects và Assign to là dạng select cho

ta có thể chọn trực tiếp từ module Project và User.

H nh 29: Giao diện tạo mới Manpower Cost

Page 64: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 64

3.3. Module Production cost actual

Giao diện tạo mới production cost actual đƣợc thiết kế đơn giản với các field

nhƣ: Title, Amount, Projects, Description với Projects đƣợc thiết kế select cho phép

chọn tới các project đƣợc tạo ở module Projects.

H nh 30: Giao diện tạo mới Prduction cost actual

3.4. Module Production cost estimation

Giao diện này đƣợc thiết kế tƣơng tự nhƣ module production cost actual vì 2

module này giống nhau về các files nhƣ : Title, Amount, Projects, Description với

Projects đƣợc thiết kế select cho phép chọn tới các project đƣợc tạo ở module

Projects.

H nh 31: Giao diện tạo mới Production cost Estimation

3.5. Module Projects

Module Project đƣợc thiết kế để lƣu giữ các thông tin cần lƣu trữ cho một dự

án của công ty các field bao gồm: Project Code, Project Name, Projects Manager,

Client, Start Date, End Date, Status, Description. Với Projects Manager và Client

đƣợc thiết kế dƣới dạng select cho phép chọn các user ở module User, Status đƣợc

Page 65: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 65

thiết kế là các radio button để hiện thị trạng thái là Enable hay là Disable. Ngoài ra

Start Date, End Date là kiểu datetime, cho phép ngƣời dung chọn ngày để hiện thị ra

textbox.

H nh 32: Giao diện mới mới Projects

3.6. Module Revenues Estimation

Giao diện của Revenues Estimation đƣợc thiết kế để lƣu các chi phí trong một

hóa đơn dự tính gồm: Projects, Payment Status, Amount, Date, VAT Amount, Total

Amount, User và cuối cùng là Description. Projects,User tƣơng tự nhƣ các module

trƣớc đƣợc thiết kế với dạng select. Bên cạnh đó field Payment Status đƣợc thiết kế

là check box khi check vào thì sẽ là “Paid”, và kiểu Date là kiểu date time.

H nh 33: Giao diện tạo mới Revenues Estimation

3.7. Module Revenues Actual

Giao diện của Revenues Actual cũng đƣợc thiết kế tƣơng tƣ nhƣ module

Revenues Estimation gồm các field: Projects, Payment Status, Amount, Date, VAT

Amount, Total Amount, User và cuối cùng là Description. Projects,User tƣơng tự

nhƣ các module trƣớc đƣợc thiết kế với dạng select. Bên cạnh đó field Payment

Status đƣợc thiết kế là check box khi check vào thì sẽ là “Paid”, và kiểu Date là

Page 66: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 66

kiểu date time. Bên cạnh đó điểm khác ở đây là Revenues Actual còn có them thuộc

tính Invoice Number để lƣu số hóa đơn.

H nh 34: Giao diện tạo mới Revenues Actual

3.8. Module Salary

Giao diện của module Salary đƣợc thiết kế để lƣu lƣơng của nhân viên vào

các tháng trong n m nên đƣợc thiết kế khá là đơn giản với các textbox để lƣu số tiền

lƣơng ứng với mỗi tháng và dropdown hiện thị n m hiện tại là n m 2012 trở đi.

H nh 35: Giao diện tạo mới Salary

Page 67: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 67

3.9. Module Timesheets

Giao diện Timesheet đƣợc thiết kế thân thiện với ngƣời dùng với phần lịch

hiển thị các ngày trong tháng hiện tại, và trên lịch sẽ hiện thị ra đâu là ngày mình đã

xin nghỉ, đâu là ngày hiện tại. Với Project, Project task, minutes đƣợc thiết kế là các

dropdown. Các thông tin khi đƣợc nhập sẽ hiển thị bên dƣới phần Added entries.

H nh 36: Giao diện khi nhập Timesheets

3.10. Module Leaving

Module Leaving đƣợc thiết kế với ý tƣởng nhƣ module Timesheet cũng bao

gồm một phần lịch hiển thị các ngày trong tháng. Kiểu xin nghỉ gồm 2 radio button

là Full day và Half day, Reason đƣợc thể hiện qua dropdown để cố định các nguyên

nhân xin nghỉ, ngoài ra có phần Description để mô tả thêm.

H nh 37: Giao diện khi nhập Leaving

Page 68: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 68

3.11. Module PublicDays

Module PublicDays đƣợc thiết kế với các thuộc tính Puclic Day là date time

để hiển thị ngày nghỉ mặc định của công ty cũng nhƣ các ngày nghỉ lễ phép, và User

đƣợc select đến module User.

H nh 38: Giao diện khi tạo mới Publicdays

3.12. Module Report

Module Report đƣợc thiết kế gồm danh sách các report cần phải xuất ra trong

hệ thống gồm: report estimate cost, report actual cost (MA), report actual cost (CR),

report profit and loss (CR), report profit and loss (MA), report revenues projection,

timesheet, timesheet report (%)

H nh 39: Giao diện các Report trong hệ thống

Page 69: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 69

3.12.1. Report Estimate Cost

Giao diện report estimate cost đƣợc thiết kế để lƣu trữ các thông tin của dự

án đƣợc chọn trên dropdown, phía dƣới phần internal project man hour & cost

estimation gồm tên của các phòng ban số giờ dành cho phòng ban đƣợc thêm vào

dự án, cost per hours để hiển thị số tiền đƣợc cấp cho các phòng ban trên mỗi giờ

làm việc, và cuối cùng là amount để tính số tiền dự tính dành cho các phòng ban đó

trong bao nhiêu giờ. Phần production cost estimation để hiển thị các chi phí thực tế

nhƣ: tiếp khách, vé tàu..

H nh 40: Giao diện Report Estiamte Cost

3.12.2. Report Actual Cost (MA)

Thiết kế giao diện cho report actual cost (MA) về phần thông tin dự án thì

giống nhƣ report estimate cost, khác giữa phần báo cáo thực tế là sẽ có thêm person

incharge để hiển thị các nhân viên đƣợc thêm vào dự án của từng team, projected là

số giờ dự định của từng team, actual sẽ là số giờ thực tế của từng nhân viên đó làm,

phần cost per hours (VND) là số tiền đƣợc tính cho các nhân viên với từng giờ họ

làm đƣợc. Cuối cùng là amount để tính tổng tiền thực tế của từng nhân viên đối với

dự án đƣợc chọn trên dropdown. Revenues actual, revenues estimation đƣợc lấy dữ

Page 70: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 70

liệu từ chính 2 module trên, revenues – cost (actual) sẽ lấy phần revenues actual trừ

cho production cost actual và manpower cost.

H nh 41: Giao diện Report Actual Cost (MA)

3.12.3. Report Actual Cost (CR)

Giao diện của report actual cost (CR) đƣợc thiết kế có những điểm giống và

khác nhau với report actual cost (MA) mục đích của module này là để hiển thị ra sự

chênh lệch số giờ giữa các nhân viên thuộc các team tham gia từ từng dự án.

H nh 42: Giao diện Report Actual Cost (CR)

Page 71: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 71

3.12.4. Report Profit And Loss (CR)

Giao diện của report profit and loss gồm project đƣợc thiết kế là multiple để

cho phép có thể chọn cùng lúc nhiều project để xuất ra báo cáo, client là dropdown

chỉ đƣợc chọn khách hàng từ danh sách khách hàng. Start date và Endate là field

đƣợc thiết kế kiểu date time để lọc ngày bắt đầu và kết thúc mục đích liệt kế các

thông tin của dự án tồn tại trong khoảng thời gian đó.

H nh 43: Giao diện Report Profit And Loss (CR)

3.12.5. Report Profit And Loss (MA)

Phần thiết kế của report profit and loss (MA) về cơ bản cũng tƣơng tự nhƣ

report profit and loss (CR) gồm project đƣợc thế kế là multiple để cho phép có thể

chọn cùng lúc nhiều project để xuất ra báo cáo, client là dropdown chỉ đƣợc chọn

khách hàng từ danh sách khách hàng. Start date và Endate là field đƣợc thiết kế kiểu

date time để lọc ngày bắt đầu và kết thúc mục đích liệt kế các thông tin của dự án

tồn tại trong khoảng thời gian đó. Ngoài ra nó còn hiển thị thêm: Manpower cost,

production cost, margin.

Page 72: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 72

H nh 44: Giao diện Report Profit And Loss (MA)

3.12.6. Report Revenues Projection

Giao diện Revenues Projection đƣợc thiết kế với các yêu cầu lọc đơn giản

gồm : Start date, end date, để lọc khoảng thời gian thực hiện các hóa đơn. Thông tin

của các hóa đơn sẽ đƣợc hiện thị gồm : Date, Invoice Number, Project Code, Client,

Description, Amount, VAT, Total Amount, Payment status. Các thông tin đó đƣợc

lấy hoàn toàn từ module Revenues Actual.

H nh 45: Giao diện Report Revenues Projection

3.12.7. Report timesheet

Report timesheet đƣợc thiết kế với nhiều tiêu chí để lọc dữ liệu gồm: 2 radio

button là by project và by employee khi chọn vào radio nào thì sẽ hiện ra danh sách

tƣơng ứng với project hay employee, dropdown month để hiện thị các tháng trong

n m. Khi chọn theo radio by project chọn một dự án mà không chọn employee nào

Page 73: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 73

thì mặc định sẽ hiển thị ra hết các nhân viên trong dự án đó thời gian làm việc của

từng nhân viên. Khi chọn hiển thị theo Employee thì report sẽ hiện ra thông tin số

giờ làm việc của các nhân viên ứng với các dự án đã đƣợc lọc.

H nh 46: Giao diện Report Timesheet đƣợc lọc theo dự án

H nh 47: Giao diện Report Timesheet đƣợc lọc theo nhân viên

Page 74: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 3: THIẾT KẾ HỆ THỐNG Page 74

3.12.8. Report Timesheets (%)

Giao diện của report timesheet (%) đƣợc thiết kế với các tiêu chí lọc dự liệu

ít hơn report timesheets: employee (có thể chọn một hoặc nhiều nhân viên),

dropdown để hiển thị các tháng trong n m. Sau khi lọc dữ liệu xong, dữ liệu đƣợc

hiển thị lại và đƣợc tính phần tr m theo từng cột %.

H nh 48: Giao diện Report Tímesheet (%)

Page 75: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 75

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED

Dựa trên khảo sát và có đƣợc những thông tin cần thiết cần lƣu trữ cho hệ

thống bên công ty Red. Với những module có sẵn trong phần mềm mã nguồn mở

SugarCRM nhƣ: Account, Contact, Lead… thì chỉ có module Account có thể hỗ trợ

đƣợc cho hệ thống nên giữ lại và sẽ có những chỉnh sửa để đáp ứng đúng theo yêu

cầu bên phía Red, đối với các công việc còn lại phải xây dựng thêm các module:

Projects, Teams, Salary, Timesheets, Leaving, Reports, Production cost actual,

Revenues actual, Production cost estimation, Revenues estimation, publicdays

H nh 49: Màn h nh đăng nhập vào hệ thống

4.1. Module Account

Module Account là module có sẵn của SugarCRM, vì thế nó có nhiều thông

tin lƣu trữ không cần dùng đến khi áp dụng bên Red. Đầu tiên sử dụng công cụ

module builder để xây dựng các dữ liệu về khách hàng cần lƣu là: Name, Email,

Office phone, Fax, Billing Address... Ngoài ra phải bổ sung thêm field: business

type để xem nhƣng khách hàng đó thuộc kiểu kinh doanh gì, business type gồm:

Real Estate, FMCG, Education, Service, Others.

Cách tạo một drop down để lƣu trữ business type: vào đƣờng dẫn

Page 76: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 76

custom/include/language/en_us.lang.php

Đây là nơi để khai báo các app_list_strings, tiến hành thêm đoạn code

$GLOBALS['app_list_strings']['business_type_dom']=array (

'' =>'',

'Real Estate' => 'Real Estate',

'FMCG' => 'FMCG',

'Education' => 'Education',

'Service' => 'Service',

'Others' => 'Others',

);

Sau đó có thể dùng công cụ studio để tùy biến giao diện muốn hiển thị

H nh 50: Màn h nh edit account

4.2. Module Projects

Đầu tiên xây dựng module C_Project bằng công cụ module builder gồm các

field nhƣ: Project code, project name, start date, end date, project manager, client,

status, description. Lƣu ý các field đƣợc đánh dấu sao là các field bắt buộc phải

nhập. Project code phải xử lý không cho phép nhập trùng project code. End date

không đƣợc nhỏ hơn start date.

Jquery để xử lý việc kiểm tra project code không đƣợc trùng, end date không

đƣợc nhỏ hơn start date

Page 77: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 77

// Khoi tao ham validate rong. Ham nay phai nam ngoai, khong

duoc nam trong jQuery

function custom_validate(){}

function removeValidate(){}

// jQuery

$(document).ready(function(){

// Trang vua khoi dong thi gan nhung thuoc tinh sau

$('#end_date').parent().append('<div id="date_validator"

style="color: red;"></div>');

$('#job_code').parent().append('<div id="code_validator"

style="color: red;"></div>');

// Xoa bo trang thai thong bao validate sau 3.5s

removeValidate = function(){

$('#job_code').css('background-color', 'white');

$('#start_date').css('background-color', 'white');

$('#end_date').css('background-color', 'white');

}

// Xoa bo Project Code khi duplicate

if($('input[name=duplicateSave]').length>0){

if($('input[name=duplicateSave]').val()=='true'){

$('#job_code').val('');

}

}

// Khoa Project Code lai khi da ton tai (khong cho edit)

if($('input[name=record]').val() !=''){

$('#job_code').attr('readonly',true);

}

// Xoa bo trang thai validate ngay khi nguoi dung nhap

Project Code moi

$('#job_code').live('keyup', function(){

$('#code_validator').text('');

Page 78: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 78

Thêm đoạn Jquery vào đƣợc dẫn: custom/modules/C_project/js/editview.js

Muốn đƣa đƣợc Jquery màn hình edit view thì phải include Jquery vào đƣờng dẫn:

custom/modules/C_project/metadata/editviewdefs.php

Cấu trúc để include vào file editviewdefts.php

'includes' =>

array (

0 =>

array (

'file' => 'custom/include/javarscripts/jquery.js',

),

1 =>

array (

'file' =>

'custom/include/javarscripts/jquery.ui.min.js',

),

2 =>

array (

'file' =>

'custom/include/javarscripts/dateValidate.js',

),

3 =>

array (

'file' => 'custom/modules/C_project/js/editview.js',

),

),

Page 79: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 79

H nh 51: Màn h nh tạo mới Project

Khi điền các thông tin cần thiết cho project xong thì tại module project ngƣời

sử dụng có thể tạo các thông tin liên quan đến project, nhƣ thêm các nhân viên tham

gia vào dự án, điền các chi phí dự tính cho dự án, doanh thu dự kiến dành cho dự án

…..

Page 80: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 80

H nh 52: Màn h nh chi tiết các thông tin liên quan đến Project

Page 81: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 81

4.3. Module timesheets

Module timesheets đƣợc tạo bằng cách khá là mới mẻ so với các module

trƣớc, đầu tiên ngƣời phát triển cũng tạo ra module C_Timesheets trong module

builder và không tạo ra bất kì các field nào. Sau khi đã tạo xong module timesheet

và deloy để đƣa module vào hệ thống, ngƣời phát triển sẽ tiền hành tạo giao diện

cho module timesheet bằng cách chỉnh sửa file view.edit.php trong đƣờng dẫn:

custom/modules/C_TimeSheets/views/view.edit.php

Hàm để lấy ra danh sách các dự án mà user đ ng nhập đƣợc thêm vào.

global $app_list_strings, $mod_strings, $current_user, $db;

global $db, $current_user;

// Can lay ra project da duoc assign cho phong ban cua current

user

$sql_get_projects = 'SELECT DISTINCT

p.id,

p.name,

p.job_code

FROM c_project_users_c pu

LEFT JOIN c_project p

ON p.id = pu.project_id

LEFT JOIN users u

ON u.id = pu.user_id

WHERE pu.user_id =

"'.$current_user->id.'" AND p.deleted = 0 AND p.project_status

= "enable"';

$result = $db->query($sql_get_projects);

while($projects = $db->fetchByAssoc($result)){

if($projects['name']!= "")

$app_list_strings['project_list'][$projects['id']] = "[" .

$projects['job_code']. "] " . $projects['name'];

}

unset($app_list_strings['project_list']['all']);

Page 82: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 82

Sau khi đã lấy đƣợc danh sách các dự án, ngƣời phát triển sẽ tiến hành tạo ra

giao diện lịch cho màn hình bằng cách sử dụng script. Sau khi đã hiển thị đƣợc phần

lịch lên màn hình, ngƣời phát triển tiến hành lọc từng ngày trong lịch ứng với loại

ngày: leaving dates, public day, today hay là ngày điền timesheet.

//check leaving dates

$query = "SELECT * FROM leaving WHERE deleted = 0 AND

assigned_user_id='{$current_user->id}'";

$result = $db->query($query);

while($row = $db->fetchByAssoc($result)){

$dates = $row['leaving_date'];//04/12/2012,04/18/2012

$dates = explode(",", $dates);

if(count($dates) > 0 && $dates[0] != "" ){

for($i=0;$i<count($dates); $i++){

$d = trim($dates[$i]);

$month = intval(substr($d,0,2))-1;//tru 1 moi la thang trong

javascript

$day = intval(substr($d,3,2));

$year = intval(substr($d,6,4));

if($day > 0 && $month > 0 && $year > 0){

if($row['leaving_approval'] == 'approval' &&

$row['leaving_type']=='fullday'){

$script.= " jQuery('#date').glDatePicker('setSelectedDate', new

Date($year,$month,$day), 'leaving'); ";

}

if($row['leaving_approval'] == 'approval' &&

$row['leaving_type']=='halfday'){

$script.= " jQuery('#date').glDatePicker('setSelectedDate', new

Date($year,$month,$day), 'leave_half_day'); ";

}

}

}

}

Page 83: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 83

Thời gian làm việc của nhân viên

Các public day

//get all timesheet

$query = "SELECT * FROM c_timesheets WHERE deleted = 0 AND

assigned_user_id='{$current_user->id}'";

$result = $db->query($query);

//display time sheet into javascript

while($row = $db->fetchByAssoc($result)){

$date = $row['apply_date'];//2012-04-12

$day = substr($date,8,2);

$month = intval(substr($date,5,2))-1;//tru 1 moi la thang trong

javascript

$year = substr($date,0,4);

$script.= " jQuery('#date').glDatePicker('setSelectedDate',

new Date($year,$month,$day), 'timesheet'); ";

}

//public day

$publicday_query = "SELECT public_day FROM c_publicdays WHERE

deleted = 0" ;

$publicday_result = $db->query($publicday_query);

while($publicday_row = $db->fetchByAssoc($publicday_result)){

$day = date('d',strtotime($publicday_row['public_day']));

$month = date('m',strtotime($publicday_row['public_day']))-1;

$year = date('Y',strtotime($publicday_row['public_day']));

$script.= " jQuery('#date').glDatePicker('setSelectedDate', new

Date($year,$month,$day), 'public_day'); ";

}

Page 84: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 84

Ngƣời phát triển khi đã lấy đƣợc dữ liệu cần xuất ra màn hình sẽ tiến hành

dùng các code html để hiển thị các dữ liệu ra theo ý muốn. Sau đó sẽ dùng custom

code để gọi lại các script,html, hay css vừa tạo ở view.edit.php.

Module timesheets đƣợc tạo ra với giao diện dễ sử dụng và khi đ ng nhập

vào hệ thống thì mặc định sẽ đƣợc gọi đến module timesheet. Thông tin module

timesheet sẽ đƣợc hiển thị trên tấm lịch với các màu tƣơng ứng đƣợc chú thích phía

dƣới tấm lịch. Khi điền thời gian làm việc thì nhân viên sẽ chọn ngày và thời gian

làm việc rồi bấm vào button add, khi đã add xong các công việc phải làm thì nhân

viên sẽ bấm button save để hoàn tất việc lƣu dữ liệu xuống database. Ở module này

phải xử lý đƣợc khi nhân viên đã đƣợc cho phép nghỉ thì sẽ không đƣợc add

timesheet vào ngày hôm đó.

H nh 53: Màn h nh Timesheets

4.4. Module Teams

Dựa trên những thiết kế về giao diện ban đầu thì module team sẽ đƣợc tạo ra

bằng cách dùng công cụ module builder để tạo ra các field name, cost per hour,

assigned to và description. Module này dùng để lƣu thông tin của các nhóm, sau khi

tạo thông tin về nhóm xong, thì cho phép thêm các nhân viên vào nhóm. Module

teams có mối quan hệ n-n với module user để có thể chọn các user vào team. Tuy

nhiên để cho đồng nhất code với hệ thống ta phải bỏ đi button create user ở

subpanel user. Cách bỏ button create ở subpanel là vào đƣờng dẫn:

custom/modules/C_derpartment/Ext/Layoutdefs/layoutdefs.ext.php

Trong file này ta có thể bỏ đi phần tạo button create

Page 85: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 85

Hàm xử lý cost_per_hour

$layout_defs["C_derpartment"]["subpanel_setup"]['users_c_derpar

tment'] = array (

'order' => 100,

'module' => 'Users',

'subpanel_name' => 'default',

'sort_order' => 'asc',

'sort_by' => 'id',

'title_key' => 'LBL_USERS_C_DERPARTMENT_FROM_USERS_TITLE',

'get_subpanel_data' => 'users_c_derpartment',

'top_buttons' =>

array (

1 =>

array (

'widget_class' => 'SubPanelTopSelectButton',

'mode' => 'MultiSelect',

),

),

);}

function checkForm(){

var thang1 = 0;

if($('#cost_per_hour').val() != ''){cost_per_hour =

unformatNumber($('#cost_per_hour').val(),num_grp_sep, dec_sep);

if(cost_per_hour > 0){

if(cost_per_hour<0 || isNaN(cost_per_hour)){

cost_per_hour=0;

}

$('#cost_per_hour').val(formatNumber(cost_per_hour,num_grp_sep,

dec_sep));

}else{

$('#cost_per_hour').val('');

}

}

}

Page 86: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 86

H nh 54: Màn h nh nhập team và xem các user đƣợc thêm vào team

4.5. Module salary

Module salary đƣợc tạo ra để đáp ứng việc lƣu và thay đổi lƣơng của các

nhân viên trong công ty, module đƣợc thiết kế đơn giản để nhân viên kế toán có thể

nhập lƣơng của từng nhân viên trong từng tháng của n m. Module này đƣợc tạo ra

và chỉ duy nhất có nhân viên kế toán mới có quyền vào module này. Đầu tiên ngƣời

phát triển cần phải sử dụng module builder để tạo module C_Salary gồm các field là

12 tháng trong n m, và một dropdown là year để chƣa n m cấp lƣơng cho nhân viên

trong hệ thống. Khi đã tạo đầy đủ các field cho module salary thì ngƣời phát triển sẽ

tiến hành deloy để đƣa module C_Salary vào hệ thống. Khi module salary đƣợc đƣa

vào hệ thống, ngƣời phát triển sẽ tiến hành dùng Jquery để format lại tiền lƣơng ứng

với từng tháng dành cho nhân viên. Tạo một file script.js và đƣa vào đƣờng dẫn:

custom/modules/C_Salary/js/script.js

Hàm bên dƣới sẽ giúp cho nhân viên kế toán khi nhập tháng lƣơng của tháng 1 của

nhân viên thì các tháng còn lại sẽ tự động đƣợc nhập mức lƣơng đó cho các tháng

còn lại trong n m.

Page 87: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 87

function checkForm(){

var thang1 = 0,thang2 = 0,thang3 = 0,thang4 = 0,thang5

= 0,thang6 = 0,thang7 = 0,thang8 = 0,thang9 = 0,thang10 =

0,thang11 = 0,thang12 = 0;

if($('#thang1').val() != ''){

thang1 =

unformatNumber($('#thang1').val(),num_grp_sep, dec_sep);

if(thang1 > 0){

if(thang1<0 || isNaN(thang1)){

thang1=0;

}

$('#thang1').val(formatNumber(thang1,num_grp_sep,

dec_sep));

$('#thang2').val(thang1);

$('#thang3').val(thang1);

$('#thang4').val(thang1);

$('#thang5').val(thang1);

$('#thang6').val(thang1);

$('#thang7').val(thang1);

$('#thang8').val(thang1);

$('#thang9').val(thang1);

$('#thang10').val(thang1);

$('#thang11').val(thang1);

$('#thang12').val(thang1);

}else{

$('#thang1').val('');

}

}

}

Page 88: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 88

Hàm xử lý tháng lƣơng các tháng còn lại, khi nhân viên kế toán tiến hành cập

nhật lƣơng cho các tháng tiếp theo.

Hàm đƣợc dùng để cho hệ thống chỉ chấp nhận cho riêng nhân viên kế toán

có id là 41be42b0-4a52-2e77-e911-4fa350386d9b đƣợc truy cập vào module salary,

và admin cũng không truy cập đƣợc vào module này. Hàm này đƣợc đặt trong

đƣờng dẫn: modules/C_Salary/C_Salary.php

if($('#thang2').val() != ''){

thang2 =

unformatNumber($('#thang2').val(),num_grp_sep, dec_sep);

if(thang2 > 0){

if(thang2<0 || isNaN(thang2)){

thang2=0;

}

$('#thang2').val(formatNumber(thang2,num_grp_sep,

dec_sep));

}else{

$('#thang2').val('');

}

}

function deny(){

global $current_user;

if($_GET['module'] == 'C_Salary'){

if($current_user->id != '41be42b0-4a52-2e77-e911-

4fa350386d9b'){

header('Location:

index.php?module=Home&warning=1');

}

}

}

Page 89: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 89

H nh 55: Màn h nh Salary

4.6. Module report

Module report đƣợc tạo ra để cho phép ngƣời quản lý và nhân viên kế toán

có thể lọc dữ liệu theo các dự án và xuất các thông tin ra file excel. Module report

đƣợc tạo ra có phần khác với các module nhƣ salary hay project. Đầu tiên ngƣời

phát triển sẽ dùng module để tạo ra module C_Report mà không có bất kì field nào

và deloy để đƣa module vào hệ thống. Khi module đã đƣợc đƣa vào hệ thống ngƣời

phát triển sẽ tiến hành tạo giao diện cho cho màn hình danh sách các report bằng

các thẻ HTML. Với các thẻ HTML sẽ tạo ra một table gồm nhiều dòng, và mỗi

dòng ứng với 1 đƣờng link dẫn đến giao diện của từng report tƣơng ứng. Code

HTML đƣợc tạo trong đƣờng dẫn: custom/modules/C_Report/views/view.list.php

Tƣơng tự ngƣời phát triển cũng có thể dựa vào các thẻ đó để tạo ra các

đƣờng link liên kết đến các report chi tiết.

Page 90: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 90

Khi đã tạo ra đƣợc giao diện danh sách các report, ngƣời phát triển tiến hành

tạo ra file action_view_map.php nằm trong đƣờng dẫn custom/modules/C_Report/

<h1><?php echo $mod_strings['LBL_REPORT']?></h1>

<table border="0" cellpadding="0" cellspacing="0" width="100%"

class="h3Row"><tr>

<td align="left" valign="top" colspan="2"><img

src="include/images/blank.gif"

alt="spacer" width="10" height="2"

border="0"><h3 style="margin: 0px;"><img

src="include/images/blank.gif"

alt="spacer" width="10" height="2"

border="0"></td>

</tr></table>

<table border="0" cellpadding="0" cellspacing="1"

width="100%" class="h3Row">

<tr>

<td class="tabDetailViewDF" nowrap="nowrap"

width="20%"><img src="themes/default/images/yellow_camp.gif"

width='16' height='16' alt="" border="0" align="absmiddle" />

<h1><a href=" <?php echo

"./index.php?module=".$currentModule."&action=reportestimatecos

t"; ?>"<strong><?php echo

$mod_strings['LBL_REPORT_ESTIMATE_COST'];

?></strong></a></h1></td>

<td class="tabDetailViewDL"

width="30%">&nbsp;</td>

</tr>

<?php

$action_view_map = array(

'editview' => 'list',

'detailview' => 'list',

'reportestimatecost'

=>'reportestimatecost',

);

?>

Page 91: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 91

H nh 56: Màn h nh danh sách các report

Các mẫu report dựa trên form mẫu đƣa ra sẽ đƣợc thiêt kế y hệt. Sau đó dùng

các câu lệnh truy vấn để trích lọc dữ liệu hiển thị ra bên ngoài

4.6.1. Report estimate cost

Report estimate cost sẽ hiển thị thông tin của dự án mà ngƣời sử dụng muốn

xuất ra và các chi phí dự tính danh cho từng phòng ban, cũng nhƣ các phí khác nhƣ

vé máy bay hoặc n uống…… Cách tạo report estimate cost bằng cách tạo

view.reportestimatecost.php nằm trong đƣờng dẫn:

custom/modules/C_Report/views/

Trong file này ngƣời phát triển sẽ dùng những thẻ HTML để tạo ra giao diện

hiển thị cho report estimate cost, các thẻ HTML này sẽ đƣợc đặt trong biến result để

hiển thị ra bên ngoài màn hình.

Page 92: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 92

Hàm hiển thị màn hình của report estimate cost.

function display(){

global $db, $mod_strings, $app_list_strings;

global $timedate;

$ss = new Sugar_Smarty();

C_Report::getProjectList();

$ss->assign('MOD', $mod_strings);

$ss->assign('PROJECT_ID',

get_select_options_with_id($app_list_strings['project_list'],

$_REQUEST['project_id']));

$ss->assign('START_DATE', $_REQUEST['start_date']);

$ss->assign('END_DATE', $_REQUEST['end_date']);

$ss->assign('CALENDAR_DATEFORMAT', $timedate-

>get_cal_date_format());

// if(isset($_REQUEST['submit'])){

if(isset($_REQUEST['submit'])){//fix bug 930

// $project_id = $_REQUEST['project_id'];

$project_id = $_REQUEST['project_id'];//fix bug

930

$start_date = $_REQUEST['start_date'];

$end_date = $_REQUEST['end_date'];

$res = $this->processReport($project_id,

$start_date, $end_date);

$ss->assign('RESULT', $res);

}

$ss-

>display("custom/modules/C_Report/tpls/reportestimatecost.tpl")

;

}

Page 93: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 93

Câu truy vấn để lấy danh sách các project

Câu truy vấn để lấy danh sách các production cost estimation

$query = 'SELECT

a.name,

a.job_code,

a.start_date,

a.end_date,

c.name AS CLIENT,

a.end_date,

TRIM(CONCAT(IFNULL(d.first_name,""),"

",IFNULL(d.last_name," "))) AS full_name,

c.industry

FROM c_project a

LEFT JOIN accounts_c_project_c b

ON a.id = b.accounts_cba57project_idb AND

b.deleted=0

LEFT JOIN accounts c

ON c.id = b.accounts_cd932ccounts_ida AND

c.deleted=0

LEFT JOIN users d

ON d.id=a.assigned_user_id AND d.deleted=0

WHERE a.deleted=0 AND a.id="'.$project_id.'"';

$sql = 'SELECT a.name,a.amount FROM

c_production_cost_estimation a JOIN c_project_ct_estimation_c b

ON a.id=b.c_project_bdf7imation_idb AND b.deleted=0

AND b.c_project_8dd9project_ida="'.$project_id.'"';

Page 94: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 94

Câu truy vấn để lấy lên Manpower cost

H nh 57: Màn h nh Report estimate cost

$sql = '

SELECT

a.name,

a.projectshour,

d.cost_per_hour,

a.projectedminutes

FROM c_estimatecost a

JOIN c_project_cestimatecost_c b

ON a.id = b.c_project_60aaatecost_idb

AND b.deleted = 0

JOIN c_project e

ON e.id = b.c_project_faf3project_ida

AND e.id = "'.$project_id.'"

JOIN c_derpartment d

ON d.id = a.derpartment

WHERE a.deleted = 0

AND b.deleted = 0

AND d.deleted = 0

';

Page 95: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 95

4.6.2. Report actual cost

Report actual cost sẽ xuất ra các thông tin về dự án cũng nhƣ tính chi phí

thực tế dành cho dự án đó. Cách tạo report actual cost cũng tƣơng tự nhƣ cách tạo

report estimate cost. Ngƣời phát triển phải tạo một file view.reportactualcost.php

và đặt vào đƣờng dẫn: custom/modules/C_Report/views. Đồnng thời trong file

custom/modules/C_Report/action_view_map.php

Khai báo thêm dòng “'reportactualcost' =>'reportactualcost',”

Hàm hiển thị của report actual cost

Trong hàm có: $ss-

>display("custom/modules/C_Report/tpls/reportactualcost.tpl");

function display(){

global $db, $mod_strings, $app_list_strings;

global $timedate;

$ss = new Sugar_Smarty();

C_Report::getProjectList();

$ss->assign('MOD', $mod_strings);

$ss->assign('PROJECT_ID',

get_select_options_with_id($app_list_strings['project_list'],

$_REQUEST['project_id']));

$ss->assign('START_DATE', $_REQUEST['start_date']);

$ss->assign('END_DATE', $_REQUEST['end_date']);

$ss->assign('CALENDAR_DATEFORMAT', $timedate-

>get_cal_date_format());

// if(isset($_REQUEST['submit'])){

if(isset($_REQUEST['submit'])){ //fix bug 930

$project_id = $_REQUEST['project_id'];

$start_date = $_REQUEST['start_date'];

$end_date = $_REQUEST['end_date'];

$res = $this->processReport($project_id,

$start_date, $end_date);

$ss->assign('RESULT', $res);

}

$ss-

>display("custom/modules/C_Report/tpls/reportactualcost.tpl");

}

Page 96: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 96

Trong hàm có dòng:

$ss->display("custom/modules/C_Report/tpls/reportactualcost.tpl");

Dòng này dùng để hiển thị biến Sugar_Smarty bằng việc tạo giao diện trong file

reportactualcost.tpl

<body>

<hr class="horizontal_line"/>

<form action="index.php" id="frmForm" name="frmForm"

method="post">

<table cellpadding="0" cellspacing="0" width="100%"

border="0" style="border-collapse: collapse;">

<tr>

<td class="dataLabel">

<input type="hidden" name="module"

value="C_Report"/>

<input type="hidden" name="action"

value="reportactualcost" />

</td>

</tr>

<tr>

<td class="dataLabel"><h3 align="center"

style="text-transform:

uppercase;">{$MOD.LBL_REPORT_ACTUAL_COST}</h3></td>

</tr>

<tr>

<td

class="dataLabel"><b>{$MOD.LBL_SELECT_PROJECT}</b></td>

</tr>

<tr class="person_option">

<td class="dataField">

<select name="project_id" id="project_id"

size="1">{$PROJECT_ID}</select>&nbsp;&nbsp;&nbsp;<input

type="submit" name="submit" id="submit"

value="{$MOD.LBL_BUTTON_REPORT}">

</td>

</tr>

</table>

<hr class="horizontal_line"/>

{$RESULT}

Page 97: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 97

Phần tpl này giúp hiện thị phần report actual cost

Khi nhấp vào button report sẽ nhận đƣợc action đến action đƣợc khai báo trong file

action_view_map.php .

Câu truy vấn để lấy giờ làm thực tế của từng nhân viên

</table>

<hr class="horizontal_line"/>

{$RESULT}

</form>

</body> </table>

<hr class="horizontal_line"/>

{$RESULT}

</form>

</body>

$sql = 'SELECT

a.name AS projects,

g.project,

l.name AS estimation,

c.id,

TRIM(CONCAT(IFNULL(c.first_name,"")," ",IFNULL(c.last_name,"

"))) AS full_name,

e.name,

g.hours,

g.MONTH,

l.projectshour,

l.projectedminutes

Page 98: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 98

LEFT JOIN users_c_derpartment_c d

ON c.id = d.users_c_de398cntusers_ida

AND d.deleted = 0

LEFT JOIN c_derpartment e

ON e.id = d.users_c_ded6c3artment_idb

AND e.deleted = 0

LEFT JOIN (SELECT f.id,u.last_name,p.name, p.name AS

project,p.id AS pj,

MAX(MONTH(f.apply_date)) AS MONTH,

(SUM(f.hours)+SUM(f.minutes)/60) AS hours,

f.assigned_user_id AS users

FROM c_timesheets f

INNER JOIN users u

ON u.id = f.assigned_user_id

INNER JOIN c_project_c_timesheets_c pt

ON pt.c_project_abe0esheets_idb = f.id

INNER JOIN c_project p

ON p.id = pt.c_project_6c85project_ida

WHERE f.deleted = 0 AND pt.deleted =0 AND

p.deleted = 0

GROUP BY f.assigned_user_id,p.id) g

ON g.users = c.id AND g.pj=a.id

LEFT JOIN (SELECT

h.c_project_faf3project_ida AS project,

i.id,

i.projectshour,

i.projectedminutes,

i.name,

k.id AS depa

FROM c_estimatecost i

JOIN c_derpartmeestimatecost_c j

ON i.id = j.c_derpartm96a0atecost_idb

Page 99: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 99

Câu truy vấn để lấy các chi phí bên ngoài thực tế (Production cost actual)

H nh 58: Màn h nh Report Actual cost

AND j.deleted = 0

JOIN c_derpartment k

ON k.id = j.c_derpartm5b51artment_ida

AND k.deleted = 0

JOIN c_project_cestimatecost_c h

ON i.id = h.c_project_60aaatecost_idb

AND h.deleted = 0

WHERE i.deleted = 0) l

ON l.project = a.id AND l.depa = e.id

WHERE a.id = "'.$project_id.'"

GROUP BY l.id,c.id

ORDER BY e.name';

$sql = 'SELECT a.name,a.amount FROM c_production_cost a JOIN

c_project_cduction_cost_c b ON b.c_project_d0c7on_cost_idb=a.id

AND b.deleted= 0 AND

b.c_project_37e0project_ida="'.$project_id.'"';

Page 100: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 100

4.7. Module Manpower Cost

Module manpower cost đƣợc tạo theo cách thông thƣờng, bằng cách sử dụng

module builder để tạo ra module C_Manpowercost gồm các field: Team, Project

hour, Project minutes, và Description. Field project đƣợc tạo bằng cách tạo mối

quan hệ n-1 với module project. Sau khi đã tạo xong các field và tiến hành deloy để

đƣa module vào hệ thống. Ngƣời phát triển sẽ tiến hành các chỉnh sửa nhƣ: sẽ lấy

danh sách các team ở module Teams gán vào danh sách dropdown của field team.

Hàm lấy danh sách các team gán vào dropdown

function getDepartment($project_id){

global $app_list_strings,$db;

$sql ='

SELECT DISTINCT

a.id,

a.name

FROM c_derpartment a

WHERE a.id NOT IN(SELECT

c.derpartment

FROM c_estimatecost c

JOIN c_project_cestimatecost_c

d

ON c.id =

d.c_project_60aaatecost_idb AND c.deleted = 0 AND d.deleted = 0

AND

d.c_project_faf3project_ida = "'.$project_id.'")

AND a.deleted = 0

';

$result = $db->query($sql);

while($row = $db->fetchByAssoc($result)){

$app_list_strings['department_list'][$row['id']] =

$row['name'];

}

}

Page 101: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 101

Hàm để nối giờ với phút lại với nhau.

Hàm để update name cho module manpower cost (bởi vì mỗi record đều cần có

name để quản lý)

4.8. Đánh giá hệ thống

Để có đƣợc cái nhìn tổng quan và chính xác hơn em đã thực hiện cuộc khảo

sát các nhân viên bên công ty Red về các vấn đề hệ thống đang sử dụng hiện tại và

đạt đƣợc kết quả khảo sát nhƣ sau:

1. Anh/chị đánh giá thế nào về mức độ dễ sử dụng của giao diện trang của hệ

thống Red online timesheet ? (Lựa chọn tƣơng ứng 1: rất khó sử dụng, 4: rất

dễ sử dụng)

Trả lời Số lƣợng

function concatHourAndMinute(&$bean,$event,$arguments){

global $db;

$sql= "select projectshour from c_estimatecost

where id='".$bean->id."' ";

$result = $db->query($sql);

$row = $db->fetchByAssoc($result);

$bean->projectedminutes = $row[projectshour]." : ".

$bean->projectedminutes;

}

function update_name(&$bean,$event,$arguments){

$department = new C_derpartment();

$department->retrieve($bean-

>c_derpartm5b51artment_ida);

$bean->name = $department->name;

}

Page 102: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 102

4 13

3 16

2 2

1 0

Tổng 31

2. Theo anh/chị hệ thống chạy có ổn định và đƣa ra đƣợc kết quả chính xác

không? (Lựa chọn tƣơng ứng: 1 rất không chính xác, 4: rất chính xác)

Trả lời Số lƣợng

4 16

3 12

2 3

1 1

Tổng 31

3. Anh/chị đánh giá nhƣ thế nào về tốc độ xử lý yêu cầu khi thực hiện các thao

tác. (Lựa chọn tƣơng ứng 1: rất chậm, 4: rất nhanh)

Trả lời Số lƣợng

4 18

3 10

2 3

1 0

Tổng 31

4. Anh/chị có thấy hệ thống hiện tại giải quyết đƣợc những vấn đề trƣớc đây

anh/chị gặp phải không? (Lựa chọn tƣơng ứng 1:không tốt, 4: rất tốt)

Trả lời Số lƣợng

4 20

3 10

2 1

1 0

Tổng 31

Page 103: Đồ án tốt nghiệp: Triển khai CRM thực tế

CHƢƠNG 4: XÂY DỰNG HỆ THỐNG THỰC TẾ CHO RED Page 103

5. Anh/chị đánh giá thế nào về các dữ liệu cần lƣu trữ của hệ thống có đầy đủ

không ? (Lựa chọn tƣơng ứng 1: không đầy đủ, 4: rất đầy đủ)

Trả lời Số lƣợng

4 15

3 12

2 3

1 1

Tổng 31

Từ những kết quả trên ta có đƣợc biểu đồ khảo sát hệ thống nhƣ sau:

Mức độ dễ

sử dụng

giao diện

Tốc độ xử lý

yêu cầu

Hệ thống chạy

ổn định và đưa

ra kết quả chính

xác

Giải quyết

những vấn đề

gặp phải trước

đây

Các dữ liệu

cần lưu trữ của

hệ thống

4

3

2

1

0

Biểu đồ trên cho thấy mức độ dễ sử dụng giao diện, cũng nhƣ tốc độ xử lý và

kết quả mong muốn của hệ thống Red online timesheet là tƣơng đối tối. Tuy nhiên

mức độ dễ sử dụng của giao diện chƣa đạt đƣợc nhƣ mong muốn.

Page 104: Đồ án tốt nghiệp: Triển khai CRM thực tế

KẾT LUẬN Page 104

KẾT LUẬN

Sau quá trình nghiên cứu tìm hiểu lý thuyết và xây dựng ứng dụng, em đã đạt

đƣợc những kết quả sau:

Trình bày đƣợc những kiến thức về cấu trúc SugarCRM.

Triển khai phần mềm quản lý quan hệ khách hàng cho công ty Red áp dụng

mã nguồn mở SugarCRM.

Hạn chế

Ứng dụng chạy khá chậm nếu máy không có cấu hình mạnh

Muốn thao tác rành đƣợc trên phần mềm phải đƣợc hƣớng dẫn kĩ.

Hƣớng phát triển

Cải tiến cách viết code và xử lý các câu truy vấn để t ng tốc độ xử

lý của ứng dụng.

Thiết kế đơn giản hơn để ngƣời sử dụng có thể dễ dàng làm việc.

Page 105: Đồ án tốt nghiệp: Triển khai CRM thực tế

TÀI LIỆU THAM KHẢO Page 105

TÀI LIỆU THAM KHẢO

[1] John Mertic, The Definitive Guide To SugarCRM, USA,2009

[2] www.Sugarcrm.com,

Sugar_CommunityEdition_Application_Guide_6.1.0.pdf,Version6.1.0, 31/05/2012.

[3]

http://support.sugarcrm.com/02_Documentation/04_Sugar_Developer/Sugar_Devel

oper_Guide_6.4 Truy cập ngày 15/04/2012

[4] http://www.susasoft.com/phan-mem-CRM/quy-trinh-trong-sugarCRM-

17.html, 10:00 ngày 15/03/2012

.

Page 106: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 106

PHỤ LỤC 1

1. Mục đích

Tài liệu này hƣớng dẫn các bạn cài đặt phần mềm SugarCRM vào hệ thống

của bạn

2. Yêu cầu hệ thống

+ Hệ điều hành: windows xp, windows server 2003/2008, windows 7, lilux

+ webserver: apache, IIS

+ Database: Mysql, SQL Server

+ Trình duyệt: Internet explorer 6,7,8,9/ firfox 2,3,4/ safari/ opera/ google

chrome

3. Hƣớng dẫn cài đặt

B1: Tải XAMPP về (bản .exe cho Win 32) và cài đặt lên server. Sau khi cài xong

XAMPP tại ổ D, ta có đƣờng dẫn nhƣ sau: D:\xampp. Trong tài liệu này, ta dùng

XAMPP phiên bản 1.6.7 xampp-win32-1.6.7-installer.exe)

Địa chỉ tải XAMPP:

http://www.oldapps.com/xampp.php?old_xampp=41#Download

B2: Cấu hình lại port cho apache server mục đích là tránh sự đụng độ port với các

web server khác nhƣ IIS

Thực hiện:

Mở file D:/xampp/htdocs/apache/conf/httpd.conf

Tìm đến

#Listen 12.34.56.78:80

Listen 80

ServerName localhost:80

Thay bằng:

#Listen 12.34.56.78:81

Page 107: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 107

Listen 81

ServerName localhost:81

Với 81 là port mới cho Apache.

B3:Cấu hình thƣ mục root cho apache:

Mở file C:/xampp/htdocs/apache/conf/httpd.conf

Tìm đến

DocumentRoot "C:/xampp/htdocs"

Thay bằng

DocumentRoot "C:/xampp/htdocs/xxx"

Với xxx là tên thƣ mục mới (nằm trong htdocs). Lúc này, nếu gõ http://localhost:81

trên trình duyệt thì thay vì chạy vào trang index.php của htdocs thì bây giờ sẽ chạy

thẳng vào website xxx.

Sau khi cài XAMPP và cấu hình XAMPP , kiểm tra dịch vụ Apache và MySQL

đang chạy nhƣ hình bên dƣới:

Page 108: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 108

Page 109: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 109

B4: chép source của phần mềm vào thƣ mục htdocs của XAMPP

Page 110: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 110

B5: tạo database MySQL cho phần mềm

Mở PhpMyadmin lên: http://localhost:81/phpmyadmin (81 là port Apache sau khi

cấu hình xong)

Page 111: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 111

Sau đó import file script database vào database vừa tạo

B6: cấu hình ứng dụng

Vào đƣờng dẫn : D:\xampp\htdocs\sugarcrm

Page 112: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 112

Trong file config.php thay đổi giá trị cho các thành phần sau

'db_user_name' => 'root', ( tên ngƣời dùng database, mặc định là root)

'db_password' => '', ( mật khẩu truy cập vào database, mặc định là rỗng)

'db_name' => sugarcrm, ( tên database )

Page 113: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 113

B7: truy cập vào ứng dụng

Nếu các bƣớc cấu hình ở trên thực hiện xong và đúng thì khi truy cập địa chỉ:

http:// localhost:81 sẽ xuất hiện hình bên dƣới

PHỤ LỤC 2

PHIẾU KHẢO SÁT

Kính chào anh/chị!

Hiện tại chúng tôi đang thực hiện khóa luận tốt nghiệp với đề tài “Triển khai

phần mềm quản lý quan hệ khách hàng” và đã xây dựng đƣợc hệ thống Red online

timesheet, mọi ngƣời có thể truy cập vào trang (user: admin pass: 123456)

http://clients.sugarcrm.com.vn/red/. Với mục tiêu xây dựng cũng nhƣ nâng cấp hệ

thống đƣợc tốt hơn, rất mong nhận đƣợc sự hỗ trợ của các anh/chị bằng cách trả lời

bảng khảo sát dƣới đây.

Chân thành cảm ơn

Ngƣời thực hiện đề tài: Mang Nhƣ Trung

(Anh/Chị vui lòng khoanh tròn câu trả lời tƣơng ứng cho từng câu hỏi sau)

Page 114: Đồ án tốt nghiệp: Triển khai CRM thực tế

PHỤ LỤC Page 114

1. Anh/chị đánh giá thế nào về mức độ dễ sử dụng của giao diện trang của hệ

thống Red online timesheet ? (Lựa chọn tƣơng ứng 1: rất khó sử dụng, 4: rất

dễ sử dụng)

1 2 3 4

2. Theo anh/chị hệ thống chạy có ổn định và đƣa ra đƣợc kết quả chính xác

không? (Lựa chọn tƣơng ứng: 1 rất không chính xác, 4: rất chính xác)

1 2 3 4

3. Anh/chị đánh giá nhƣ thế nào về tốc độ xử lý yêu cầu khi thực hiện các thao

tác. (Lựa chọn tƣơng ứng 1: rất chậm, 4: rất nhanh)

1 2 3 4

4. Anh/chị có thấy hệ thống hiện tại giải quyết đƣợc những vấn đề trƣớc đây

anh/chị gặp phải không? (Lựa chọn tƣơng ứng 1:không tốt, 4: rất tốt)

1 2 3 4

5. Anh/chị đánh giá thế nào về các dữ liệu cần lƣu trữ của hệ thống có đầy đủ

không ? (Lựa chọn tƣơng ứng 1: không đầy đủ, 4: rất đầy đủ)

1 2 3 4