You are on page 1of 158

STT Thông tin hiển thị tại MH danh sách biến BIẾN ĐỘNG TEST-

08/10
/2022

1 Tên biến: ngayNghiLe có


Mô tả: Ngày nghỉ lễ. Giá trị trả về là số ngày
nghỉ lễ
Kiểu dữ liệu: number

2 Lấy lên tất cả các mã loại nghỉ/ hình thức đi x có


làm để làm biến.
Format biến:
+ Tên biến = Mã của loại nghỉ/hình thức đi
làm + _soGio
+ Mô tả biến = Tên của loại nghỉ/hình thức đi
làm + Giá trị trả về là số giờ.
+ Loại dữ liệu: number
Ví dụ:
+ Tên biến: CKO
+ Mô tả: Nghỉ Phép. Giá trị trả về là số giờ.

4 Lấy lên tất cả các mã loại nghỉ/ hình thức đi x có


làm để làm biến.
Format biến:
+ Tên biến = Mã của loại nghỉ/hình thức đi
làm + _soNgay
+ Mô tả biến = Tên của loại nghỉ/hình thức đi
làm + Giá trị trả về là số ngày.
+ Loại dữ liệu: number
Ví dụ:
+ Tên biến: CKO
+ Mô tả: Nghỉ Phép. Giá trị trả về là số ngày.
6 Tên biến: nghiBu có
Mô tả biến: Nghỉ bù. Giá trị trả về là số ngày
được nghỉ bù
Loại dữ liệu: number

14 Tên biến: ngayNghi có


Mô tả biến: Ngày nghỉ thông thường theo
lịch và ca làm việc. Giá trị trả về là số ngày
nghỉ
Kiểu dữ liệu: number

15 Mã biến: ngayNghiViec có
Tên biến: Ngày nghỉ việc của CBNV
Kiểu dữ liệu: date

16 Mã biến: ngayVao có
Tên biến: Ngày vào công ty của CBNV
Kiểu dữ liệu: date
22 Mã biến: ngayHetThuViec có
Tên biến: Ngày hết hạn thử việc của CBNV
Kiểu dữ liệu: date

29

30 Mã biến: gioCongTheoNgay có
Tên biến: Số giờ công theo timesheet mỗi
ngày.
Kiểu dữ liệu: number
31 Mã biến: loaiNgay có
Tên biến: Thể hiện loại ngày làm việc thành
3 loại: Đi làm cả ngày, Đi làm nửa ngày, ngày
nghỉ. Nếu là loại đi làm cả ngày thì giá trị trả
về là 1. Các trường hợp còn lại trả về mã loại
ngày tương ứng.
Kiểu dữ liệu: text

32 Mã biến: gioLamViecTieuChuan có
Tên biến: Thể hiện số giờ làm việc tiêu chuẩn
của từng ngày làm việc
Kiểu dữ liệu: Number
33 Mã biến: ngayTinhCong có
Tên biến: Ngày tính công. Dữ liệu trả về là
ngày tháng năm tính công.
Kiểu dữ liệu: Date

34 Mã biến: Thông tin Mã tại bảng hằng số x có


theo giá trị
Tên biến: Thông tin Tên tại bảng hằng số
theo giá trị
Kiểu dữ liệu: number

35 Mã biến: gioVaoTieuchuan có
Tên biến: Giờ vào tiêu chuẩn
Kiểu dữ liệu: Time
36 Mã biến: gioRaTieuchuan có
Tên biến: Giờ ra tiêu chuẩn
Kiểu dữ liệu: Time

37 Mã biến: diMuonChoPhep có
Tên biến: Thời gian đi muộn cho phép
Kiểu dữ liệu: number
38 Mã biến: veSomChoPhep có
Tên biến: Về sớm cho phép
Kiểu dữ liệu: number

39 Lấy lên tất cả các mã trong bảng loại thời x có


gian chấm công
Format biến:
+ Tên biến = Mã
+ Mô tả biến = Tên.
+ Loại dữ liệu: Time
41 Lấy lên tất cả các mã loại làm thêm giờ để x có
làm biến.
Format biến:
+ Tên biến = Mã loại làm thêm giờ
+ Mô tả biến = Tên của loại làm thêm giờ +
Giá trị trả về là số giờ.
+ Loại dữ liệu: number
Ví dụ:
+ Mã biến:OtNgaythuongBanngay
+ Tên biến: Làm thêm giờ ngày thường ban
ngày mỗi ngày.

47 Lấy lên tất cả các mã trạng thái chấm công x có


để làm biến.
Format biến:
+ Tên biến = Mã trạng thái chấm công
+ Mô tả biến = Tên của trạng thái chấm
công.
+ Loại dữ liệu: Text
Ví dụ:
+ Mã biến: 001
+ Tên biến: không chấm công.
-----------------------------
Biến này nên sửa là: lấy biến là thằng cha:
trạng thái chấm công (Thuân gọi là biến
tĩnh), giá trị trả về mới là động để khi áp
dụng ct như là IF (trangthaichamcong =
h003,...)
49 + Tên biến: TongNgayTrongKy có
+ Mô tả biến: tổng ngày trong kỳ
+ Loại dữ liệu: number
VD: chạy công tháng 7: tổng ngày trong kỳ
trả về là 31
- chạy công tháng 8: tổng ngày trong kỳ trả
về là 30

50 +Tên biến: TongNgayOFFTrongKy có


+ Mô tả biến: tổng ngày OFF trong tháng
+ Loại dữ liệu: number
51 + Mã biến: PhongBan có
+ Tên biến: Phòng ban. Dữ liệu trả về là mã
phòng ban của cán bộ nhân viên trên hệ
thống.
+ kiểu dữ liệu: text

52 + Mã biến: ViTriCongViec có
+ Tên biến: Vị trí công việc. Dữ liệu trả về là
mã vị trí công việc của cán bộ nhân viên trên
hệ thống.
+ kiểu dữ liệu: text
53 + Mã biến: CanBoNhanVien có
+ Tên biến: Cán bộ nhân viên. Dữ liệu trả về
là mã cán bộ nhân viên trên hệ thống.
+ kiểu dữ liệu: text
Logic

- Nguyên tắc chung: Kết quả cần trả về theo từng ngày, theo
từng CBNV
- Từ màn hình đặt job hoặc chạy công sẽ xác định được:
(1) Các ngày cần tính công
(2) Các CBNV cần được tính toán

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải nghỉ lễ hay
không. Ngày nghỉ lễ là ngày có mã là L (hình minh hoạ bên)
TH1: Nếu có mã L => Trả về kết quả là 1
TH2: Nếu không có mã L => Trả về kết quả là 0

1. Cách lấy lên các biến: Truy cập vào bảng loại nghỉ/hình thức
đi làm. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập bảng quản lý thông tin nghỉ/vắng mặt (hình minh hoạ
bên)
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số giờ nghỉ của biến tương ứng

1. Cách lấy lên các biến: Truy cập vào bảng loại nghỉ/hình thức
đi làm. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập bảng quản lý thông tin nghỉ/vắng mặt (hình minh hoạ
bên)
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số ngày nghỉ của biến tương ứng
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải nghỉ bù hay
không. Ngày nghỉ bù là ngày có mã là "B" (hình minh hoạ bên)
TH1: Nếu có mã B => Trả về kết quả là 1
TH2: Nếu không có mã B => Trả về kết quả là 0

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải là ngày nghỉ
hoặc ngày nghỉ nửa ngày hay không?
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việckiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
TH1: Nếu dữ liệu trống => Trả về kết quả là 0.
TH2: Nếu dữ liệu có mã là "NN" => Trả về kết quả là 1
TH3: Nếu dữ liệu là " LV1/2" => Trả về kết quả là 0.5

Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày nghỉ việc.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
- Kết quả:
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0

Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày vào của CBNV.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0
Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày hết hạn thử việc của CBNV.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0

Từ dữ liệu Timesheet CBNV log


-> Hệ thống check và lấy ra tổng số giờ công mỗi ngày cho
CBNV. Trường hợp một ngày có nhiều dòng dữ liệu thì tính
tổng các dòng dữ liệu
-> Kết quả trả về đúng số giờ lấy được. Trường hợp không tìm
thấy dữ liệu của ngày tương ứng, trả về là 0
1. Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việc kiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
=> Dữ liệu trả về theo logic: Nếu là loại đi làm cả ngày thì giá trị
trả về là 1. Các trường hợp còn lại trả về mã loại ngày tương
ứng.

1. Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việc để lấy thông tin "Số giờ làm việc" (hình minh hoạ
bên)
=> Dữ liệu trả về là số giờ làm việc
- Từ màn hình đặt job hoặc chạy công sẽ xác định được khoảng
thời gian cần tính công => Xác định được tất cả các ngày cần
tính công.
=> Dữ liệu trả về là Ngày tính công.

Lấy lên hết tất cả các mã có trong bảng hằng số theo giá trị để
tạo thành biến
Kết quả trả về là thông tin cột "Giá trị"

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra giờ vào tiêu chuẩn của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
làm việc" - ô thời gian đầu tiên
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm tra giờ ra tiêu chuẩn của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
làm việc" - ô thời gian thứ 2 (hình minh hoạ)

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra thông tin Thời gian đi muộn cho phép của
từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
đi muộn cho phép". Nếu không có dữ liệu trả về 0
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm traThời gian về sớm cho phép của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
về sớm cho phép". Nếu không có dữ liệu trả về 0

1. Cách lấy lên các biến: Truy cập vào bảng Loại thời gian chấm
công. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập màn hình thời gian chấm công (hình minh hoạ). Với
từng Mã loại thời gian lấy ra "Thời gian" tương ứng
=> Kết quả:
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Có dữ liệu: -> Kết quả trả về là "Thời gian" tương ứng
của mã
1. Cách lấy lên các biến: Truy cập vào bảng loại làm thêm giờ.
(hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập vào màn hình quản lý làm thêm giờ lấy ra thông tin:
ngày làm thêm giờ, số giờ OT, loại làm thêm giờ: mã biến
tương ứng
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số giờ làm thêm của biến tương ứng
- Khi chạy công giá trị từng loại thêm giờ sẽ được cập nhật vào
bảng kết quả công theo từng CBNV và từng ngày tương ứng.

1. Cách lấy lên các biến: Truy cập vào bảng trạng thái chấm
công: Quản lý nhân sự >> Danh Mục >> Loại Danh mục: Trạng
thái chấm công
2. Cách lấy dữ liệu của từng biến
Truy cập vào màn hình lịch làm việc của CBNV tại hồ sơ nhân
sự
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
Căn cứ vào thời gian hiệu lực, lấy ra giá trị trạng thái chấm
công tương ứng. Kết quả trả ra theo từng ngày
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại bản ghi dữ liệu: -> Kết quả trả về là trạng thái
chấm công tương ứng
Cách lấy lên dữ liệu
- Căn cứ vào thời gian từ ngày - đến ngày chạy công (được xác
định khi sử dụng tính năng chạy công hoặc đặt lịch chạy định
kỳ) Xác định được kỳ chạy công tương ứng> Tại màn hình thiết
lập kỳ chạy công đếm số ngày của kỳ công đó> lấy lên tổng số
ngày thuộc kỳ công tương ứng
- Nếu thời gian từ ngày - đến ngày chứa nhiều kỳ công khác
nhau, dữ liệu trả về tương ứng, ngày nào của của kỳ công nào
thì dữ liệu hiển thị "tổng ngày trong tháng" của kỳ đó.

Cách lấy lên dữ liệu


- Căn cứ vào thời gian từ ngày - đến ngày chạy công (được xác
định khi sử dụng tính năng chạy công hoặc đặt lịch chạy định
kỳ) > Xác định được kỳ công tương ứng
- Đếm tất cả các ngày Off được xác định ở kỳ công > đây là
thông tin cần lấy ra kết quả. Cách xác định ngày OFF:
-> Lần lượt kiểm tra dữ liệu tại từng ngày thuộc kỳ công có phải
là ngày nghỉ hoặc ngày nghỉ nửa ngày hay không?
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việckiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
TH1: Nếu dữ liệu trống => Trả về kết quả là 0.
TH2: Nếu dữ liệu có mã là "NN" => Trả về kết quả là 1
TH3: Nếu dữ liệu là " LV1/2" => Trả về kết quả là 0.5
1. Danh mục phòng ban được lấy đường dẫn sau: quản lý nhân
sự > sơ đồ tổ chức
2. Khi chạy công, thông tin phòng ban gán với CBNV được lấy
tại màn hình hồ sơ nhân sự

1. Danh mục phòng ban được lấy đường dẫn sau: quản lý nhân
sự > danh mục > loại danh mục: vị trí
2. Khi chạy công, thông tin vị trí công việc gán với CBNV được
lấy tại màn hình hồ sơ nhân sự
1. Danh sách Cán bộ nhân viên được lấy tại màn hình hồ sơ
nhân sự: quản lý nhân sự > thông tin nhân sự
Hình ảnh minh hoạ
Màn hình thông tin nhân sự của CBNV:
Một số biến cụ thể cho Ví dụ giá trị HT trả Công thức cần tính
NGSC về theo cột J cho NGSC

ngayNghiLe 1 Nghỉ Lễ

NghiCheDo 8 Nghỉ chế độ

nghiConKetHon 0 nghỉ con kết hôn


nghiBu 1

ngayNghi 0.5 Nghỉ off

ngayNghiViec 0 Ngày nghỉ việc

ngayVao 6/25/2022 Số công thử việc


ngayHetThuViec 8/25/2022 Số công chính thức

gioCongTheoNgay 0
ngayTinhCong 6/25/2022

Tổng số ngày được


hưởng lương
(Giả sử CBNV join
vào ngày 25/6, và cty
chốt công đúng ngày
25.6)

gioVaoTieuchuan 08:30:00 AM Nếu đi muộn trừ 20k


Nếu về sớm trừ 20k
gioRaTieuchuan 17:30

diMuonChoPhep 15.00
veSomChoPhep 15

gioVaoThucTe 8:45
otngaythuongbanngay 2
tongngaytrong ky

tongngayofftrongky
phongban

vitricongviec
canbonhanvien
Công thức trên hệ thống CT excel
(test)
Giả sử chạy công cho 1CBNV cho 1 ngày duy nhất

=nghiLe 1

Nghỉ chế độ = 1.125


(nghiKetHon+nghiConKetHon+nghiMaChay+nghiBu)/8

=nghiconkethon
=nghiBu 1

=ngaynghi 0.5

=ngaynghiviec 0

=If(or(ngày tính công=<ngày hết hạn thử việc,ngày tính 0.5


công >= ngày vào),if(weekday(ngày tính
công)=6,0.5,if(or(giờ công theo ngày>=7,A=1),1, if(3=<giờ
công theo ngày<7,0.5,0)))
=If(ngày tính công > ngày hết hạn thử việc,if(weekday(ngày
tính công)=6,0.5,if(or(giờ công theo ngày>=7,A=1),1,
if(3=<giờ công theo ngày<7,0.5,0)))

= số công chính thức + số công thử việc + nghỉ phép + nghỉ


CD + nghỉ lễ
0
=ngaytinhcong

= If(gioVaoThucTe >= (gioVaoTieuChuan + 2.00


diMuonChoPhep), (gioVaoThucTe -
(gioVaoTieuChuan+diMuonChoPhep),0)
(ct quy ra giây cụ thể ở cột N)
=gioratieuchuan

=dimuonchophep
=vesomchophep

=giovaothucte
=otngaythuongbanngay 2
= tổng ngày trong kỳ

=tongngayOfftrongky
Element cần có tương ứng Gán cho element

NghiLe nghiLe

nghichedo nghichedo

nghiConKetHon nghiConKetHon
nghiBu nghiBu

Nghỉ off Nghỉ off

số công thử việc số công thử việc


ngaycongtieuchuan
số công chính thức số công chính thức
ngaycongtieuchuan

tongsongayhuongluong tongsongayhuongluong

gioCongTheoNgay gioCongTheoNgay
Dimuon Dimuon
otngaythuongbanngay otngaythuongbanngay
tongngaytrong thang tongngaytrongky

tongngayofftrongky tongngayofftrongky
Element theo ngày element theo kỳ

x x

x
x
x

XEM XÉT LẠI


x

X
x

X
x

X
XEM XÉT
x

XEM XÉT
x

x
STT Thông tin hiển thị tại MH danh sách biến BIẾN ĐỘNG

1 Tên biến: ngayNghiLe


Mô tả: Ngày nghỉ lễ. Giá trị trả về là số ngày
nghỉ lễ
Kiểu dữ liệu: number

2 Lấy lên tất cả các mã loại nghỉ/ hình thức đi x


làm để làm biến.
Format biến:
+ Tên biến = Mã của loại nghỉ/hình thức đi
làm + _soGio
+ Mô tả biến = Tên của loại nghỉ/hình thức đi
làm + Giá trị trả về là số giờ.
+ Loại dữ liệu: number
Ví dụ:
+ Tên biến: CKO
+ Mô tả: Nghỉ Phép. Giá trị trả về là số giờ.

4 Lấy lên tất cả các mã loại nghỉ/ hình thức đi x


làm để làm biến.
Format biến:
+ Tên biến = Mã của loại nghỉ/hình thức đi
làm + _soNgay
+ Mô tả biến = Tên của loại nghỉ/hình thức đi
làm + Giá trị trả về là số ngày.
+ Loại dữ liệu: number
Ví dụ:
+ Tên biến: CKO
+ Mô tả: Nghỉ Phép. Giá trị trả về là số ngày.
6 Tên biến: nghiBu
Mô tả biến: Nghỉ bù. Giá trị trả về là số ngày
được nghỉ bù
Loại dữ liệu: number

14 Tên biến: ngayNghi


Mô tả biến: Ngày nghỉ thông thường theo
lịch và ca làm việc. Giá trị trả về là số ngày
nghỉ
Kiểu dữ liệu: number

15 Mã biến: ngayNghiViec
Tên biến: Ngày nghỉ việc của CBNV
Kiểu dữ liệu: date

16 Mã biến: ngayVao
Tên biến: Ngày vào công ty của CBNV
Kiểu dữ liệu: date

22 Mã biến: ngayHetThuViec
Tên biến: Ngày hết hạn thử việc của CBNV
Kiểu dữ liệu: date
30 Mã biến: gioCongTheoNgay
Tên biến: Số giờ công theo timesheet mỗi
ngày.
Kiểu dữ liệu: number

31 Mã biến: loaiNgay
Tên biến: Thể hiện loại ngày làm việc thành
3 loại: Đi làm cả ngày, Đi làm nửa ngày, ngày
nghỉ. Nếu là loại đi làm cả ngày thì giá trị trả
về là 1. Các trường hợp còn lại trả về mã loại
ngày tương ứng.
Kiểu dữ liệu: text
32 Mã biến: gioLamViecTieuChuan
Tên biến: Thể hiện số giờ làm việc tiêu chuẩn
của từng ngày làm việc
Kiểu dữ liệu: Number

33 Mã biến: ngayTinhCong
Tên biến: Ngày tính công. Dữ liệu trả về là
ngày tháng năm tính công.
Kiểu dữ liệu: Date

34 Mã biến: Thông tin Mã tại bảng hằng số x


theo giá trị
Tên biến: Thông tin Tên tại bảng hằng số
theo giá trị
Kiểu dữ liệu: number
35 Mã biến: gioVaoTieuchuan
Tên biến: Giờ vào tiêu chuẩn
Kiểu dữ liệu: Time

36 Mã biến: gioRaTieuchuan
Tên biến: Giờ ra tiêu chuẩn
Kiểu dữ liệu: Time
37 Mã biến: diMuonChoPhep
Tên biến: Thời gian đi muộn cho phép
Kiểu dữ liệu: number

38 Mã biến: veSomChoPhep
Tên biến: Về sớm cho phép
Kiểu dữ liệu: number
39 Lấy lên tất cả các mã trong bảng loại thời x
gian chấm công
Format biến:
+ Tên biến = Mã
+ Mô tả biến = Tên.
+ Loại dữ liệu: Time

41 Lấy lên tất cả các mã loại làm thêm giờ để x


làm biến.
Format biến:
+ Tên biến = Mã loại làm thêm giờ
+ Mô tả biến = Tên của loại làm thêm giờ +
Giá trị trả về là số giờ.
+ Loại dữ liệu: number
Ví dụ:
+ Mã biến:OtNgaythuongBanngay
+ Tên biến: Làm thêm giờ ngày thường ban
ngày mỗi ngày.
47 Lấy lên tất cả các mã trạng thái chấm công x
để làm biến.
Format biến:
+ Tên biến = Mã trạng thái chấm công
+ Mô tả biến = Tên của trạng thái chấm
công.
+ Loại dữ liệu: Text
Ví dụ:
+ Mã biến: 001
+ Tên biến: không chấm công.
-----------------------------
Biến này nên sửa là: lấy biến là thằng cha:
trạng thái chấm công (Thuân gọi là biến
tĩnh), giá trị trả về mới là động để khi áp
dụng ct như là IF (trangthaichamcong =
h003,...)

49 + Tên biến: TongNgayTrongKy


+ Mô tả biến: tổng ngày trong kỳ
+ Loại dữ liệu: number
VD: chạy công tháng 7: tổng ngày trong kỳ
trả về là 31
- chạy công tháng 8: tổng ngày trong kỳ trả
về là 30
50 +Tên biến: TongNgayOFFTrongKy
+ Mô tả biến: tổng ngày OFF trong tháng
+ Loại dữ liệu: number

51 + Mã biến: PhongBan
+ Tên biến: Phòng ban. Dữ liệu trả về là mã
phòng ban của cán bộ nhân viên trên hệ
thống.
+ kiểu dữ liệu: text
52 + Mã biến: ViTriCongViec
+ Tên biến: Vị trí công việc. Dữ liệu trả về là
mã vị trí công việc của cán bộ nhân viên trên
hệ thống.
+ kiểu dữ liệu: text
53 + Mã biến: CanBoNhanVien
+ Tên biến: Cán bộ nhân viên. Dữ liệu trả về
là mã cán bộ nhân viên trên hệ thống.
+ kiểu dữ liệu: text
Logic

- Nguyên tắc chung: Kết quả cần trả về theo từng ngày, theo
từng CBNV
- Từ màn hình đặt job hoặc chạy công sẽ xác định được:
(1) Các ngày cần tính công
(2) Các CBNV cần được tính toán

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải nghỉ lễ hay
không. Ngày nghỉ lễ là ngày có mã là L (hình minh hoạ bên)
TH1: Nếu có mã L => Trả về kết quả là 1
TH2: Nếu không có mã L => Trả về kết quả là 0

1. Cách lấy lên các biến: Truy cập vào bảng loại nghỉ/hình thức
đi làm. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập bảng quản lý thông tin nghỉ/vắng mặt (hình minh hoạ
bên)
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số giờ nghỉ của biến tương ứng

1. Cách lấy lên các biến: Truy cập vào bảng loại nghỉ/hình thức
đi làm. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập bảng quản lý thông tin nghỉ/vắng mặt (hình minh hoạ
bên)
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số ngày nghỉ của biến tương ứng
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải nghỉ bù hay
không. Ngày nghỉ bù là ngày có mã là "B" (hình minh hoạ bên)
TH1: Nếu có mã B => Trả về kết quả là 1
TH2: Nếu không có mã B => Trả về kết quả là 0

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra dữ liệu tại từng ngày có phải là ngày nghỉ
hoặc ngày nghỉ nửa ngày hay không?
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việckiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
TH1: Nếu dữ liệu trống => Trả về kết quả là 0.
TH2: Nếu dữ liệu có mã là "NN" => Trả về kết quả là 1
TH3: Nếu dữ liệu là " LV1/2" => Trả về kết quả là 0.5

Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày nghỉ việc.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
- Kết quả:
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0

Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày vào của CBNV.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0

Hệ thống truy cập vào màn hình thông tin nhân sự của CBNV
lấy ra thông tin ngày hết hạn thử việc của CBNV.
=> Thông tin này không cần check theo từng ngày, mỗi CBNV
chỉ có 1 giá trị.
TH1: Có giá trị -> trả về đúng ngày lấy được
TH2: Không có giá trị -> Trả về 0
Từ dữ liệu Timesheet CBNV log
-> Hệ thống check và lấy ra tổng số giờ công mỗi ngày cho
CBNV. Trường hợp một ngày có nhiều dòng dữ liệu thì tính
tổng các dòng dữ liệu
-> Kết quả trả về đúng số giờ lấy được. Trường hợp không tìm
thấy dữ liệu của ngày tương ứng, trả về là 0

1. Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việc kiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
=> Dữ liệu trả về theo logic: Nếu là loại đi làm cả ngày thì giá trị
trả về là 1. Các trường hợp còn lại trả về mã loại ngày tương
ứng.
1. Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việc để lấy thông tin "Số giờ làm việc" (hình minh hoạ
bên)
=> Dữ liệu trả về là số giờ làm việc

- Từ màn hình đặt job hoặc chạy công sẽ xác định được khoảng
thời gian cần tính công => Xác định được tất cả các ngày cần
tính công.
=> Dữ liệu trả về là Ngày tính công.

Lấy lên hết tất cả các mã có trong bảng hằng số theo giá trị để
tạo thành biến
Kết quả trả về là thông tin cột "Giá trị"
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm tra giờ vào tiêu chuẩn của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
làm việc" - ô thời gian đầu tiên

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm tra giờ ra tiêu chuẩn của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
làm việc" - ô thời gian thứ 2 (hình minh hoạ)
Hệ thống xác định các ngày cần tính công
-> Lần lượt kiểm tra thông tin Thời gian đi muộn cho phép của
từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
đi muộn cho phép". Nếu không có dữ liệu trả về 0

Hệ thống xác định các ngày cần tính công


-> Lần lượt kiểm traThời gian về sớm cho phép của từng ngày
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ) -> Tiếp tục truy cập màn hình Ngày
làm việc (hình minh hoạ) -> Lấy và Trả về thông tin "Thời gian
về sớm cho phép". Nếu không có dữ liệu trả về 0
1. Cách lấy lên các biến: Truy cập vào bảng Loại thời gian chấm
công. (hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập màn hình thời gian chấm công (hình minh hoạ). Với
từng Mã loại thời gian lấy ra "Thời gian" tương ứng
=> Kết quả:
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Có dữ liệu: -> Kết quả trả về là "Thời gian" tương ứng
của mã

1. Cách lấy lên các biến: Truy cập vào bảng loại làm thêm giờ.
(hình minh hoạ bên)
2. Cách lấy dữ liệu của từng biến
Truy cập vào màn hình quản lý làm thêm giờ lấy ra thông tin:
ngày làm thêm giờ, số giờ OT, loại làm thêm giờ: mã biến
tương ứng
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại ít nhất 1 bản ghi dữ liệu: -> Kết quả trả về là
thông tin Số giờ làm thêm của biến tương ứng
- Khi chạy công giá trị từng loại thêm giờ sẽ được cập nhật vào
bảng kết quả công theo từng CBNV và từng ngày tương ứng.
1. Cách lấy lên các biến: Truy cập vào bảng trạng thái chấm
công: Quản lý nhân sự >> Danh Mục >> Loại Danh mục: Trạng
thái chấm công
2. Cách lấy dữ liệu của từng biến
Truy cập vào màn hình lịch làm việc của CBNV tại hồ sơ nhân
sự
-> Lần lượt kiểm tra dữ liệu tại từng ngày với mỗi biến cần lấy
dữ liệu. Kết quả trả ra theo từng ngày.
Căn cứ vào thời gian hiệu lực, lấy ra giá trị trạng thái chấm
công tương ứng. Kết quả trả ra theo từng ngày
+ TH1: Không có bản ghi dữ liệu -> Kết quả của biến trả về là 0
+ TH2: Tồn tại bản ghi dữ liệu: -> Kết quả trả về là trạng thái
chấm công tương ứng

Cách lấy lên dữ liệu


- Căn cứ vào thời gian từ ngày - đến ngày chạy công (được xác
định khi sử dụng tính năng chạy công hoặc đặt lịch chạy định
kỳ) Xác định được kỳ chạy công tương ứng> Tại màn hình thiết
lập kỳ chạy công đếm số ngày của kỳ công đó> lấy lên tổng số
ngày thuộc kỳ công tương ứng
- Nếu thời gian từ ngày - đến ngày chứa nhiều kỳ công khác
nhau, dữ liệu trả về tương ứng, ngày nào của của kỳ công nào
thì dữ liệu hiển thị "tổng ngày trong tháng" của kỳ đó.
Cách lấy lên dữ liệu
- Căn cứ vào thời gian từ ngày - đến ngày chạy công (được xác
định khi sử dụng tính năng chạy công hoặc đặt lịch chạy định
kỳ) > Xác định được kỳ công tương ứng
- Đếm tất cả các ngày Off được xác định ở kỳ công > đây là
thông tin cần lấy ra kết quả. Cách xác định ngày OFF:
-> Lần lượt kiểm tra dữ liệu tại từng ngày thuộc kỳ công có phải
là ngày nghỉ hoặc ngày nghỉ nửa ngày hay không?
-> Cách kiểm tra:
- Truy cập vào màn hình tổng hợp lịch_Ca làm việc để lấy mã
ca làm việc (hình minh hoạ bên) -> Tiếp tục truy cập màn hình
Ngày làm việckiểm tra thông tin "Loại ngày làm việc" (hình
minh hoạ bên)
TH1: Nếu dữ liệu trống => Trả về kết quả là 0.
TH2: Nếu dữ liệu có mã là "NN" => Trả về kết quả là 1
TH3: Nếu dữ liệu là " LV1/2" => Trả về kết quả là 0.5

1. Danh mục phòng ban được lấy đường dẫn sau: quản lý nhân
sự > sơ đồ tổ chức
2. Khi chạy công, thông tin phòng ban gán với CBNV được lấy
tại màn hình hồ sơ nhân sự
1. Danh mục phòng ban được lấy đường dẫn sau: quản lý nhân
sự > danh mục > loại danh mục: vị trí
2. Khi chạy công, thông tin vị trí công việc gán với CBNV được
lấy tại màn hình hồ sơ nhân sự
1. Danh sách Cán bộ nhân viên được lấy tại màn hình hồ sơ
nhân sự: quản lý nhân sự > thông tin nhân sự
Hình ảnh minh hoạ
Màn hình thông tin nhân sự của CBNV:
Một số biến cụ thể cho Ví dụ giá trị HT trả Công thức cần tính
NGSC về theo cột J cho NGSC

ngayNghiLe 1 Nghỉ Lễ

NghiCheDo 8 Nghỉ chế độ

nghiConKetHon 0 nghỉ con kết hôn


nghiBu 1

ngayNghi 0.5 Nghỉ off

ngayNghiViec 0 Ngày nghỉ việc

ngayVao 6/25/2022 Số công thử việc

ngayHetThuViec 8/25/2022 Số công chính thức


gioCongTheoNgay 0
ngayTinhCong 6/25/2022

Tổng số ngày được


hưởng lương
(Giả sử CBNV join
vào ngày 25/6, và cty
chốt công đúng ngày
25.6)
gioVaoTieuchuan 08:30:00 AM Nếu đi muộn trừ 20k
Nếu về sớm trừ 20k

gioRaTieuchuan 17:30
diMuonChoPhep 15.00

veSomChoPhep 15
gioVaoThucTe 8:45

otngaythuongbanngay 2
tongngaytrong ky
tongngayofftrongky

phongban
vitricongviec
canbonhanvien
Công thức trên hệ thống CT excel
(test)
Giả sử chạy công cho 1CBNV cho 1 ngày duy nhất

=nghiLe 1

Nghỉ chế độ = 1.125


(nghiKetHon+nghiConKetHon+nghiMaChay+nghiBu)/8

=nghiconkethon
=nghiBu 1

=ngaynghi 0.5

=ngaynghiviec 0

=If(or(ngày tính công=<ngày hết hạn thử việc,ngày tính 0.5


công >= ngày vào),if(weekday(ngày tính
công)=6,0.5,if(or(giờ công theo ngày>=7,A=1),1, if(3=<giờ
công theo ngày<7,0.5,0)))

=If(ngày tính công > ngày hết hạn thử việc,if(weekday(ngày


tính công)=6,0.5,if(or(giờ công theo ngày>=7,A=1),1,
if(3=<giờ công theo ngày<7,0.5,0)))
0
=ngaytinhcong

=
= If(gioVaoThucTe >= (gioVaoTieuChuan + 2.00
diMuonChoPhep), (gioVaoThucTe -
(gioVaoTieuChuan+diMuonChoPhep),0)
(ct quy ra giây cụ thể ở cột N)

=gioratieuchuan
=dimuonchophep

=vesomchophep
=giovaothucte

=otngaythuongbanngay 2
= tổng ngày trong kỳ
=tongngayOfftrongky
Element cần có tương ứng Gán cho element

NghiLe nghiLe

nghichedo nghichedo

nghiConKetHon nghiConKetHon
nghiBu nghiBu

Nghỉ off Nghỉ off

số công thử việc số công thử việc


ngaycongtieuchuan

số công chính thức số công chính thức


ngaycongtieuchuan
gioCongTheoNgay gioCongTheoNgay
Dimuon Dimuon
otngaythuongbanngay otngaythuongbanngay
tongngaytrong thang tongngaytrongky
tongngayofftrongky tongngayofftrongky
Element theo ngày element theo kỳ

x x

x
x
x

XEM XÉT LẠI


x

X
x

X
X
XEM XÉT
x
XEM XÉT

x
x
Ký hiệu

x
P
TS
NB

CD
NL
Ro
Ô
DS
off
NM
Mô tả

Đi làm đủ công (có tổng số giờ công làm việc/ngày >=6)


Nghỉ 1 ngày phép
Nghỉ 1 ngày thai sản (không lương), nhưng hưởng lương bảo hiểm xã hội
1 ngày nghỉ bù có hưởng lương (đa phần là nghỉ bù cho ngày Lễ)

Nghỉ 1 ngày chế độ có hưởng lương (Kết hôn: nghỉ 3 ngày; Con đẻ, con nuôi kết hôn: Nghỉ 1 ngày;
Cha đẻ, mẹ đẻ, cha nuôi, mẹ nuôi; cha đẻ, mẹ đẻ, cha nuôi, mẹ nuôi của vợ hoặc chồng; vợ hoặc
chồng; con đẻ, con nuôi chết: nghỉ 3 ngày)
Nghỉ 1 ngày Lễ có hưởng lương
Nghỉ không lương 1 ngày, không hưởng bất cứ loại lương nào
Nghỉ ốm không lương 1 ngày, nhưng hưởng lương bảo hiểm
Nghỉ dưỡng sức sau sinh/sau ốm đau không lương 1 ngày, nhưng hưởng lương bảo hiểm
Ngày nghỉ off hàng tuần - không lương (chủ nhật)
Nghỉ mát
Quy chuẩn lại element hưởng lương
Số công thử việc
Ngày công tiêu chuẩn số công chính thức có
Nghỉ phép Nghiphep có
Nghỉ thai sản nghithaisan không
Nghỉ bù nghibu có

nghikethon
nghiconkethon
nghimachay
nghibu
Nghỉ chế độ có
Nghỉ lễ nghile có
Nghỉ không lương nghikhongluong không
Nghỉ ốm nghiomkhongluong không
Nghỉ dưỡng sức sau sinh nghiduongsuc không
Nghỉ OFF nghioff không
nghỉ mát nghimat có
Hưởng BHXH

không
không

không

không
không
không


không
không

You might also like