Beispiel #1
0
 public long Insert(DayOff entity)
 {
     entity.Date = DateTime.Now;
     db.DayOffs.Add(entity);
     db.SaveChanges();
     return(entity.ID);
 }
Beispiel #2
0
        public ActionResult Create(DayOff dayOff)
        {
            if (ModelState.IsValid)
            {
                var dao = new DayOffDao();
                //lấy id trong session đăng nhập của quản trị lưu vào phiên tạo mới user
                var session = (UserLogin)Session[CommonConstants.USER_SESSION];
                dayOff.CreatedBy   = session.UserName;
                dayOff.CreatedDate = DateTime.Now;

                long id = dao.Insert(dayOff);
                if (id > 0)
                {
                    SetAlert("Thêm xin nghỉ thành công", "success");
                    return(RedirectToAction("Index", "DayOff"));
                }
                else
                {
                    ModelState.AddModelError("", "Nhân viên không tồn tại");
                }
            }
            SetViewBag();
            SetAlert("Error", "error");
            return(RedirectToAction("Index", "DayOff"));
        }
Beispiel #3
0
        public long Update(DayOff entity, string username)
        {
            var dayOff = db.DayOffs.Find(entity.ID);

            dayOff.Employee_ID = entity.Employee_ID;
            dayOff.Description = entity.Description;
            dayOff.Status      = entity.Status;

            if (dayOff.Status == true)
            {
                var emp = db.Employees.Find(entity.Employee_ID);

                emp.NumberOfDayOff = emp.NumberOfDayOff + 1;
            }

            if (entity.Date != null)
            {
                dayOff.Date = entity.Date;
            }
            //Ngày chỉnh sửa = Now
            dayOff.ModifiedBy   = username;
            dayOff.ModifiedDate = DateTime.Now;
            db.SaveChanges();
            return(entity.ID);
        }
Beispiel #4
0
        public void Setup()
        {
            InitializeMocks();
            InitializeLoggerMock(new DayOffsService(null, null, null));

            _dayOff1 = new DayOff
            {
                Id         = 1,
                CreatedOn  = _dateTimeUtil.GetCurrentDateTime(),
                DayOffType = Enums.DayOffType.Vacation,
                Hours      = 8,
                IsPaid     = true,
                PersonId   = 1
            };
            _dayOff2 = new DayOff
            {
                Id         = 2,
                CreatedOn  = _dateTimeUtil.GetCurrentDateTime().AddMonths(1),
                DayOffType = Enums.DayOffType.Vacation,
                Hours      = 8,
                IsPaid     = true,
                PersonId   = 1
            };

            _dbContext.DaysOff.Add(_dayOff1);
            _dbContext.DaysOff.Add(_dayOff2);

            _dayOffsService = new DayOffsService(_dayOffRepository, _logger, _dateTimeUtil);
        }
Beispiel #5
0
 public virtual async Task <int> AddAsync(DayOff dayOff)
 {
     if (dayOff is null)
     {
         throw new NullReferenceException("Day off cannot be empty");
     }
     if (dayOff.PersonId == 0)
     {
         throw new ArgumentException("Cannot add day off record without specified person");
     }
     if (!IsRelevantTime(dayOff.Hours))
     {
         throw new ArgumentException("Cannot add day off record without specified time");
     }
     if (dayOff.CreatedOn == DateTime.MinValue)
     {
         throw new ArgumentException("Cannot add day off record without specified date");
     }
     if (_context.DaysOff.Any(e => e.CreatedOn.Date == dayOff.CreatedOn.Date && e.PersonId == dayOff.PersonId))
     {
         return(0);
     }
     _context.DaysOff.Add(dayOff);
     return(await _context.SaveChangesAsync());
 }
Beispiel #6
0
        public void Setup()
        {
            InitializeMocks();
            DbContextMock.ShouldThrowException = false;
            _person = new Person
            {
                Id = 1,
            };
            _dbContext.People.Add(_person);

            _dayOff1 = new DayOff
            {
                Id         = 1,
                CreatedOn  = new DateTime(2020, 01, 01, 12, 00, 00),
                PersonId   = _person.Id,
                Hours      = 8,
                DayOffType = DayOffType.Vacation
            };

            _dayOff2 = new DayOff
            {
                Id         = 2,
                CreatedOn  = new DateTime(2020, 01, 02, 12, 00, 00),
                PersonId   = _person.Id,
                Hours      = 8,
                DayOffType = DayOffType.Vacation
            };

            _dbContext.DaysOff.Add(_dayOff1);
            _dbContext.DaysOff.Add(_dayOff2);

            _dayOffRepository = new DayOffRepository(_dbContext, _dateTimeUtil);
        }
        public async Task <IHttpActionResult> PutDayOff(int id, DayOff dayOff)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != dayOff.Id)
            {
                return(BadRequest());
            }

            db.Entry(dayOff).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!DayOffExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #8
0
        public ActionResult DeleteConfirmed(int id)
        {
            DayOff dayOff = db.DayOffs.Find(id);

            db.DayOffs.Remove(dayOff);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Beispiel #9
0
 /// <summary>
 /// заполнить все списки дней, рабочи выходные неполные
 /// </summary>
 private void GetListDays()
 {
     DayOff = pairsToDays.Where(x => x.CountPair == 0).ToList();
     DayOff.Sort();
     ReducedDay = pairsToDays.Where(x => x.CountPair > 0).ToList();
     ReducedDay.Sort();
     WorkDay = pairsToDays.Where(x => x.CountPair == null).ToList();
     WorkDay.Sort();
 }
        public static List <DayOff> CreateDayOff(List <String> DaysOff)
        {
            List <DayOff> DayOffList = new List <DayOff>();

            foreach (String day in DaysOff)
            {
                DayOff dayOff = new DayOff(day);
                DayOffList.Add(dayOff);
            }
            return(DayOffList);
        }
 public ActionResult Edit([Bind(Include = "Id,EmployeeId,Day")] DayOff dayOff)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dayOff).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.EmployeeId = new SelectList(db.Employees, "Id", "UserId", dayOff.EmployeeId);
     return(View(dayOff));
 }
        public async Task <IHttpActionResult> GetDayOff(int id)
        {
            DayOff dayOff = await db.DayOffs.FindAsync(id);

            if (dayOff == null)
            {
                return(NotFound());
            }

            return(Ok(dayOff));
        }
Beispiel #13
0
 private static DayOffData ToRpcModel(DayOff dayOff)
 {
     return(new DayOffData
     {
         Id = dayOff.Id,
         CreatedOn = Timestamp.FromDateTime(dayOff.CreatedOn),
         DayOffType = (int)dayOff.DayOffType,
         Hours = dayOff.Hours,
         IsPaid = dayOff.IsPaid,
         PersonId = dayOff.PersonId
     });
 }
 public Instance(FileGenLayout layout, MannagerConfig mConfig)
 {
     this.mConfig             = mConfig;
     this.fileName            = layout.getFileName();
     this.problem             = layout.getProblem();
     this.workedSequence      = layout.getWorkedSequence();
     this.attributionSequence = layout.getAttributionSequence();
     this.morningShift        = layout.getMorningShift();
     this.afternoonShift      = layout.getAfternoonShift();
     this.nightShift          = layout.getNightShift();
     this.dayOff = layout.getDayOff();
 }
Beispiel #15
0
        internal static bool AssignDayOffData(DayOff dayOff, out int dayCounter, MainForm form)
        {
            dayCounter = 0;
            try
            {
                MainForm.mainDate = Convert.ToDateTime(form.tbDayOffDate.Text);
                //jeżeli urlop wielodniowy
                if (form.chBoxDayOffMulti.Checked)
                {
                    DateTime fromDate = Convert.ToDateTime(form.tbDayOffDate.Text);
                    DateTime toDate   = form.dtpDayOff.Value.Date;
                    //oblicza ilość dni urlopowych
                    dayCounter = Convert.ToInt32((toDate - fromDate).Days + 1);//np od 10 - 13 = 3, a ma być 4 (<=13)

                    //zmienne do bazy danych do tabeli urlop
                    dayOff.IdEmployee   = Convert.ToInt32(form.cbSelectEmployeeWork.SelectedValue);
                    dayOff.Date         = Convert.ToDateTime(form.tbDayOffDate.Text);
                    dayOff.IdTypeDayOff = Convert.ToInt32(form.cbDayOffType.SelectedValue);
                    //sprawdza czy data zakończenia urlopu nie jest mniejsza od daty rozpoczęcia
                    if (fromDate > toDate)
                    {
                        throw new WrongDateTimeException("Data rozpoczęcia urlopu jest mniejsza od daty zakończenia.\n Popraw datę i spróbuj ponownie");
                    }
                    return(true);
                }
                //urlop jednodniowy
                else
                {
                    dayCounter          = 1;
                    dayOff.IdEmployee   = Convert.ToInt32(form.cbSelectEmployeeWork.SelectedValue);
                    dayOff.Date         = Convert.ToDateTime(form.tbDayOffDate.Text);
                    dayOff.IdTypeDayOff = Convert.ToInt32(form.cbDayOffType.SelectedValue);
                    return(true);
                }
            }
            catch (WrongDateTimeException ex)
            {
                MessageBox.Show(ex.Message, "Błąd przy wpisywaniu godzin.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            catch (FormatException)
            {
                MessageBox.Show("Wpisałeś niepoprawną datę rozpoczęcia lub zakończenia urlopu.\nPopraw dane i spróbuj ponownie.", "Błąd przy wpisywaniu urlopu.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            catch (Exception ex)
            {
                //log
                LogErr.DodajLogErrorDoBazy(new LogErr(Polaczenia.idUser, DateTime.Now, Polaczenia.ip, 0, NazwaTabeli.urlop, "MainForm.btnDodajGodziny_Click()/n/n" + ex.Message));
                MessageBox.Show(ex.Message, "Błąd przy wpisywaniu urlopu.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
        }
        public async Task <IHttpActionResult> PostDayOff(DayOff dayOff)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.DayOffs.Add(dayOff);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = dayOff.Id }, dayOff));
        }
Beispiel #17
0
 public ActionResult Edit([Bind(Include = "id,date,status,employeeId")] DayOff dayOff)
 {
     if (ModelState.IsValid)
     {
         db.Entry(dayOff).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.employeeId = new SelectList(db.Employees, "id", "firstName", dayOff.employeeId);
     ViewBag.name       = AdministratorController.staticName;
     return(View(dayOff));
 }
        // GET: DayOffs/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DayOff dayOff = db.DaysOff.Find(id);

            if (dayOff == null)
            {
                return(HttpNotFound());
            }
            return(View(dayOff));
        }
        public async Task <IHttpActionResult> DeleteDayOff(int id)
        {
            DayOff dayOff = await db.DayOffs.FindAsync(id);

            if (dayOff == null)
            {
                return(NotFound());
            }

            db.DayOffs.Remove(dayOff);
            await db.SaveChangesAsync();

            return(Ok(dayOff));
        }
Beispiel #20
0
        public static List <DayOff> Create(List <String> dayList, Guid habitId)
        {
            List <DayOff> dayOffList = new List <DayOff>();

            foreach (String day in dayList)
            {
                DayOff dayOff = new DayOff(day)
                {
                    HabitID = habitId
                };
                dayOffList.Add(dayOff);
            }
            return(dayOffList);
        }
Beispiel #21
0
        // GET: DayOff/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DayOff dayOff = db.DayOffs.Find(id);

            if (dayOff == null)
            {
                return(HttpNotFound());
            }
            ViewBag.name = AdministratorController.staticName;
            return(View(dayOff));
        }
Beispiel #22
0
        public virtual async Task <int> DeleteAsync(DayOff dayOff)
        {
            if (dayOff is null)
            {
                throw new NullReferenceException("Day off cannot be empty");
            }
            DateTime currentMonth = new DateTime(_dateTimeUtil.GetCurrentDateTime().Year, _dateTimeUtil.GetCurrentDateTime().Month, 1);

            if (dayOff.CreatedOn < currentMonth)
            {
                throw new InvalidOperationException("Cannot delete history record");
            }
            _context.DaysOff.Remove(dayOff);
            return(await _context.SaveChangesAsync());
        }
        public ActionResult Create(DatePickerModel date)
        {
            if (ModelState.IsValid)
            {
                DayOff dayOff = new DayOff();
                dayOff.Day = date.dtmDate;
                var userId = User.Identity.GetUserId();
                dayOff.EmployeeId = db.Employees.Where(data => data.UserId == userId).Select(data => data.Id).First();
                db.DaysOff.Add(dayOff);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View());
        }
        // GET: DayOffs/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DayOff dayOff = db.DaysOff.Find(id);

            if (dayOff == null)
            {
                return(HttpNotFound());
            }
            ViewBag.EmployeeId = new SelectList(db.Employees, "Id", "UserId", dayOff.EmployeeId);
            return(View(dayOff));
        }
 internal static void CheckPossibilityToSaveIllness(Illness illness, int dayCounter)
 {
     //sprawdza, czy był już wpis o podanej dacie w tabeli chobora
     if (illness.IsAlreadyInDataBase())
     {
         throw new AlreadyExistsException(string.Format("W dniu {0} pracownik był na zasiłku.\nProszę sprawdzić datę i spróbować ponownie.", illness.Date.ToShortDateString()));
     }
     else if (DayOff.IsAlreadyInDataBase(illness.IdEmployee, illness.Date))
     {
         throw new AlreadyExistsException(string.Format("W dniu {0} pracownik był na urlopie.\nCzy napewno dodać zasiłek do bazy danych?", illness.Date.ToShortDateString()));
     }
     else if (Work.IsAlreadyInDataBase(illness.IdEmployee, illness.Date))
     {
         throw new AlreadyExistsException(string.Format("W dniu {0} pracownik był w pracy.\nCzy napewno dodać zasiłek do bazy danych?", illness.Date.ToShortDateString()));
     }
 }
Beispiel #26
0
        // GET: DayOff/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DayOff dayOff = db.DayOffs.Find(id);

            if (dayOff == null)
            {
                return(HttpNotFound());
            }
            ViewBag.employeeId = new SelectList(db.Employees, "id", "firstName", dayOff.employeeId);
            ViewBag.name       = AdministratorController.staticName;
            return(View(dayOff));
        }
Beispiel #27
0
        public ActionResult DayOff([Bind(Include = "date")] DayOff dayOff)
        {
            List <DayOff> dayOffs = db.DayOffs.ToList();

            dayOff.date       = dayOffs[dayOffs.Count() - 1].date;
            dayOff.employeeId = userID;
            dayOff.status     = Models.DayOff.DayOffStatus.Pending;

            if (ModelState.IsValid)
            {
                db.DayOffs.Add(dayOff);
                db.SaveChanges();
                return(RedirectToAction("Request"));
            }
            ViewBag.name = staticName;
            return(View(dayOff));
        }
        public static Boolean changeStateOneRequest(String userEmail, String idRequest, String newState, IntraContext context)
        {
            try
            {
                DayOff dayOff = context.DayOffs.Where(d => d.id == idRequest).First();

                dayOff.state = newState;
                context.DayOffs.Update(dayOff);
                context.SaveChanges();
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex);
                return(false);
            }
            return(true);
        }
Beispiel #29
0
        public void AddAsync_should_add_new_record_to_db()
        {
            // Arrange
            DayOff dayOff = new()
            {
                Hours      = 8,
                CreatedOn  = new DateTime(2020, 01, 03, 12, 00, 00),
                DayOffType = DayOffType.SickLeave,
                PersonId   = _person.Id,
            };

            // Act
            int    result   = _dayOffRepository.AddAsync(dayOff).Result;
            DayOff expected = _dbContext.DaysOff.FirstOrDefault(e => e.Id == dayOff.Id);

            // Assert
            Assert.AreEqual(expected, dayOff, "Added data as expected");
            _dbContextMock.Verify(a => a.SaveChangesAsync(true, new CancellationToken()), Times.Once);
        }
Beispiel #30
0
        internal static void CheckPossibilityToSaveDayOff(DayOff dayOff, int dayCounter)
        {
            string holidayDescription = "";

            if (dayOff.IsAlreadyInDataBase())
            {
                throw new AlreadyExistsException(string.Format("W dniu {0} pracownik był na urlopie.\nProszę sprawdzić datę i spróbować ponownie.", dayOff.Date.ToShortDateString()));
            }
            else if (Illness.IsAlreadyInDataBase(dayOff.IdEmployee, dayOff.Date))
            {
                throw new AlreadyExistsException(string.Format("W dniu {0} pracownik był na zwolnieniu lekarskim.\nProszę sprawdzić datę i spróbować ponownie.", dayOff.Date.ToShortDateString()));
            }
            else if (Work.IsAlreadyInDataBase(dayOff.IdEmployee, dayOff.Date))
            {
                string       temp   = string.Format("W dniu {0} pracownik był w pracy.\nCzy napewno dodać urlop do bazy danych?", dayOff.Date.ToShortDateString());
                DialogResult result = MessageBox.Show(temp, "Pytanie", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.No)
                {
                    throw new CancelException("Anulowano");
                }
            }

            if (dayCounter > 1)//jeżeli wpisywanie wielu dni to exit
            {
                return;
            }

            if (dayOff.Date.DayOfWeek == DayOfWeek.Sunday)
            {
                throw new WrongDateTimeException(string.Format("Podawany dzień {0} jest dniem wolnym od pracy - NIEDZIELA", dayOff.Date.ToShortDateString()));
            }
            else if (dayOff.Date.DayOfWeek == DayOfWeek.Saturday)
            {
                throw new WrongDateTimeException(string.Format("Podawany dzień {0} jest dniem wolnym od pracy - SOBOTA", dayOff.Date.ToShortDateString()));
            }
            else if (Holidays.IsHoliday(dayOff.Date, out holidayDescription))
            {
                throw new WrongDateTimeException(string.Format("W dniu {0} przypada {1}.", dayOff.Date.ToShortDateString(), holidayDescription));
            }
        }