Hàm chấm công

Thảo luận trong 'Ứng dụng Excel' bắt đầu bởi levanduyet, 23 Tháng mười hai 2004.

14,189 lượt xem

  1. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Chao cac ban,
    Trong thoi gian vua qua nhieu ban lam ke toan co hoi toi ve "Ham cham cong", bai viet cua toi tren PC World. Toi da upload bai len Web ke toan, nhung khong co hinh anh. Cac ban can cac ban vao trang www.pcworld.com.vn de xem huong dan.
    Chuc cac ban thanh cong.
    Le Van Duyet
    levanduyet@yahoo.com
     
    Last edited: 26 Tháng mười hai 2004
    #1
  2. SieuMa

    SieuMa Thành viên sơ cấp

    Bài viết:
    13
    Đã được thích:
    0
    Nơi ở:
    HCM
    anh Levanduyet oi!

    sao em tìm hoài mà kô thấy hàm chấm công đâu hết vậy.Anh coi lại dùm em nha
    nếu có thể anh gửi vào mail cho em nha:bigbigworld00084@yahoo.com
     
    #2
  3. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Xin gởi bạn bài viết cũng như đoạn mã của hàm chấm công.
    Chúc bạn thành công!
    Lê Văn Duyệt
     

    Các file đính kèm:

    #3
  4. SieuMa

    SieuMa Thành viên sơ cấp

    Bài viết:
    13
    Đã được thích:
    0
    Nơi ở:
    HCM
    hi

    nhận được rối, cảm ơn ban.
    ah
    ban giúp mình sum() được ko?
     
    #4
  5. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Xin gởi đến các bạn một bài hướng dẫn nữa về hàm chấm công.
    TỪNG BƯỚC THIẾT KẾ HỆ THỐNG QUẢN LÝ TIỀN LƯƠNG VÀ NHÂN SỰ
    (Lược ghi từ Hướng dẫn kế tóan thực hành bằng Excel, Tác giả Trần Văn Thắng và tổng hợp từ các nguồn khác)
    Tổng quan về các chứng từ lao động tiền lương
    Theo quy định của Nhà Nước, hệ thống chứng từ lao động tiền lương trong các doanh nghiệp hay các đơn vị hành chánh sự nghiệp gồm khỏang 10 biểu mẫu. Tuy nhiên không phải mọi chứng từ đều thuận tiện và cần thiết khi đưa vào quản lý bằng Excel. Hơn nữa, các biểu mẫu theo quy định của Nhà nước thường mang tính hướng dẫn và tùy theo từng yêu cầu của mỗi doanh nghiệp mà thay đổi.
    Để quản lý dễ dàng thông thường đối với một doanh nghiệp chúng ta cần lập các bảng sau trên Excel:
    _Bảng chấm công. (Tôi chủ yếu giới thiệu các bạn về bảng này)
    _Bảng thanh tóan tiền lương. (Mẫu thì tùy từng công ty)
    _Bảng mã các phòng ban của công ty. (Bạn thiết lập sao cho hợp lý và dễ dàng truy vấn)
    _Bảng danh sách nhân viên. (Đây là bảng chính, do đó bạn nên chú ý thiết lập hợp lý sao cho dễ dàng truy vấn dữ liệu của nhân viên tùy theo mã số nhân viên)
    Tùy theo yêu cầu quản lý của từng doanh nghiệp, bạn có thể tự tạo cho mình các biểu mẫu khác bằng Excel.
    Từng bước xây dựng các bảng và các mối quan hệ của các thành phần trong bảng bằng Excel
    Đầu tiên bạn mở một File Excel mới, tạo các sheet có tên lần lượt như sau:
    _CHAMCONG: Bảng chấm công.
    _LUONG: Bảng thanh tóan tiền lương.
    _HSNV: Bảng hồ sơ nhân viên.
    _THUONG: Bảng danh sách tiền thưởng.
    Và đặt tên cho File Excel mới này theo định dạng sau:
    TLttnnn

    Định dạng
    Diễn giải
    TL
    Bảng tính chứa chứng từ lao động tiền lương.
    tt
    Gồm 2 ký tự số, thể hiện tháng phát sinh chứng từ lao động tiền lương. (Chú ý: phải điền đủ 2 chữ số)
    nnnn
    Gồm 4 chữ số, thể hiện năm phát sinh chứng từ lao động tiền lương

    Ở sheet CHAMCONG, bạn tạo các dữ liệu ban đầu như sau:
    A1: Tên công ty.
    A2: Địa chỉ, số điện thọai, số fax công ty.
    A3: BẢNG CHẤM CÔNG THÁNG 03/2005
    A5: STT (số thứ tự)
    B5: MSNV (mã số nhân viên
    C5: MDV (mã đơn vị)
    D5: Họ và Tên
    E5: Ngày bắt đầu của tháng. Ví dụ 01/03/2005.
    F5: Bạn lập công thức như sau = E5 + 1
    Bạn lập công thức tương tự cho các cột kế tiếp của hàng thứ 5. Nhằm sử dụng file này cho các tháng sau, tôi đề nghị bạn nên tạo bảng chấm công có 31 ngày. Với việc thiết lập công thức ở các cột ngày như vậy, qua tháng kế tiếp bạn có thể chỉ cần sửa ngày đầu tiên của tháng, còn các ngày còn lại sẽ tự động cập nhật. Khi bạn muốn các ô này chỉ thể hiện ngày mà thôi (ví dụ như ngày 01/03/2005 bạn chỉ muốn thể hiện 01) thì bạn phải định dạng ô này lại như hình 1.
    Một vấn đề được đặt ra là một khi đây là File mẫu bạn sử dụng lại cho các tháng sau đó, bạn muốn các ngày Chủ Nhật phải được tô đỏ, tôi xin hướng dẫn bạn dùng Conditional Formatting để làm điều này.
    Giả sử trong bảng này tôi có tất cả là 8 nhân viên (tức là từ hàng thứ 6 đến hàng thứ 13), đồng thời tôi muốn có thêm 2 hàng trống bên dưới. Tức là đến hàng 15. Tôi chọn vùng E5:AI15 và nhập vào công thức như hình 2, chọn nút format và định dạng theo yêu cầu của bạn. Xong bạn chọn OK, thì tất cả các cột là ngày Chủ Nhật sẽ được định dạng theo yêu cầu của bạn.

    [​IMG]

    [​IMG]

    AK5
    TCL
    Tăng ca ngày lễ (Ví dụ như tết, ngày nghỉ quốc khánh,...tỉ lệ 1:3)
    AL5
    TCC
    Tăng ca ngày Chủ Nhật (Tỉ lệ 1:2)
    AM5
    TCT
    Tăng ca ngày thường (Tỉ lệ 1:1,5)
    Từ AK4 đến AM4 được liên kết lại và đưa vào: Tăng ca.
    AN5
    NPN
    Nghỉ phép năm (Được hưởng lương 100%)
    AO5
    NPB
    Nghỉ phép bệnh (Được hưởng lương bảo hiểm xã hội, 75%)
    AP5
    NPK
    Nghỉ không lương
    AQ5
    NPM
    Nghỉ phép ma chay, cưới hỏi,...(Được nghỉ số ngày theo bộ luật lao động)
    Bạn chú ý cho một điều là cách đặt tên như trên cũng sẽ giúp ích bạn trong việc lập công thức chấm công sau này.
    Từ AN4 đến AQ4 được liên kết lại và đưa vào: Nghỉ phép.
    AR4: Tổng số ngày công
    AR5: NC
    Bây giờ chúng ta đưa hàm chấm công vào file của chúng ta.
    Bạn nhấn tổ hợp phím Alt + F11, hay vào Tools/Macro/Visual Basic Editor như hình 3
    [​IMG]

    Bạn vào Insert/Class Module, và nhập vào nội dung như sau:
    Option Explicit
    Private SText As String
    Private SDelimiter As String
    Private IPos As Integer
    Private ILen As Integer
    Public MaxToken As Integer
    Private Tokens() As String
    Public Property Get Text() As Variant
    Text = SText
    End Property
    Public Property Let Text(ByVal vNewValue As Variant)
    SText = vNewValue
    ILen = Len(SText): IPos = 1
    End Property
    Public Property Get Delimiter() As Variant
    Delimiter = SDelimiter
    End Property
    Public Function TokenAt(TNum) As String
    If (TNum > 0) And (TNum <= MaxToken) Then
    TokenAt = Tokens(TNum)
    Else
    TokenAt = ""
    End If
    End Function
    Public Property Let Delimiter(ByVal vNewValue As Variant)
    SDelimiter = vNewValue
    Tokenise
    End Property
    Private Sub Tokenise()
    Dim i
    i = 0: IPos = 1
    Do Until IPos > ILen
    i = i + 1
    ReDim Preserve Tokens(i)
    Tokens(i) = GetToken
    Loop
    MaxToken = i
    IPos = 1
    End Sub
    Public Sub ReplaceToken(TNum, NewToken)
    If (TNum > 0) And (TNum <= MaxToken) Then
    Tokens(TNum) = NewToken
    ReconstructText
    End If
    End Sub
    Private Sub ReconstructText()
    Dim i
    SText = ""
    For i = 1 To MaxToken
    SText = SText & Tokens(i)
    If i < MaxToken Then SText = SText & SDelimiter
    Next
    End Sub
    Public Function KeepLeftPart(NumChar) As String
    If ILen >= NumChar Then
    SText = Left(SText, NumChar): ILen = Len(SText)
    End If
    KeepLeftPart = SText
    End Function
     
    #5
  6. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Public Function KeepRightPart(NumChar) As String
    If ILen >= NumChar Then
    SText = Right(SText, NumChar): ILen = Len(SText)
    End If
    KeepRightPart = SText
    End Function
    Public Function KeepMidPart(SPos, NumChar) As String
    If ILen >= SPos Then
    SText = Mid(SText, SPos): ILen = Len(SText)
    End If
    If ILen >= NumChar Then
    SText = Right(SText, NumChar)
    End If
    KeepMidPart = SText
    End Function
    Public Property Get CurrentPos() As Variant
    CurrentPos = IPos
    End Property
    Public Property Let CurrentPos(ByVal vNewValue As Variant)
    IPos = vNewValue
    End Property
    Public Function GetToken() As String
    Dim Pos
    GetToken = ""
    If SDelimiter = " " Then
    Do While Mid(SText, IPos, 1) = " "
    IPos = IPos + 1
    If IPos > ILen Then
    Exit Function
    End If
    Loop
    End If
    Pos = InStr(IPos, SText, SDelimiter)
    If Pos > 0 Then
    GetToken = Mid(SText, IPos, Pos - IPos)
    IPos = Pos + Len(SDelimiter)
    Else
    GetToken = Mid(SText, IPos, ILen - IPos + 1)
    IPos = ILen + 1
    End If
    End Function
    Public Sub Substitude(Param, ParamValue)
    Dim Pos, PLen
    PLen = Len(Param)
    Pos = InStr(SText, Param)
    Do While Pos > 0
    SText = Left(SText, Pos - 1) & ParamValue & Mid(SText, Pos + PLen)
    Pos = InStr(SText, Param)
    Loop
    ILen = Len(SText)
    End Sub
    Public Function GetLastToken() As String
    Dim Pos, Tlen
    Tlen = Len(SDelimiter)
    GetLastToken = ""
    If ILen = 0 Then
    Exit Function
    End If
    Pos = ILen - Tlen + 1
    Do While Pos > 0
    If Mid(SText, Pos, Tlen) = SDelimiter Then
    GetLastToken = Mid(SText, Pos + Tlen)
    End If
    Pos = Pos - 1
    Loop
    End Function
    Public Property Get Length() As Integer
    Length = ILen
    End Property
    Public Property Get TokenCount() As Variant
    TokenCount = MaxToken
    End Property
    Bạn đặt tên Class Module là ClsString
    Tương tự bạn vào Insert/Module và đưa nội dung hàm Chamcong vào và đặt tên Module là Chamcong

    Public Function Chamcong(ByVal Khoang As Range, ByVal Chucnang As String) As Single
    Dim Socot As Integer, Sohang As Integer
    Dim i As Integer, j As Integer, k As Integer
    Dim Btotal As Single
    Dim Bgiatriso As Single
    Dim Bchucnang As String
    Dim SoLoai As Byte ' Bien nay nham xac dinh so loai ngay nghi, tang ca... trong mot chuoi
    Dim BChuoi As ClsString
    Dim BGiatri
    On Error Resume Next
    Application.Volatile 'Nham tinh lai gia tri khi cac o co thay doi
    'Xac dinh so cot trong bien Khoang
    Socot = Khoang.Columns.Count
    'Xac dinh so hang trong bien Khoang
    Sohang = Khoang.Rows.Count
    ' Nham bao dam so sanh dung ta dung ham UCase
    Chucnang = UCase(Chucnang)
    'Duyet qua cac cell trong bien Khoang
    For i = 1 To Sohang
    For j = 1 To Socot
    BGiatri = Khoang.Cells(i, j).Value
    BGiatri = Trim(BGiatri)
    ' Bat dau xu ly bgiatri qua Class clsString
    Set BChuoi = New ClsString
    BChuoi.Text = BGiatri
    'Ky tu de phan cach cac Chuc nang
    'Ban co the sua lai tuy theo yeu cau cua ban
    BChuoi.Delimiter = ";"
    'Xac dinh so Chuc nang trong 1 cell
    SoLoai = BChuoi.TokenCount
    For k = 1 To SoLoai
    'Chuoi cua tung chuc nang
    BGiatri = BChuoi.TokenAt(k)
    Bchucnang = UCase(Left(BGiatri, Len(Chucnang)))
    Bgiatriso = Val(Right(BGiatri, Len(BGiatri) - Len(Chucnang)))
    Select Case Bchucnang
    Case Chucnang
    Btotal = Btotal + Bgiatriso
    End Select
    Next k
    Next j
    Next i
    Chamcong = Btotal
    End Function
    Điều quan trọng là ở cột MSNV, dựa vào mã số nhân viên này mà chúng ta có thể lấy dữ liệu từ bảng HSNV trong sheet HSNV. Chúng ta cũng dựa vào MSNV này mà lấy dữ liệu từ bảng MSNV trong sheet MSNV. Việc bố trí dữ liệu trong bảng HSNV làm sao để dễ hiểu và dễ trích rút dữ liệu thì tùy bạn. Tôi muốn nhấn mạnh ở chỗ sử dụng hàm chamcong như thế nào mà thôi.
    Như bạn biết hàm chấm công có hai tham số. Tham số thứ nhất là kiểu Range, tức là tập họp các ô. Ví dụ như E6:AI6 (thường khỏang này trong bảng chấm công sẽ tương ứng với khỏang thể hiện việc chấm công ứng với từng nhân viên, tức là một dãy các ô cùng một hàng). Tham số thứ hai là là kiểu String (kiểu chuỗi) thể hiện chức năng cần chấm. Ví dụ như TCL là tăng ca ngày lễ...vv...
    Ví dụ trong ngày 2 nhân viên A, tăng ca 2 tiếng (ngày thường), làm đủ công (tức là 8 tiếng) thì ở cột thể hiện ngày thứ 2 trong tháng bạn nhập vào NC1; TCT2, điều chú ý quan trọng ở đây là các chức năng sẽ cách nhau bởi ";". Bạn có thể thay đổi điều này trong hàm chấm công ở trên. Vậy là bạn cứ theo nguyên tắc này để chấm công các ngày còn lại.
    Vậy ở cột ngày công (AR), bạn lập công thức như sau, với giả sử rằng nhân viên A được chấm công ở hàng thứ sáu
    =chamcong(E6:AI6,"NC")
    hay bạn cũng có thể lập công thức như sau, với chú ý ở ô AR5 có giá trị NC
    =chamcong(E6:AI6, $AR$5), sở dĩ chúng ta sử dụng địa chỉ tuyệt đối nhằm việc sao chép công thức được dễ dàng.
    Bây giờ bạn hãy thử nhập số liệu vào các ô trong khỏang E6:AI6 và thử xem hàm chấm công làm việc như thế nào!
    Cuối cùng mục đích của hàm chấm công nhằm tách rời các số ra theo từng chuỗi ký tự đưa vào, và trong nhiều ô. Trong ví dụ trên là số nằm liền sau chữ NC. Ví dụ NC1, thì hàm chấm công sẽ có giá trị là 1. Chú ý quan trọng như đã nói ở trên là phải cách nhau bởi ";". Như vậy chúng ta không chỉ có thể sử dụng hàm chấm công để chấm công mà còn có thể sử dụng vào các mục đích tách số ra khỏi chuỗi ký tự.
    Việc hiểu mục đích của hàm sẽ giúp bạn rất nhiều trong việc áp dụng hàm vào mục đích của bạn.
    Như đã nói ở trên mục đích của bài viết này một lần nữa tôi muốn hướng dẫn các bạn chức năng của hàm chấm công để các bạn có thể áp dụng vào các mục đích khác.
    Việc thiết lập các bảng khác các bạn có thể tham khảo trong tài liệu tôi có đề cập ở trên.
    Chúc các bạn thành công.
    Lê Văn Duyệt
    levanduyet@gmail.com
     
    #6
  7. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Ghi chú một chút
    Ở hình 2: formula is: =if(weekday(E$5)=1,TRUE,FALSE)
    có thể được làm như sau: formula is: = weekday(E$5)=1
     
    #7
  8. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    Nếu các bạn còn dùng hàm chấm công vào các mục đích khác thì xin các bạn cũng chia sẻ với diễn đàn của EFC.
    Chúc các bạn luôn mạnh khoẻ, và luôn nhiệt tình đóng góp cho sự lớn mạnh của EFC.
    Lê Văn Duyệt
     
    #8
  9. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Thế nào gọi là Hàm chấm công???

    Hi mọi người,

    Mọi người cho mình hỏi thế nào là hàm chấm công?

    Ví dụ:
    1 nhà máy có 5 đầu đọc thẻ. Cứ lúc đầu ca, kết thúc ca làm việc, mọi người phải đi qua quẹt cái thẻ 1 cái (có người quẹt vài 3, 4 cái cho ăn chắc). Ko quẹt coi như ko làm việc; quẹt thì coi như có đi làm; quẹt sớm hay muộn thì bị tính là late-in/early-out hay là overtime các loại từ 150% đến 230%; v.v.... (ty tỷ các trường hợp xảy ra nữa như break-time, ăn trưa, làm việc overnigh, kiểm duyệt lý do nghỉ việc hay đi muộn về sớm, v.v... nữa)

    Vậy để chấm công cho những người làm việc với hệ thống trên thì đâu là "Hàm chấm công"?
     
    #9
  10. Bình_OverAC

    Bình_OverAC Over Abnormal / Crazy

    Bài viết:
    845
    Đã được thích:
    7
    Nơi ở:
    Nha Trang
    Bác hai2hai ơi! Bác gải đúng chổ ngứa của em bấy lâu rồi. :biggrin:

    Em cũng thắc mắc như bác nhưng kô dám nói. Em sợ làm mọi người phản đối về sự chi ly này. Và em cũng cân nhắc rằng liệu có cần thiết chi ly đến vậy kô? Vậy thì sao nhỉ?
     
    #10
  11. levanduyet

    levanduyet Welcome

    Bài viết:
    535
    Đã được thích:
    11
    Giới tính:
    Nam
    Nơi ở:
    HCM
    To: hai2hai,
    Thật ra, việc chấm công rất phức tạp chứ không phải cứ vào bấm thẻ, ra bấm thẻ là xong đâu.
    Vậy khi tôi "cà kê trong công ty" thì tôi tăng ca sao?
    Việc chấm công rất phức tạp, mỗi nhân viên, mỗi bộ phận tùy thuộc vào từng công ty mà có cách chấm công riêng. Chổ D làm nó rất rất phức tạp cho việc tính lương vì thế D nghĩ ra hàm này. Thật sự ra có thể viết theo cách khác (bây giờ mới nghĩ đến) thì hay hơn.
    Ngòai ra với hàm trên bạn có thể áp dụng cho việc nhập vào cùng một ô (xem như là ngày) nhiều đơn hàng và số lượng của từng đơn hàng, sau đó bạn có thể tách ra được.
    Ví dụ đơn giản cho H hiểu. Ví dụ anh A, nghỉ nửa ngày công, sau đó anh A đi làm thì được yêu cầu tăng ca. Vậy thì yêu cầu trong một cell thể hiện đầy đủ những thông tin này. Việc tính tăng ca còn phụ thuộc vào cấp bậc. Ví dụ nếu là xếp hơi hơi cao...thì thậm chí không cần tính công...vì dựa trên công việc là chính mà.
    Thân,

    LVD
     
    #11
  12. hai2hai

    hai2hai VNUNI Makes a difference

    Bài viết:
    2,012
    Đã được thích:
    128
    Nơi ở:
    Hà nội
    Đầu vào là "Vào quẹt thẻ, ra quẹt thẻ" (chỉ có 3 dữ liệu: ID, Date, Time thôi), Còn lại là phần mềm phải có 1 hệ thống parameters cực kỳ nhiều kèm theo các chính sách về quản lý thời gian làm việc thì mới tính được thời gian làm việc (chứ ko phải tính lương như anh Duyệt nói).

    Vấn đề tăng ca à, em cũng làm rồi anh Duyệt ạ.

    Khi anh cà kê trong công ty, sẽ có 1 báo cáo list ra những người về muộn 1 vài chục phút hoặc thậm chí 1 vài tiếng. Nếu những người này ko giải trình với manager của họ thì vài tiếng đó coi như ko có gì. (thậm chí nhiều khi bị khiển trách nếu xảy ra nhiều lần cà kê như vậy)

    Phần mềm chấm công hỗ trợ rất nhiều báo cáo liên quan đến thời gian làm việc của con người trong tổ chức. Nó giúp cho các managers kiểm soát được thời gian làm việc của nhân viên (kể cả thời gian cố tình ngồi chơi (cheating) như bác Duyệt nói - vì theo thực tế làm gì cũng phải đăng ký và bất kỳ ai cũng phải được quản lý bởi một tổ trưởng, quản đốc nào đó - gọi tắt những người đó là managers, nếu làm thêm giờ thì thời gian đó cũng phải được xem xét và kiểm duyệt, ngay cả chỗ em là dân IT, mọi người ngồi đến 9PM nhưng có phải ai cũng làm việc cả đâu - có job card cả rồi, quản trị dự án nó thừa biết ông nào là làm thêm thật, ông nào là ngồi ... chatting :))

    Việc kiểm soát thời gian làm việc nhiều khi không chỉ là để tính lương mà chủ yếu chỉ để kiểm soát mà thôi (ví dụ: thống kê tình hình làm tăng ca trong tháng, bộ phận nào hay làm tăng ca,... rồi đánh giá nguyên nhân tại sao lại xảy ra tình trạng tăng ca nhiều/ít như vậy, kết quả của việc tăng ca là gì??? - chủ yếu phục vụ mục tiêu quản lý - chứ ko phải tính lương anh Duyệt ạ) (nhiều khi ngồi chơi lại tốn cost của công ty lắm).

    Hầu hết các trường hợp làm tăng ca, OT, một ngày có nhiều ca khác nhau, các kiểu trường hợp cheating với hệ thống TimeSheet, v.v... em đều phải đương đầu cả rồi anh Duyệt ạ (Mất bao nhiêu time để bàn bạc giải pháp với các nhà quản lý nhân sự, với các đốc công,...). Em làm hệ thống chấm công cho nhiều nhà máy lắm rồi.

    Nhưng gì thì gì, kiểu gì cũng phải based trên một chính sách hành chính của đơn vị. Không có chính sách thì PM ko biết đâu mà lần và ko thể quản lý được time anh ạ.

    Đây có lẽ là mấu chốt của vấn đề mà anh Duyệt có khi tưởng em hiểu nhầm:
    Time Attendance (hay TimeSheet) là quản lý thời gian làm việc. Việc thời gian đó có ảnh hưởng đến lương như thế nào thì còn tùy thuộc vào chính sách lương của mỗi công ty.

    Vì thế mới có một hệ thống chấm công, tính lương, nhân sự (3 modules chính) vừa là hoạt động độc lập, vừa là tích hợp với nhau. (Nhiều nhà máy chỉ mua mỗi Time&Att thôi, còn 2 hệ thống kia họ hoặc là mua của hãng khác, hoặc là tự làm trên ...excel. Một hệ thống tổng thể giá khoảng từ 10k đến 20k)

    Ngoài Time ra, lương còn phụ thuộc vào sản phẩm, năng suất, chất lượng, dịch vụ, v.v... (tùy theo chính sách mỗi công ty)

    Trong chấm công, nhiều trường hợp oái ăm sảy ra lắm, và thường những trường hợp đó nằm hết trong Abnomal Report và các managers phải kiểm duyệt báo cáo này.

    - Trường hợp các chàng lái xe thì chịu, ko chấm công nổi --> Ignored list
    - Một số trường hợp của sales nhiều lúc cũng là abnomal case (có thể setup trong hệ thống là trường hợp nào thì ko tracking time của họ)
    - Một số trường hợp làm liền 3 ngày (ăn ngủ ngay trong nhà máy) rồi nghỉ liền mấy hôm. Trường hợp này thì chỉ xảy ra theo vụ việc thôi, cũng hiếm nhưng vẫn có.
    - Trường hợp đi ra, đi vào nhiều lần --> Giống sales
    - Trường hợp đến công ty rồi ra và đi công tác vài ngày mới quay lại --> Phải lên báo cáo abnormal
    - Double Check, OT các loại (trong đó có việc kiểm soát chuyện cà kê như anh Duyệt nói), chuyển ca liên tục - nay làm ca này, mai làm ca khác, v.v... --> Đều có thể setup được trong ệ thống và lên báo cáo
    - Xử lý đi muộn, về sớm (late-in/early-out)
    - v.v... Nhiều lắm
     
    Last edited: 28 Tháng mười hai 2005
    #12
  13. nguyenthituyetnhu

    nguyenthituyetnhu Thành viên sơ cấp

    Bài viết:
    1
    Đã được thích:
    0
    Nơi ở:
    142/10 phường bình thọ, quận thủ đức
    Ðề: Hàm chấm công

    anh có thể gửi file chấm công qua email này cho em được không tuyetnhu1990@gmail.com, cám ơn anh nhiều
     
    #13

Chia sẻ trang này