public async Task <int> Insert(DailyTimeRecord model)
        {
            try
            {
                _connection = Connect.Open();
                var p = new DynamicParameters();

                p.Add("@EmployeeId", model.EmployeeId);
                p.Add("@TimeCategoryId", model.TimeCategoryId);
                p.Add("@DateCreated", model.DateCreated);
                p.Add("@Time", model.Time);
                p.Add("@DailyTimeRecordId", dbType: DbType.Int32, direction: ParameterDirection.Output);

                await _connection.ExecuteAsync("DailyTimeRecordInsert", p, commandType : CommandType.StoredProcedure);

                return(p.Get <int>("@DailyTimeRecordId"));
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(ex.HResult);
            }
            finally
            {
                _connection.Close();
            }
        }
        public void TimeOut(DailyTimeRecord dtr, Employee emp)
        {
            //new DailyTimeRecordData().UpdateData(dtr);

            //new EmployeeData().UpdateData(emp);



            //if (hasTimeIn)
            //{
            //	var startTime = Convert.ToDateTime(timeLogs.Last().StartTime);
            //	var employeeStartTime = Convert.ToDateTime(_employee.Schedule.StartTime);
            //	var endTime = Convert.ToDateTime(lblRealTime.Text);
            //	var employeeEndTime = Convert.ToDateTime(_employee.Schedule.EndTime);
            //	timeLogs.Last().EndTime = endTime.ToString("hh:mm tt");

            //	if (startTime <= employeeStartTime && endTime >= employeeEndTime)
            //	{
            //		//timeLogs.Last().Status = "On Time";
            //		timeLogDataView.Rows[timeLogDataView.Rows.Count - 2].DefaultCellStyle.BackColor = Color.DarkGreen;
            //		timeLogDataView.Rows[timeLogDataView.Rows.Count - 2].DefaultCellStyle.ForeColor = Color.White;
            //	}
            //	else
            //	{
            //		//timeLogs.Last().Status = "Late";
            //		timeLogDataView.Rows[timeLogDataView.Rows.Count - 2].DefaultCellStyle.BackColor = Color.DarkRed;
            //		timeLogDataView.Rows[timeLogDataView.Rows.Count - 2].DefaultCellStyle.ForeColor = Color.White;
            //	}

            //	hasTimeIn = false;
            //	timeLogDataView.Refresh();
            //}
        }
Пример #3
0
 public DailyTimeRecordUI()
 {
     InitializeComponent();
     loEmployee           = new Employee();
     loEmploymentType     = new EmploymentType();
     loDailyTimeRecord    = new DailyTimeRecord();
     loDepartment         = new Department();
     ldtDailyTimeRecord   = new DataTable();
     loDailyTimeRecordRpt = new DailyTimeRecordRpt();
     loReportViewer       = new ReportViewerUI();
 }
 public ChangeShiftScheduleUI(string pEmployeeNo, string pEmployeeName, DateTime pDate, DateTime pStartDate, DateTime pEndDate, string pShiftSchedule)
 {
     InitializeComponent();
     _EmployeeNo       = pEmployeeNo;
     _EmployeeName     = pEmployeeName;
     _Date             = pDate;
     _StarDate         = pStartDate;
     _EndDate          = pEndDate;
     _ShiftSchedule    = pShiftSchedule;
     loDailyTimeRecord = new DailyTimeRecord();
     _lFromSave        = false;
 }
        public async Task <IHttpActionResult> PostDailyTimeRecord(DailyTimeRecord model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var id = await _dailyTimeRepo.Insert(model);

            string uri = Url.Link("DefaultApi", new { id });

            return(Created(uri, model.DailyTimeRecordId = id));
        }
        public async Task <IHttpActionResult> PutDailyTimeRecord(DailyTimeRecord model)
        {
            var result = await _dailyTimeRepo.SelectById(model.DailyTimeRecordId);

            if (result == null)
            {
                return(NotFound());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            await _dailyTimeRepo.Update(model);

            return(Ok(model));
        }
Пример #7
0
        public void UpdateDailyTimeRecord(string username, int months)
        {
            var      computedDateMonths = DateTime.Now.AddMonths(months);
            TimeSpan?totalDaysOfMonths  = computedDateMonths - DateTime.Now;
            var      dateNow            = DateTime.Now;

            for (int i = 0; i <= totalDaysOfMonths.Value.TotalDays; i++)
            {
                if (DateTime.Now.AddDays(i).Date.DayOfWeek != DayOfWeek.Saturday && DateTime.Now.AddDays(i).Date.DayOfWeek != DayOfWeek.Sunday)
                {
                    DailyTimeRecord dailyTimeRecord = new DailyTimeRecord();
                    dailyTimeRecord.DateTimeStamps = DateTime.Now.AddDays(i).Date;
                    dailyTimeRecord.UserName       = username;
                    db.DailyTimeRecords.Add(dailyTimeRecord);
                    db.SaveChanges();
                }
            }
        }
        public void TimeIn(DailyTimeRecord dtr)
        {
            new DailyTimeRecordData().AddData(dtr);



            //if (!hasTimeIn)
            //{
            //	timeLogs.Add(new DailyTimeRecordViewModel
            //	{
            //		//Id = null,
            //		DateLoggedIn = DateTime.Today.ToShortDateString(),
            //		StartTime = Convert.ToDateTime(lblRealTime.Text).ToString("hh:mm tt")
            //	});

            //	timeLogDataView.DataSource = timeLogs;

            //	hasTimeIn = true;
            //}
        }
        public async Task Update(DailyTimeRecord model)
        {
            try
            {
                _connection = Connect.Open();
                var p = new DynamicParameters();

                p.Add("@DailyTimeRecordId", model.DailyTimeRecordId);
                p.Add("@EmployeeId", model.EmployeeId);
                p.Add("@TimeCategoryId", model.TimeCategoryId);
                p.Add("@DateCreated", model.DateCreated);
                p.Add("@Time", model.Time);
                await _connection.ExecuteAsync("DailyTimeRecordUpdate", p, commandType : CommandType.StoredProcedure);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                _connection.Close();
            }
        }
Пример #10
0
 public bool updateDailyTimeRecord([FromBody] DailyTimeRecord pDailyTimeRecord)
 {
     return(loDailyTimeRecord.updateDailyTimeRecord(pDailyTimeRecord));
 }
Пример #11
0
        private MainViewModel()
        {
            Messenger.Default.AddListener <Sample>(Messages.Scan, async sample =>
            {
                if (ScreenIndex == AdminIndex)
                {
                    return;
                }

                var finger = sample.ToFingerPrint();
                if (finger != null)
                {
                    finger.Usage++;
                    finger.LastUsed = DateTime.Now;
                    finger.Save();

                    if (finger.Login && finger.Employee.IsAdmin)
                    {
                        Punch       = finger.Employee;
                        ScreenIndex = AdminIndex;
                        return;
                    }

                    var prevDtr = DailyTimeRecord.GetTimeIn(finger.EmployeeId);
                    if (prevDtr != null)
                    {
                        if ((DateTime.Now - prevDtr.TimeIn).TotalSeconds < 60)
                        {
                            return;
                        }
                        prevDtr.TimeOut = DateTime.Now;
                        prevDtr.Save();
                    }
                    else
                    {
                        var dtr = new DailyTimeRecord(finger.EmployeeId);
                        dtr.Save();
                    }

                    PunchAM = DailyTimeRecord.Cache
                              .OrderByDescending(x => x.TimeIn)
                              .FirstOrDefault(x => x.EmployeeId == finger.EmployeeId &&
                                              x.TimeIn.Date == DateTime.Now.Date &&
                                              x.TimeIn.Hour < 12);

                    PunchPM = DailyTimeRecord.Cache
                              .OrderByDescending(x => x.TimeIn)
                              .FirstOrDefault(x => x.EmployeeId == finger.EmployeeId &&
                                              x.TimeIn.Date == DateTime.Now.Date &&
                                              x.TimeIn.Hour >= 12);

                    Punch = finger.Employee;
                    ShowPunch();
                }
            });

            if (Models.User.Cache.Count == 0 && Models.Employee.Cache.Count == 0)
            {
                ScreenIndex = AdminIndex;
            }
        }
        public async Task <EmployeeNotify> GetEmployeeDetails([FromUri] string employeeNumber, [FromUri] int?timeCategoryId)
        {
            EmployeeNotify employeeNotif;

            if (employeeNumber == null || timeCategoryId == null)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "EmployeeNumber or TimeCategoryId is not set"
                };
                employeeNotif = new EmployeeNotify
                {
                    Error = error
                };
                return(employeeNotif);
            }

            int?employeeId = await _dailyTimeRepo.SelectByEmployeeNumber(employeeNumber);



            if (employeeId == null)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "Employee Number do not exist"
                };
                employeeNotif = new EmployeeNotify
                {
                    Error = error
                };
                return(employeeNotif);
            }


            var notify = await _dailyTimeRepo.GetEmplopyeeNotification(employeeId, timeCategoryId);

            employeeNotif = new EmployeeNotify
            {
                IsSuspended     = notify.IsSuspended,
                IsResign        = notify.IsResign,
                IsTimeCheck     = notify.IsTimeCheck,
                Employee        = await _employeeRepo.SelectById(employeeId),
                DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId)
            };


            if (employeeNotif.IsSuspended || employeeNotif.IsTimeCheck || employeeNotif.IsResign)
            {
                var error = new Error
                {
                    Code    = "Error",
                    Message = "Employee is Suspended/Resign/Have already record"
                };
                employeeNotif.Error = error;

                return(employeeNotif);
            }

            var model = new DailyTimeRecord
            {
                DateCreated    = DateTime.Now,
                EmployeeId     = employeeId,
                TimeCategoryId = timeCategoryId,
                Time           = DateTime.Now
            };

            await _dailyTimeRepo.Insert(model);

            employeeNotif.DailyTimeRecord = await _dailyTimeRepo.GetDailyTimeRecordTopFive(employeeId);

            return(employeeNotif);
        }