private TMSRoster UpdateModelToEntity(TMSRosterViewModel model, DateTime date)
        {
            var result = new TMSRoster();

            result.AttendanceId = model.AttendanceId;
            result.OtCodeId     = model.OtCodeId;
            result.OtCodeValue  = model.OtCodeValue;
            result.ShiftId      = model.ShiftId;
            result.Type         = model.Type;
            result.Remarks      = model.Remarks;
            result.EmployeeId   = model.EmployeeId;
            result.Date         = date;

            return(result);
        }
        public TMSRoster Update(TMSRosterViewModel Vm)
        {
            var entity = _mapper.Map <TMSRosterViewModel, TMSRoster>(Vm);
            var date   = new DateTime(Vm.Year, Vm.Month, Vm.Day, 0, 0, 0);

            //check exist
            var existItem = _rosterRepository.Find(x => x.EmployeeId == Vm.EmployeeId && x.Date == date).FirstOrDefault();

            if (existItem != null)
            {
                existItem.AttendanceId = Vm.AttendanceId;
                existItem.ShiftId      = Vm.ShiftId;
                existItem.OtCodeId     = Vm.OtCodeId;
                existItem.OtCodeValue  = Vm.OtCodeValue;
                existItem.Remarks      = Vm.Remarks;
                existItem.Type         = Vm.Type;
                existItem.StartTime    = Vm.StartTime;
                existItem.EndTime      = Vm.EndTime;
                existItem.Type1        = Vm.Type1;
                existItem.StartTime1   = Vm.StartTime1;
                existItem.EndTime1     = Vm.EndTime1;
                existItem.Remarks1     = Vm.Remarks1;
                existItem.Type2        = Vm.Type2;
                existItem.StartTime2   = Vm.StartTime2;
                existItem.EndTime2     = Vm.EndTime2;
                existItem.Remarks2     = Vm.Remarks2;
                existItem.Type3        = Vm.Type3;
                existItem.StartTime3   = Vm.StartTime3;
                existItem.EndTime3     = Vm.EndTime3;
                existItem.Remarks3     = Vm.Remarks3;
                _rosterRepository.Update(existItem);
                entity.Id   = existItem.Id;
                entity.Date = existItem.Date;
            }
            else
            {
                entity.Date = date;
                _rosterRepository.Add(entity);
            }
            //entity.Date = date;
            //_rosterRepository.Update(entity);
            SaveChanges();
            return(entity);
        }
Beispiel #3
0
        public IActionResult Update([FromBody] TMSRosterViewModel Vm)
        {
            if (!ModelState.IsValid)
            {
                var allErrors = ModelState.Values.SelectMany(v => v.Errors);
                return(new BadRequestObjectResult(new GenericResult(false, allErrors)));
            }
            else
            {
                try
                {
                    var date = _tmsRosterService.Update(Vm);

                    return(new OkObjectResult(new GenericResult(true, date)));
                }
                catch (Exception ex)
                {
                    return(new OkObjectResult(new GenericResult(false, ex.Message)));
                }
            }
        }
        private TMSRosterViewModel AddNewItemDate(int employeeId, DateTime currentDate, TMSRoster model, TMSShiftJobSite shiftJobSite, TMSAttendance attendance)
        {
            var result = new TMSRosterViewModel();

            result.Date      = currentDate.Date.ToString("dd MMM yyyy");
            result.Month     = currentDate.Month;
            result.DayOfWeek = currentDate.DayOfWeek.ToString().Substring(0, 3);
            result.Day       = currentDate.Day;
            result.Year      = currentDate.Year;

            if (model != null)
            {
                result.Id             = 1;
                result.OtCodeId       = model.OtCodeId;
                result.OtCodeName     = GetOTName(model.OtCodeId);
                result.OtCodeValue    = model.OtCodeValue;
                result.OtCodeValueId  = (model.OtCodeValue != string.Empty) ? int.Parse(model.OtCodeValue) : 0;
                result.Remarks        = model.Remarks;
                result.RemarksSplit   = (model.Remarks != string.Empty && model.Remarks.Length > 40) ? model.Remarks.Substring(0, 40) + "..." : model.Remarks;
                result.AttendanceId   = model.AttendanceId;
                result.AttendanceName = (attendance != null) ? attendance.Name : "";
                result.ShiftId        = model.ShiftId;
                result.ShiftCodeName  = (shiftJobSite != null) ? shiftJobSite.MainCode : "";
                result.Type           = model.Type;
                result.TypeName       = GetTypeName(model.Type);
                result.EmployeeId     = employeeId;

                result.StartTime  = model.StartTime;
                result.EndTime    = model.EndTime;
                result.StartTime1 = model.StartTime1;
                result.EndTime1   = model.EndTime1;
                result.Type1      = model.Type1;
                result.Remarks1   = model.Remarks1;

                result.StartTime2 = model.StartTime2;
                result.EndTime2   = model.EndTime2;
                result.Type2      = model.Type2;
                result.Remarks2   = model.Remarks2;

                result.StartTime3 = model.StartTime3;
                result.EndTime3   = model.EndTime3;
                result.Type3      = model.Type3;
                result.Remarks3   = model.Remarks3;
            }
            else
            {
                result.Id             = 0;
                result.OtCodeId       = 0;
                result.OtCodeName     = "";
                result.OtCodeValue    = "";
                result.OtCodeValueId  = 0;
                result.Remarks        = "";
                result.RemarksSplit   = "";
                result.AttendanceId   = 0;
                result.AttendanceName = "";
                result.ShiftId        = 0;
                result.ShiftCodeName  = "";
                result.StartTime      = "";
                result.EndTime        = "";
                result.Type           = 0;
                result.TypeName       = "";
                result.EmployeeId     = 0;
            }

            return(result);
        }
        private List <RosterData> ProcessDataForTime(int employeeId, DateTime startDate, DateTime endDate, List <TMSRoster> rowData,
                                                     List <TMSShiftJobSite> lstShiftJobSite, List <TMSAttendance> lstAtendance, List <TMSShift> lstShiftCode)
        {
            var result               = new List <RosterData>();
            var lstRosterData        = new List <TMSRosterViewModel>();
            TMSRosterViewModel model = null;

            for (var curDate = startDate; curDate.Date <= endDate; curDate = curDate.AddDays(1))
            {
                if (rowData != null && rowData.Count > 0)
                {
                    for (int i = 0; i < rowData.Count; i++)
                    {
                        if (rowData[i].Date == curDate)
                        {
                            var shiftObj      = lstShiftJobSite.Where(x => x.Id == rowData[i].ShiftId).FirstOrDefault();
                            var attendanceObj = lstAtendance.Where(X => X.Id == rowData[i].AttendanceId).FirstOrDefault();
                            if (shiftObj.ShiftId != 0)
                            {
                                var shiftObjSource = lstShiftCode.Where(x => x.Id == shiftObj.ShiftId).FirstOrDefault();
                                shiftObj.MainCode = shiftObjSource.MainCode;
                            }

                            model = AddNewItemDate(employeeId, curDate.Date, rowData[i], shiftObj, attendanceObj);
                            lstRosterData.Add(model);

                            rowData.Remove(rowData[i]);

                            break;
                        }

                        if (i == rowData.Count - 1)
                        {
                            model = AddNewItemDate(employeeId, curDate.Date, null, null, null);
                            lstRosterData.Add(model);
                        }
                    }
                }
                else
                {
                    model = AddNewItemDate(employeeId, curDate.Date, null, null, null);
                    lstRosterData.Add(model);
                }
            }
            ;

            if (startDate.Month - endDate.Month > 0)
            {
                // push data from startMonth to 12
                for (int i = startDate.Month; i <= 12; i++)
                {
                    var data = new RosterData();
                    data.Month    = i;
                    data.MonthStr = GetMonthName(i).ToUpper();
                    //data.ListRoster = new List<TMSRosterViewModel>();
                    data.ListRoster = lstRosterData.Where(x => x.Month == i).ToList();

                    result.Add(data);
                }

                // push data from 1 to endMonth
                for (int i = 1; i <= endDate.Month; i++)
                {
                    var data = new RosterData();
                    data.Month    = i;
                    data.MonthStr = GetMonthName(i).ToUpper();
                    //data.ListRoster = new List<TMSRosterViewModel>();
                    data.ListRoster = lstRosterData.Where(x => x.Month == i).ToList();

                    result.Add(data);
                }
            }
            else
            {
                // push data for each month
                for (int i = startDate.Month; i <= endDate.Month; i++)
                {
                    var data = new RosterData();
                    data.Month    = i;
                    data.MonthStr = GetMonthName(i).ToUpper();
                    //data.ListRoster = new List<TMSRosterViewModel>();
                    data.ListRoster = lstRosterData.Where(x => x.Month == i).ToList();

                    result.Add(data);
                }
            }



            return(result);
        }