internal static void AddIllness(Illness illness, int dayCounter)
        {
            string holidayDescription = "";
            int    numbersOfDays      = DateTime.DaysInMonth(MainForm.mainDate.Year, MainForm.mainDate.Month);

            Polaczenia.BeginTransactionSerializable();
            for (int i = 1; i <= dayCounter; i++)
            {
                if (illness.Date.DayOfWeek == DayOfWeek.Sunday)
                {
                    string       temp   = string.Format("Podawany dzień {0} jest dniem wolnym od pracy - NIEDZIELA\n Czy napewno dodać zasiłek do bazy danych?", illness.Date.ToShortDateString());
                    DialogResult result = MessageBox.Show(temp, "Pytanie", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        WorkManager.AddWorkTime(illness, ConnectionToDB.notDisconnect);
                    }
                }
                else if (illness.Date.DayOfWeek == DayOfWeek.Saturday)
                {
                    string       temp   = string.Format("Podawany dzień {0} jest dniem wolnym od pracy - SOBOTA\n Czy napewno dodać zasiłek do bazy danych?", illness.Date.ToShortDateString());
                    DialogResult result = MessageBox.Show(temp, "Pytanie", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        WorkManager.AddWorkTime(illness, ConnectionToDB.notDisconnect);
                    }
                }
                //sprawdza czy nie przypada w dzień wolny - święto
                else if (Holidays.IsHoliday(illness.Date, out holidayDescription, ConnectionToDB.notDisconnect))
                {
                    string       temp   = string.Format("W dniu {0} przypada {1}.\nCzy napewno dodać zasiłek do bazy danych?", illness.Date.ToShortDateString(), holidayDescription);
                    DialogResult result = MessageBox.Show(temp, "Pytanie", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (result == DialogResult.Yes)
                    {
                        WorkManager.AddWorkTime(illness, ConnectionToDB.notDisconnect);
                    }
                }
                else
                {
                    WorkManager.AddWorkTime(illness, ConnectionToDB.notDisconnect);
                }

                illness.Date = illness.Date.AddDays(1);//next day
            }
            Polaczenia.CommitTransaction();
            //jeżeli wpisuje godziny w ostatni dzień miesiąca to nie przechodzi na kolejny
            if (numbersOfDays != MainForm.mainDate.Day)
            {
                MainForm.mainDate = MainForm.mainDate.AddDays(1);
            }
        }
Example #2
0
        internal static void AddWork(Work work)
        {
            WorkManager.AddWorkTime(work, ConnectionToDB.disconnect);

            //jeżeli wpisuje godziny w ostatni dzień miesiąca to nie przechodzi na kolejny
            int numbersOfDays = DateTime.DaysInMonth(MainForm.mainDate.Year, MainForm.mainDate.Month);

            if (numbersOfDays != MainForm.mainDate.Day)
            {
                //dodaje jeden dzień do aktualnej daty do zmiennej pomocniczej
                MainForm.mainDate = MainForm.mainDate.AddDays(1);
            }
            else
            {
                //ustawia spowrotem na 1 dzień miesiąca
                MainForm.mainDate = new DateTime(MainForm.mainDate.Year, MainForm.mainDate.Month, 1);
            }
        }
Example #3
0
        internal static void AddDayOff(DayOff dayOff, int dayCounter)
        {
            string holidayDescription = "";

            Polaczenia.BeginTransaction();
            for (int i = 1; i <= dayCounter; i++)
            {
                if (dayOff.Date.DayOfWeek != DayOfWeek.Sunday && dayOff.Date.DayOfWeek != DayOfWeek.Saturday && !Holidays.IsHoliday(dayOff.Date, out holidayDescription, ConnectionToDB.notDisconnect))
                {
                    WorkManager.AddWorkTime(dayOff, ConnectionToDB.notDisconnect);
                    if (dayOff.IdTypeDayOff == (int)DayOffType.halfDay)
                    {
                        dayOff.DayOffSubtraction("0.5", ConnectionToDB.notDisconnect);
                    }
                    if (dayOff.IdTypeDayOff == (int)DayOffType.rest)
                    {
                        dayOff.DayOffSubtraction("1", ConnectionToDB.notDisconnect);
                    }

                    dayOff.Date = dayOff.Date.AddDays(1);//next day
                }
                else
                {
                    dayOff.Date = dayOff.Date.AddDays(1);//next day
                }
            }
            Polaczenia.CommitTransaction();
            //jeżeli wpisuje godziny w ostatni dzień miesiąca to nie przechodzi na kolejny
            int numbersOfDays = DateTime.DaysInMonth(MainForm.mainDate.Year, MainForm.mainDate.Month);

            if (numbersOfDays != MainForm.mainDate.Day)
            {
                //dodaje jeden dzień do aktualnej daty do zmiennej pomocniczej
                MainForm.mainDate = MainForm.mainDate.AddDays(dayCounter);
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                if (isWorkTimeChange)
                {
                    Work w = new Work();
                    w.IdEmployee = idEmployee;
                    w.Date       = date;
                    w.StartTime  = Convert.ToDateTime(tbWorkFrom.Text.ToString());
                    w.StopTime   = Convert.ToDateTime(tbWorkTo.Text.ToString());
                    //to sprawdza czy godzina przyjścia jest mniejsza od godziny wyjścia
                    if (w.StartTime.TimeOfDay > w.StopTime.TimeOfDay)
                    {
                        throw new WrongDateTimeException("Godzina wyjścia jest mniejsza od godziny przyjścia.");
                    }
                    w.Edit(w, ConnectionToDB.disconnect);
                }
                else
                {
                    Polaczenia.BeginTransactionSerializable();

                    //usuwanie zamienianych danych z bazy
                    switch (currentWorkType)
                    {
                    case WorkType.work:    //praca
                        WorkManager.DeleteWorkTime(WorkType.work, idEmployee, date, ConnectionToDB.notDisconnect);
                        break;

                    case WorkType.illness:    //choroba
                        WorkManager.DeleteWorkTime(WorkType.illness, idEmployee, date, ConnectionToDB.notDisconnect);
                        break;

                    case WorkType.dayOff:    //urlop
                        DayOff dayOff = WorkManager.GetDayOff(idEmployee, date, ConnectionToDB.notDisconnect);
                        WorkManager.DeleteWorkTime(WorkType.dayOff, idEmployee, date, ConnectionToDB.notDisconnect);
                        //dodaje urlop do puli urlopów z bazy danych
                        if (dayOff.IdTypeDayOff == (int)DayOffType.halfDay)
                        {
                            dayOff.DayOffAddition("0.5", ConnectionToDB.notDisconnect);
                        }
                        if (dayOff.IdTypeDayOff == (int)DayOffType.rest)
                        {
                            dayOff.DayOffAddition("1", ConnectionToDB.notDisconnect);
                        }
                        break;
                    }
                    //Polaczenia.CommitTransaction();
                    //dodawanie nowych danych do bazy
                    switch (changeForWhatWorkType)
                    {
                    case WorkType.work:    //praca
                        Work w = new Work();
                        w.IdEmployee = idEmployee;
                        w.Date       = date;
                        w.StartTime  = Convert.ToDateTime(tbWorkFrom.Text.ToString());
                        w.StopTime   = Convert.ToDateTime(tbWorkTo.Text.ToString());
                        //to sprawdza czy godzina przyjścia jest mniejsza od godziny wyjścia
                        if (w.StartTime.TimeOfDay > w.StopTime.TimeOfDay)
                        {
                            throw new WrongDateTimeException("Godzina wyjścia jest mniejsza od godziny przyjścia.");
                        }
                        WorkManager.AddWorkTime(w, ConnectionToDB.notDisconnect);
                        break;

                    case WorkType.illness:    //choroba
                        Illness illness = new Illness();
                        illness.IdEmployee    = idEmployee;
                        illness.Date          = date;
                        illness.IdIllnessType = Convert.ToInt32(cbType.SelectedValue);
                        WorkManager.AddWorkTime(illness, ConnectionToDB.notDisconnect);
                        break;

                    case WorkType.dayOff:    //urlop
                        DayOff dayOff = new DayOff();
                        dayOff.IdEmployee   = idEmployee;
                        dayOff.Date         = date;
                        dayOff.IdTypeDayOff = Convert.ToInt32(cbType.SelectedValue);
                        if (dayOff.Date.DayOfWeek != DayOfWeek.Sunday && dayOff.Date.DayOfWeek != DayOfWeek.Saturday && !Holidays.IsHoliday(dayOff.Date, ConnectionToDB.notDisconnect))
                        {
                            WorkManager.AddWorkTime(dayOff, ConnectionToDB.notDisconnect);
                            if (dayOff.IdTypeDayOff == (int)DayOffType.halfDay)
                            {
                                dayOff.DayOffSubtraction("0.5", ConnectionToDB.notDisconnect);
                            }
                            if (dayOff.IdTypeDayOff == (int)DayOffType.rest)
                            {
                                dayOff.DayOffSubtraction("1", ConnectionToDB.notDisconnect);
                            }
                        }
                        else
                        {
                            throw new WrongDateTimeException(string.Format("Podawany dzień {0} jest dniem wolnym od pracy", dayOff.Date.ToShortDateString()));
                        }
                        break;
                    }
                    Polaczenia.CommitTransaction();
                }
            }
            catch (WrongDateTimeException ex)
            {
                MessageBox.Show(ex.Message, "Błąd przy zmianie godzin.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (CancelException ex)
            {
                MessageBox.Show(ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                Polaczenia.RollbackTransaction();
                Polaczenia.OdlaczenieOdBazy();
                MessageBox.Show(ex.Message, "Błąd", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //log
                LogErr.DodajLogErrorDoBazy(new LogErr(Polaczenia.idUser, DateTime.Now, Polaczenia.ip, 0, NazwaTabeli.praca, "ZamianaRodzajuPracyForm.btnZatwierdz_Click()/n/n" + ex.Message));
            }
            finally
            {
                this.Close();
            }
        }