Tham chiếu giữa hợp đồng và bản chấm công

Liên hệ QC
Cám ơn bạn hoang2013. Mình mới tiền hành vài chiêu Các bước thử nghiệm để tăng tốc cho macro, quả thật là macro chạy mượt hơn nhiều rồi.
Thế nhưng phần ẩn dòng trong bảng chấm công mình làm không được (Mình đã thử thêm macro worksheet_Change vào sheet 1 nhưng không thành công). Bạn kiểm tra giùm mình chút nha
 
Lần chỉnh sửa cuối:
Cái macro sự kiện đó là giành cho trang 'CTLg', không là của 12 trang họ nha "T"

Bạn chép đè lên macro cũ & kiểm tra kết quả dữ liệu của các tháng.

Còn macro cho họ nhà "T" cần có í kiến của bạn mới tiến hành viết được:

Điều cần hỏi bạn ở đây là bạn sẽ in theo đường hướng nào, 1 lúc (tự động in liền 1 mạch 12 trang) hay in từng trang.

Nếu cần macro ẩn dòng trước khi in từng trang thì mình sẽ cố giúp bạn chuyện ẩn dòng bằng macro sự kiện khi mở/kích hoạt 1 trong 12 trang trính dòng "T".

Còn nếu bạn cần in 1 loạt thì sẽ phải viết các lệnh ẩn dòng trong macro in ấn mà bạn sẽ được ai đó giúp.

Còn chuyện in hàng loạt các hợp đồng LĐ, mình cho rằng bạn nên in như in thư trộn trong Word cũng được mà.
 
Mình đã dán code vào sheet CTLg, kết quả là ...mỹ mãn. Nhưng mà.....
Mình mới kiểm tra lại, những NV ko làm trong tháng nhưng trong trang "CTLg" vẫn có công, mặc dù dòng đó đúng là đã bị ẩn đi (mình để ý trang "Luong" thấy lạ nên unhide mấy dòng trong trong "CTLg" mới thấy), bạn kiểm tra lại CODE nhé.

Mình cứ tưởng là dán vào sheet chấm công, vì bảng chấm công cũng không thể để những người không làm mà in ra. Bạn giúp mình đoạn CODE cho 12 trang họ nhà "T" nữa nha:
- Hiện tại mình đang sử dụng addin (đính kèm) để in 1 loạt nhiều trang tính (nhưng hơi phiền cái là chỉ có trang hiện hành, bảng lương thì chỉ in được 1 tháng) bạn load về dùng thử xem có chỉnh được CODE không nha.
- Mình muốn in 1 loạt 12 bảng chấm công ra luôn (ví dụ nếu công trường nào không làm tháng 11, 12 có phải xóa 2 trang đó đi là ok ko?)
- Mình nghĩ nếu mỗi sheet họ "T" bạn dán 1 macro sự kiện ẩn dòng gần giống như macro ở trang "CTLg", thì form trang "T" đã chuẩn ngày từ đầu không can thiệp gì đến addin in hàng loạt kia liệu đó có phải là phương án khả thi?

Chuyện in HĐ thì mình thấy dùng excel tiện hơn, như cái Modul 11 đó, bạn để ý sẽ thấy, bạn xem giùm mình dùng cái đó ổn không ha.
* À bạn hoang2013 ơi, có cái này quan trọng mà mình quên mất, ngày lễ mà còn làm thì BỊ PHẠT mất, bạn chỉnh lại CODE chấm công giùm mình nha.

Thân.
 
Lần chỉnh sửa cuối:
Mình đã dán code vào sheet CTLg,. . Nhưng mà.....
Mình mới kiểm tra lại, những NV ko làm trong tháng nhưng trong trang "CTLg" vẫn có công, mặc dù dòng đó đúng là đã bị ẩn đi (mình để ý trang "Luong" thấy lạ nên unhide mấy dòng trong trong "CTLg" mới thấy), bạn kiểm tra lại CODE nhé.
Là tháng nào, có hiện tượng này để còn biết đường sửa.
- Mình nghĩ nếu mỗi sheet họ "T" bạn dán 1 macro sự kiện ẩn dòng gần giống như macro ở trang "CTLg", thì form trang "T" đã chuẩn ngày từ đầu không can thiệp gì đến addin in hàng loạt kia liệu đó có phải là phương án khả thi?
Bạn chép macro này đến 12 trang tính họ 'T'
Mã:
Private Sub Worksheet_Activate()
 AnDong Range([c8], [c8].End(xlDown))
End Sub

& tiếp theo là macro này trong Module1:
PHP:
Sub AnDong(Rng As Range)
 Dim Cls As Range
 Dim Rws As Long
 
 Rws = [c8].CurrentRegion.Rows.Count
 Rows("8:" & Rws).Hidden = False
 Application.ScreenUpdating = False
 For Each Cls In [c8].Resize(Rws)
    If Application.WorksheetFunction.CountBlank(Cls.Offset(, 1).Resize(, 31)) = 31 Then
        Rows(Cls.Row & ":" & Cls.Row).Hidden = True
    End If
 Next Cls
 Application.ScreenUpdating = True
End Sub

Thêm nữa, macro có tên sau:
Mã:
Sub RaiCongThangGiua()
' . . . . . '
End Sub
đang là dư & bạn nên xóa bỏ macro này trong module1

Cuối cùng:
Đây là macro sự kiện để ẩn dòng của trang tính 'Luong'
PHP:
Private Sub Worksheet_Activate()
 Dim Rw As Long, J As Long
 
 Rows("7:999").Hidden = False
 For J = 999 To 6 Step -1
    With Cells(J, "C")
        If Left(.Value, 1) = "C" And Right(.Value, 2) = "ng" Then
            Rw = .Row:      Exit For
        End If
    End With
 Next J
 For J = 7 To Rw
    If Cells(J, "D").Value < 0.09 Then
        Cells(J, "D").EntireRow.Hidden = True
    End If
 Next J
 
End Sub


* À bạn ơi, có cái này quan trọng mà mình quên mất, ngày lễ mà còn làm thì BỊ PHẠT mất, bạn chỉnh lại CODE chấm công giùm mình nha. Thân.
Về các ngày nghĩ lễ thì sẽ phải thế này:

1./ Thủ tướng hay dời ngày nghỉ lễ tùy theo ngày đó gần ngày T7 hay chủ nhất cỡ nào

2./ Vã chăng, trong có có gần phân nữa là ngày âm lịch

Do VBA không làm việc trực tiếp với ngày âm lịch, nên chuyện này bước đầu bạn thực hiện bằng tay.
Sau khi đã hoàn chỉnh file, ta sẽ bàn tiếp chuyện này.
Trên diễn đàn cũng có 1 số bảng chấm công chừa ngày lễ trong năm, nhưng là những bảng chấm công thực của các cơ quan hành chính sự nghiệp hay doanh nghiệp Nhà nước.
Bạn có thể tìm & tham khảo nếu rỗi.
 
Lần chỉnh sửa cuối:
Là tháng nào, có hiện tượng này để còn biết đường sửa.
-Tháng nào có NV ko làm cũng bị hết bạn, bạn cứ nhìn sheet "Luong" là bạn thấy mấy NV ẩn bên sheet "CTluong" cũng có công hết, hoặc bạn unhide những NV bị ẩn trong sheet "CTLg", hoặc bạn nhìn tổng số tiền sẽ thấy con số quá đáng liền...(bạn load file đính kèm của mình xem sẽ rõ)
-Mình chép macro sự kiện ẩn dòng vào trang "Luong" không thấy có sự khác biệt, không biết là macro này không hoạt động hay là trục trặc từ vấn đề mình vừa nêu trên.

Bạn chép macro này đến 12 trang tính họ 'T'...& tiếp theo là macro này trong Module1:...
-Macro hoạt động tốt bạn à, khi xem từng bảng cũng như khi mình dùng add in đã in 1 loạt (ẩn sạch những NV ko có công)
-Duy chỉ có điều bên dưới bảng công mình ghi thêm khoảng 5 hàng: ký hiệu chấm công, người lập, thủ trưởng ký... thì cũng bị ẩn, (khi mình unhide lên dự liệu 1 số ô bị xóa) bạn điều chỉnh CODE giúp mình chút nha

Mã:
Sub RaiCongThangGiua()
' . . . . . '
End Sub
-Mình đã xóa


Cuối cùng:
Đây là macro sự kiện để ẩn dòng của trang tính 'Luong'
- Mình không thấy macro này tác động tí nào

Về các ngày nghĩ lễ thì sẽ phải thế này:
-Mình cũng có thấy 1 số bảng chấm công trên diễn đàn họ chừa ngày lễ, cách làm của họ cũng chuyển hết ngày lễ về ngày dương, vì số lượng ngày lễ cũng không nhiều lắm nên họ tạo "list ngày lễ"...., vấn đề này mình sẽ đọc thêm
Thân bạn.
PS: Bạn load file mình gửi về vào sheet "CTLg" và "Luong" sẽ thấy ngày vấn đề lương, còn khi bạn chạy macro sẽ thấy vấn đề ở sheet họ "T" (mình mới DÁN macro Cho sheet T01,T02,T03
 
Lần chỉnh sửa cuối:
Có lẽ phải đưa file mới lên rồi

Bạn thao tác với file mới này & góp cho mình thêm í kiến để hoàn chỉnh thêm --=0

(Chiều nay mình sẽ tháo file đã đính kèm ở các bài trước bài này)
 
Lần chỉnh sửa cuối:
Bạn thao tác với file mới này & góp cho mình thêm í kiến để hoàn chỉnh thêm --=0

(Chiều nay mình sẽ tháo file đã đính kèm ở các bài trước bài này)
Mình test file mới của bạn luôn nè:
Mình mới kiểm tra lại, những NV ko làm trong tháng nhưng trong trang "CTLg" vẫn có công, mặc dù dòng đó đúng là đã bị ẩn đi (mình để ý trang "Luong" thấy lạ nên unhide mấy dòng trong trong "CTLg" mới thấy), bạn kiểm tra lại CODE nhé.
vấn đề này ok rồi bạn, nhưng....
1./ Bạn mở trang "CTLg" cập nhật tháng 8 thì bạn sẽ thâý lòi ngay đâu ra 1 ông ko có tên mà có số công bằng đúng mấy ông trên cộng lại!$@!! (mình test có vẻ khi số NV trong tháng <=10 thì xảy ra hiện tượng này)

2./ Nếu tăng số NV của công trường lên ( mình test thử với 45 người) đôi khi "CTLg" ẩn luôn cả dòng tổng.

3./ trang "CTLg" cập nhật đến tháng không có nhân công nào làm đôi khi báo lỗi"run time eror 1004, bôi vàng ở dòng "[b6].Resize(W, 4).Value = dArr()" CODE trang "CTLg".

4./ Bảng "Luong" thì ẩn OK rồi, nhưng nếu bảng "CTLg" sai ví dụ như ở tháng 8 thì bảng "luong" cũng sai theo y chang.

Đôi chút về form:
- Ở bảng công học "T" khi ẩn dòng đi thì số thứ thự không liên tục 1,2,3... nữa. Bạn chỉnh được số thứ tự liên tục được như bảng trong "CTLg" thì đẹp
-
-Duy chỉ có điều bên dưới bảng công mình ghi thêm khoảng 5 hàng: ký hiệu chấm công, người lập, thủ trưởng ký... thì cũng bị ẩn, (khi mình unhide lên dự liệu 1 số ô bị xóa) bạn điều chỉnh CODE giúp mình chút nha
có thể điều chỉnh vấn đề này ở trang họ "T" được không bạn?
-Bạn lập cho mình ô tổng lương 12 tháng trong sheet "CTLg" luôn được không ạ (ô này chỉ để theo dõi cho biết chứ ko in ra)

Mình mới test có đôi điều nói với bạn vậy (không chừng test tiếp tại khám phá thêm lỗi nữa --=0)
PS:File của mình thì cồng kềnh có lẽ không nên đưa lên nữa, hay là cứ thao tác trên file bạn gửi như thế này cho dễ hiểu, như vậy bạn chịu khó xóa những file gửi trước đi vậy cho đỡ tốn dung lượng.(Cái nào mình cũng load về để ngâm cứu hết rồi bạn xóa đi thoải mái)
 
Lần chỉnh sửa cuối:
Mình test file mới của bạn luôn nè:
Vấn đề này ok rồi bạn, nhưng....
1./ Bạn mở trang "CTLg" cập nhật tháng 8 thì bạn sẽ thâý lòi ngay đâu ra 1 ông ko có tên mà có số công bằng đúng mấy ông trên cộng lại!$@!! (mình test có vẻ khi số NV trong tháng <=10 thì xảy ra hiện tượng này)

Bạn thử với macro sự kiện này ở trang 'CTLg':
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [O2]) Is Nothing Then
    Dim ShName As String
    Dim Sh As Worksheet, Arr()
    Dim J As Long, Rws As Long, W As Long
    
    ShName = "T" & Right("0" & Target.Value, 2)
    Set Sh = ThisWorkbook.Worksheets(ShName)
    Rws = Sh.[C999].End(xlUp).Row               '*'
    Arr() = Sh.[c8].Resize(Rws, 33).Value
    ReDim dArr(1 To 55, 1 To 4)
    [b6].Resize(50, 4).Value = dArr()
    Rows("8:60").Hidden = False
    For J = 1 To UBound(Arr())
        If Arr(J, 1) = "" Then Exit For         '*'
        If Arr(J, 33) > 0 And Arr(J, 33) < 53 Then
            W = W + 1:                  dArr(W, 1) = W
            dArr(W, 2) = Arr(J, 1):     dArr(W, 3) = 26 * 10 ^ 4
            dArr(W, 4) = Arr(J, 33)
        End If
    Next J
    [b6].Resize(W, 4).Value = dArr()
    Rows(W + 6 & ":60").Hidden = True
 End If
End Sub
 
Hi bạn Hoang2013.
1./ Bạn mở trang "CTLg" cập nhật tháng 8 thì bạn sẽ thâý lòi ngay đâu ra 1 ông ko có tên mà có số công bằng đúng mấy ông trên cộng lại!$@!! (mình test có vẻ khi số NV trong tháng <=10 thì xảy ra hiện tượng này)
Vấn đề này ngon rồi bạn%#^#$. Nhưng...Lại có việc làm cho bạn đây:-=:
- Khi mình tăng thêm NV trong bảng DATA (ví dụ tăng thêm 5 NV là có tổng cộng 46 NV ) thì bảng chấm công họ "T" ok chấm rất đầy đủ, nhưng bảng lương thì bất di bất dịch vẫn chỉ hiện thị tối đa 41 NV như cũ, mình đã thử mọi cách mà không được chắc mấu chốt là ở đoạn CODE rồi.
Lại phiền bạn rồi.
Chúc bạn ngủ ngon.
 
Chắc phải thay đổi cách tổ chức dữ liệu cho thống nhất.

Hiện tại các trang tính họ "T" đang xài hàm VLOOKUP()

Nhưng trang 'CTLg' & 'Luong' thì không.

Vã lại, xài VLOOKUP() sẽ làm chương trình xử lí dữ liệu sẽ năng nề thêm.

Mình đề xuất giải pháp là:

Mỗi lần nhập mới (dù ít hay nhiều hoặc bớt người trong danh sách) ta làm nút lệnh để sau khi nhấp xong tại trang 'Data' ta bấm vô nó.
Khi đó danh sách CNV toàn bộ sẽ chuyển sang các trang tính còn lại có liên quan.

Khi đó, các dòng cần thiết bên dưới các trang tính cần có (như hàng tổng cộng hay người lập bảng, . . .) ta cần đảy xuống dưới xa tít & ẩn những dòng không có số liệu trên cúng đi

Tất nhiên cách này ta cũng phải có biện pháp để dữ liệu nhân viên không đè lên các phần cố định này: Định kì cần xem xét dòng cuối chứa phần cố định này.

(Có nghĩa là để nhẹ máy tính, ta cũng cần trả giá & đó là cái giá đáng trả lắm bạn!)

Thân.
 
Hi bạn hoang2013, cám ơn bạn trong thời gian qua đã dành thời gian quý báu để đồng hành, giúp đỡ mình nhiều.Mình cảm thấy làm phiền bạn nhiều quá cũng không nên

Đến nay cơ bản mình đã có đủ công cụ để áp dụng vào công việc của mình rồi (chấm công, lương đầy đủ, form cũng khá ổn), thế nên bây giờ mình sẽ áp dụng ngay để xuất bản 1 bộ hồ sơ chứng từ công trường xem thế nào.
Đến nay thì có 1 VĐ đau đầu nhất là ở trang "CTLg":
- Cho dù đã thống nhất cách tổ chức dữ liệu nhưng cứ thêm hay bớt NV là sheet "CTLg" báo lỗi macro ở dòng:private Sub Worksheet_Change(ByVal Target As Range). Như vậy đến công trình khác có nhiều hay ít NV hơn (41 NV) thì ko áp dụng được nữa...Vấn đề kéo dài trang tính để dữ liệu không đè lên phần cố định như bạn nói cũng chưa nghĩ đến nếu ko giải quyết được vấn đề nêu trên
- 4 cột B,C,D,E đã fix, cho dù mình thay đổi, dùng hàm kiểu gì cũng không được... đơn giá/ngày 260.000 là ví dụ thôi giờ mình sửa không được thì cũng tiêu
- Thực sự nếu lập macro trang "CTLg" gặp trở ngại thì mình làm luôn 12 trang lương cho 12 tháng lấy dữ liệu từ 12 trang công qua thì đảm bảo OK luôn... nhưng thế thì "nông dân" quá bạn nhỉ.


Mong bạn giúp mấy vấn đề này nữa. (Mình cố gắng ngày làm 1 công trình)

Theo quan điểm của bạn thì cái nào dùng thủ công được mình sẽ làm tránh lạm dụng hàm không cần thiết để giảm tải (tạo thêm nút thì sợ nặng thêm, nên mình cứ thủ công copy, past value hoặc past link)

Chúc bạn 1 ngày làm việc vui vẻ
 
Lần chỉnh sửa cuối:
Bạn thử vận hành file này xem sao?

Những điểm khác biệt:

1./ Các trang họ "T" không chứa sẵn danh sách;
Chỉ khi chạy macro tô màu & chấm công thì mới có danh sách & danh sách này chỉ có ở các tháng có hợp đồng mà thôi.
Việc này bạn kiểm tra số liệu xem sao.

2./ Hiện tại toàn file ấn định tối đa 99 người CNV;
& như vậy các dòng "Tổng cộng. . " dưới các trang tính sẽ phải ờ cách dòng có số liệu đầu là trên 100 dòng.

2.1. Hiện các trang họ 'T' mình chưa kịp làm các dòng "tổng cộng,. . . "
Khi làm mình sẽ viết thêm đoạn lệnh ẩn đi các dòng không dữ liệu trong từng trang họ "T"

2.2 Khi CQ bạn tằng số người hơn 99 thì sẽ phải:
Tăng Const này lên & đồng thời dời các dòng "Tổng cộng,. . ." xuống tương ứng. (Để khỏi ẩn đi do macro thực hiện)

Mình tin rằng file này sẽ cải thiện tốc độ tính toán do không có nhiều hàm VLOOKUP() cũng như Link ,. . .

Chúc vui!
 
Lần chỉnh sửa cuối:
Hi bạn.
Những điểm khác biệt:
1./ Các trang họ "T" không chứa sẵn danh sách;
Chỉ khi chạy macro tô màu & chấm công thì mới có danh sách & danh sách này chỉ có ở các tháng có hợp đồng mà thôi.
Việc này bạn kiểm tra số liệu xem sao.
Hoan hô Ý tưởng về việc tự độngchạy danh sách, tuy nhiên tự động thì có tự động thật nhưng danh sách hiện lên không chính xác bạn à:
- Danh sách không hiện lên đủ NV, việc này bạn có thể thấy ngay khi chạy file bạn gửi (ở bảng chấm công tháng 4 trang "T04": 10 NV đầu bình thường, ngắt quãng ở NV thứ 11 thì bảng tính ẩn đi, từ NV thứ 12 tiếp tục làm thì bảng tính không ẩn đi nhưng cũng bỏ trống dữ liệu)
- Chỉ tô màu và chấm mùng 1 hàng tháng cho NV đầu tiên
Nhận xét: File cũ chấm chính xác hơn.

2./ Hiện tại toàn file ấn định tối đa 99 người CNV;
& như vậy các dòng "Tổng cộng. . " dưới các trang tính sẽ phải ờ cách dòng có số liệu đầu là trên 100 dòng.
2.1. Hiện các trang họ 'T' mình chưa kịp làm các dòng "tổng cộng,. . . "
Khi làm mình sẽ viết thêm đoạn lệnh ẩn đi các dòng không dữ liệu trong từng trang họ "T"
- Khi tăng số lượng NV mình không thấy họ "T" tô màu và chấm thêm chút nào
2.2 Khi CQ bạn tằng số người hơn 99 thì sẽ phải:
Tăng Const này lên & đồng thời dời các dòng "Tổng cộng,. . ." xuống tương ứng. (Để khỏi ẩn đi do macro thực hiện)
99 NV là quá nhiều rồi, dù sao Const này ở chỗ nào bạn chỉ giùm mình nhé
Dù sao file này được cái vô địch về chạy nhanh--=0.
Chúc buổi tối vui vẻ.
PS: Mình ngâm cứu CODE của bạn biết cách sửa để rải công chỉ trừ chủ nhật ra rồi, còn cái cụ chấm ngày lễ chắc phức tạp hơn hè.
 
Lần chỉnh sửa cuối:
Hi vọng file này số liệu sẽ chính xác. ;;;;;;;;;;; ;;;;;;;;;;; ;;;;;;;;;;;
 
Lần chỉnh sửa cuối:
HI, mình mới thử tăng thêm 20 NV nữa...nhưng không thành công.
Bớt người thì có vẻ ok nhưng thêm người thì mấy trang họ "T" chạy không chính xác bạn à.
Chúc buổi tối vui
 
HI, mình mới thử tăng thêm 20 NV nữa...nhưng không thành công.
Bớt người thì có vẻ ok nhưng thêm người thì mấy trang họ "T" chạy không chính xác bạn à.

Lần sau bạn nên mô tả là bạn đã thêm như thế nào; Thêm ngay người đầu là sai hay đấn người thứ mấy dẫn đến sai;

Từ "thành công" của bạn còn quá chung chung.

Mình thử thêm hơn 20 người nữa bạn kiểm xem sao.

Thời gian tiêu tốn cho các công đoạn như sau:
PHP:
Quá trình      Thời gian
Chuẩn bị         2.7656
Lập DS           2.9219
Điền công        9.3125
Ẩn trống        10.0313




(Sẽ tháo hết các file bài trước, thu hồi tài nguyên)
 
Lần chỉnh sửa cuối:
Hi Bạn Hoang2013. Cám ơn bạn vì phiên bản mới quá tuyệt vời!)(&&@@
- Ở trang học "T" cột B: số TT bỏ trống, mình ghi thủ công nhưng mỗi lần chạy lại thì bị xóa mất, chắc phải can thiệp CODE mới được. Bạn làm ơn chỉnh giúp mình nhé
PS: phiên bản này có dòng "PHP Code:" quá hay
Quá trình Thời gian
Chuẩn bị 2.7656
Lập DS 2.9219
Điền công 9.3125
Ẩn trống 10.0313
Một lần nữa cám ơn bạn. Chúc bạn có buổi tối chủ nhật vui vẻ/-*+/
 
Để có số thứ tự tại cột trong các trang họ "T", bạn làm như sau:

1./ Đổi câu lệnh này:
Mã:
Sh.[B8].Resize(J, 33).Value = ""
thành câu lệnh:
PHP:
Sh.[C8].Resize(J, 32).Value = ""

2./ Tại [B8] của các trang tính, ta nhập công thức:

=If(C8="","",N(b7)+1)

Sau đó copy xuống dưới đến đâu mà bạn chán thì dừng.
 
Quá tuyệt vời cho bài toán thuận chấm công, thanks bạn!
Theo bạn chủ đề bài toán ngược: Nghĩa là cho số công trong 1 tháng cụ thể ( ví dụ nhân viên A trong tháng 1 được 20 công), lập macro rải công ngẫu nhiên trong tháng đó
và chủ đề rải công ngày lễ (chữ "L") ta có cần bàn tiếp ko
Thân bạn.
 
Quá tuyệt vời cho bài toán thuận chấm công, thanks bạn!
Theo bạn chủ đề bài toán ngược: Nghĩa là cho số công trong 1 tháng cụ thể ( ví dụ nhân viên A trong tháng 1 được 20 công), lập macro rải công ngẫu nhiên trong tháng đó
và chủ đề rải công ngày lễ (chữ "L") ta có cần bàn tiếp ko
Thân bạn.

Vô lý thế, sao lại rải công ngẫu nhiên? đi ngày nào, làm ngày nào thì chấm công ngày đó mới đúng

Hay là làm ngược để tính người lý thuyết?
 
Web KT
Back
Top Bottom