예제 #1
0
        public long DeleteAttendance(DateModal dmt)
        {
            long result;

            if (dmt.attendanceId.ToString() == "")
            {
                result = 0;
            }
            else
            {
                string AttedanceId = dmt.attendanceId.ToString();
                result = AttendanceRepository.DeleteAttendance(Guid.Parse(AttedanceId));
            }
            return(result);
        }
예제 #2
0
        public IHttpActionResult EditAttendance(DateModal dtm)
        {
            if (dtm.employeeId == Guid.Empty)
            {
                dtm.employeeId = Guid.Parse(GetUserId());
            }
            DateTime Date = DateTime.Parse(dtm.attendanceDate);
            //DateTime.Parse(dtm.monthStartDate);
            int?    day   = null;
            int     year  = Convert.ToDateTime(dtm.attendanceDate).Year;
            int     month = Convert.ToDateTime(dtm.attendanceDate).Month;
            DataSet ds    = AttendanceRepository.GetAttendance(dtm.employeeId, Convert.ToInt32(dtm.todayDay) == 0 ? day : Convert.ToInt32(dtm.todayDay), Date.Month, Date.Year);

            ds.Tables[0].TableName = "Attendance";
            DataTable dt = BindTotalTime(GetUserId(), dtm.attendanceDate);

            if (dt.Rows.Count > 0)
            {
                dt.TableName = "TotalHours";
                ds.Tables.Add(dt.Copy());
            }
            DataTable Results = ds.Tables[0];
            var       query   = Results.AsEnumerable().Select(Result => new
            {
                Attendance     = Result.Field <decimal>("Attendance"),
                AttendanceId   = Result.Field <Guid?>("AttendanceId"),
                Date           = Result.Field <DateTime>("Date").ToString("MM-dd-yyyy"),
                DayDescription = Result.Field <string>("DayDescription"),
                EmployeeId     = Result.Field <Guid>("EmployeeId"),
                InTime         = Result.Field <DateTime?>("InTime"),
                IsWorkFromHome = Result.Field <Boolean>("IsWorkFromHome"),
                OutTime        = Result.Field <DateTime?>("OutTime"),
                Remarks        = Result.Field <string>("Remarks"),
                TotalTime      = Result.Field <string>("TotalTime"),
                Type           = Result.Field <string>("Type"),
                //id = Result.Field<string>("id"),
                //internalId=Result.Field<string>("internalId")
            });

            var singleresult = query.Where(m => m.EmployeeId == dtm.employeeId && m.Date == dtm.attendanceDate);

            return(Ok(singleresult));
        }
예제 #3
0
        public IHttpActionResult GetAttendanceReport(DateModal modal)
        {
            DateTime startDate = Convert.ToDateTime(modal.monthStartDate);
            DataSet  ds        = AttendanceRepository.GetAttendanceReport(startDate);

            ds.Tables[0].TableName = "Attendance";
            DataTable dt = new DataTable();

            dt.Clear();
            dt.Columns.Add("ReportHeaders");
            foreach (DataColumn col in ds.Tables[0].Columns)
            {
                DataRow newRow = dt.NewRow();
                newRow["ReportHeaders"] = col.ColumnName;
                dt.Rows.Add(newRow);
            }
            ds.Tables.Add(dt);
            ds.Tables[1].TableName = "ReportHeaders";
            return(Ok(ds));
        }
예제 #4
0
        public IHttpActionResult GetAttendance(DateModal dtm)
        {
            if (dtm.employeeId == Guid.Empty)
            {
                dtm.employeeId = Guid.Parse(GetUserId());
            }
            DateTime startDate = DateTime.Parse(dtm.monthStartDate);
            //DateTime.Parse(dtm.monthStartDate);
            int?    day   = null;
            int     year  = Convert.ToDateTime(dtm.monthStartDate).Year;
            int     month = Convert.ToDateTime(dtm.monthStartDate).Month;
            DataSet ds    = AttendanceRepository.GetAttendance(dtm.employeeId, Convert.ToInt32(dtm.todayDay) == 0 ? day : Convert.ToInt32(dtm.todayDay), startDate.Month, startDate.Year);

            ds.Tables[0].TableName = "Attendance";
            DataTable dt = BindTotalTime(GetUserId(), dtm.monthStartDate);

            if (dt.Rows.Count > 0)
            {
                dt.TableName = "TotalHours";
                ds.Tables.Add(dt.Copy());
            }
            return(Ok(ds));
            //return Ok(JsonConvert.SerializeObject(ds, Formatting.Indented, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore }));
        }
예제 #5
0
        public IHttpActionResult  UpdateAttendance(DateModal dtm)
        {
            try
            {
                long result;
                bool isWorkfromHome             = false;
                JavaScriptSerializer serializer = new JavaScriptSerializer();
                dynamic attendanceObj           = serializer.Deserialize <object>(dtm.attendanceJsonObj);
                string  attendanceId            = attendanceObj["attendanceId"];
                string  employeeId = attendanceObj["employeeId"];
                string  type       = attendanceObj["type"];
                if (attendanceObj["outTime"] == "0")
                {
                    attendanceObj["outTime"] = "";
                }
                if (attendanceObj["inTime"] == "0")
                {
                    attendanceObj["inTime"] = "";
                }
                double?  attendanceMark = null;
                string   inTime = null, outTime = null;
                DateTime?inTimeDate, outTimeDate;
                int?     WorkFromHomeTotalTime = null;
                inTimeDate  = new DateTime();
                outTimeDate = new DateTime();
                DateTime attendanceDate = DateTime.Parse(attendanceObj["attendanceDate"]);
                int      attendanceType = Convert.ToInt32(attendanceObj["attendanceType"]);
                if (type == "H" || type == "O")
                {
                    return(null);
                }
                //make In Time
                if (!string.IsNullOrWhiteSpace(attendanceObj["inTime"]))
                {
                    inTime     = attendanceObj["attendanceDate"] + " " + attendanceObj["inTime"];
                    inTimeDate = DateTime.ParseExact(inTime, "yyyy-MM-dd HH:mm", null);
                }
                else
                {
                    inTimeDate = null;
                }
                //make Out Time
                if (!string.IsNullOrWhiteSpace(attendanceObj["outTime"]))
                {
                    outTime     = attendanceObj["attendanceDate"] + " " + attendanceObj["outTime"];
                    outTimeDate = DateTime.ParseExact(outTime, "yyyy-MM-dd HH:mm", null);
                }
                else
                {
                    outTimeDate = null;
                }

                if (attendanceType == 0)
                {
                    attendanceMark = 0;
                }
                else if (attendanceType == 1)
                {
                    attendanceMark = 0.5;
                }
                else
                {
                    attendanceMark = 1.0;
                }

                if (attendanceObj["isWorkFromHome"] == true)
                {
                    isWorkfromHome = true;
                    if (attendanceObj["duration"] != "")
                    {
                        string durationTimeMinute = attendanceObj["inTime"].ToString();
                        var    duration           = durationTimeMinute.Split(':');
                        WorkFromHomeTotalTime = Convert.ToInt32(duration[0]) * 60 + Convert.ToInt32(duration[1]);
                    }
                }
                else
                {
                    isWorkfromHome = false;
                }

                if (attendanceId == "")
                {
                    string empId = attendanceObj["employeeId"];
                    result = AttendanceRepository.InsertAttendance(Guid.Parse(empId ?? GetUserId().ToString()), attendanceDate, inTimeDate, outTimeDate, (decimal?)attendanceMark,
                                                                   isWorkfromHome ? true : false, WorkFromHomeTotalTime, !string.IsNullOrWhiteSpace(attendanceObj["remarks"]) ? attendanceObj["remarks"] : null);
                }
                else
                {
                    result = AttendanceRepository.UpdateAttendance(Guid.Parse(attendanceId), attendanceDate, inTimeDate, outTimeDate, (decimal?)attendanceMark,
                                                                   isWorkfromHome ? true : false, WorkFromHomeTotalTime, !string.IsNullOrWhiteSpace(attendanceObj["remarks"]) ? attendanceObj["remarks"] : null);
                }
                return(Ok(result));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }