コード例 #1
0
        public static void Attendance_Calc(string EMP_ID, string ATT_DT, SqlConnection con, string table)
        {
            QLNhaHangContext _db = new QLNhaHangContext();
            var _dt = DateTime.Parse(ATT_DT);
            var rs  = _db.Tbldetailsattendance.Where(x => x.EmpId == EMP_ID && x.AttDt == _dt).FirstOrDefault();

            if (rs == null || rs.LocB1 == true)
            {
                return;
            }
            var rsca        = _db.Tbldetailsroster.Where(x => x.ShiId == rs.ShiId).OrderBy(x => x.SeqNo).ToList();
            var rsTypeShift = _db.Tbltypeshift.ToList();

            ArrayList Ca  = new ArrayList();
            ArrayList ATT = new ArrayList();

            for (int j = 0; j < rsca.Count(); j++)
            {
                Ca.Add(rsca[j].OnnTm);
                Ca.Add(rsca[j].OffTm);
            }

            Ca.Add(0);
            Ca.Add(0);
            Ca.Add(0);
            Ca.Add(0);
            for (int j = 1; j <= 5; j++)
            {
                ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(rs, "Onn" + j.ToString("00")) + ""));
                ATT.Add(T_String.IsNullTo00(T_String.GetPropValue(rs, "Off" + j.ToString("00")) + ""));
            }

            string NOT_DR = rs.NotDr + "";
            int    pos    = NOT_DR.IndexOf("Sign");

            if (pos >= 0)
            {
                int pos1 = PublicFunction.S_Left(NOT_DR, pos + 4).LastIndexOf(";");

                if (pos1 > 0)
                {
                    NOT_DR = NOT_DR.Substring(pos1 + 1, pos - pos1 + 3);
                }
                else
                {
                    NOT_DR = NOT_DR.Substring(0, pos + 4);
                }
            }
            else
            {
                NOT_DR = "";
            }

            Attendance_Calc(EMP_ID, ATT_DT, con, Ca, ATT, rs.ShiId + "", rsca, null, rsTypeShift, table, NOT_DR);
        }