Ejemplo n.º 1
0
        /// <summary>
        /// Zwraca true jeżeli jest jakaś wartość w bazie danych
        /// </summary>
        /// <param name="select"></param>
        /// <returns></returns>
        internal static bool GetOneElementBool(string select, ConnectionToDB disconnect = ConnectionToDB.notDisconnect)
        {
            bool       boolToReturn = false;
            SqlCommand sqlSelect    = new SqlCommand();

            sqlSelect.Connection  = Polaczenia.PolaczenieDoBazy();
            sqlSelect.CommandText = select;

            //odczyt dataReaderem zwróconego wiersza
            SqlDataReader dataReader = sqlSelect.ExecuteReader();

            while (dataReader.Read())
            {
                if (!dataReader.IsDBNull(0))
                {
                    if (!String.IsNullOrEmpty(dataReader.GetValue(0).ToString()))
                    {
                        boolToReturn = true;
                    }
                }
            }
            dataReader.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
            return(boolToReturn);
        }
Ejemplo n.º 2
0
        public static void GetAll(DateTime data, ConnectionToDB disconnect = ConnectionToDB.disconnect)
        {
            string select = "select * from dni_wolne where datepart(year,data)=" + data.Year + " AND datepart(month,data)=" + data.Month;

            SqlDataReader dataReader = Database.GetData(select);

            //zerowanie listy
            ArrayListHolidays.Clear();

            while (dataReader.Read())
            {
                Holidays dw = new Holidays();

                dw.id          = dataReader.GetInt32(0);
                dw.date        = dataReader.GetDateTime(1);
                dw.description = dataReader.GetString(2);

                ArrayListHolidays.Add(dw);
            }
            dataReader.Close();

            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Pobiera ustawienia tabeli pożyczki danego uzytkownika
        /// </summary>
        /// <returns></returns>
        public void GetSettings()
        {
            string select = "select id_ustawien, sort_kolumna_poz, sort_rodzaj_poz, opcje_wys_poz from ustawienia where id_uzytkownika=" + Polaczenia.idUser;


            SqlDataReader dataReader = Database.GetData(select);

            while (dataReader.Read())
            {
                if (!dataReader.IsDBNull(0))
                {
                    idUstawienia = dataReader.GetInt32(0);
                }
                if (!dataReader.IsDBNull(1))
                {
                    sortColumnIndex = dataReader.GetInt32(1);
                }
                if (!dataReader.IsDBNull(2))
                {
                    //sortTypeAscDesc = (SortType)Enum.Parse(typeof(SortType), dataReader.GetBoolean(2).ToString());
                    sortTypeAscDesc = (SortType)Enum.Parse(typeof(SortType), Convert.ToInt32(dataReader.GetBoolean(2)).ToString());
                }
                if (!dataReader.IsDBNull(3))
                {
                    optionDisplay = (DisplayOptions)Enum.Parse(typeof(DisplayOptions), dataReader.GetInt32(3).ToString());
                }
            }
            dataReader.Close();

            //odłączenie od bazy
            Polaczenia.OdlaczenieOdBazy();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Metoda pobiera z bazy dni w których jakikolwiek pracownik był na urlopie
        /// w danym niesiącu i w danym roku.
        /// Wynik zapisuje do listy.
        /// </summary>
        /// <param name="date">Data do sprawdzenia (miesiąc, rok)</param>
        /// <param name="disconnect">True - odłącza od bazy danych</param>
        public static void GetDayOffToList(DateTime date, ConnectionToDB disconnect)//misiąc+rok
        {
            string select = "select * from urlop_rodzaj_new where datepart(year,data)=" + date.Year + " AND datepart(month,data)=" + date.Month;

            arrayListWorkTime.Clear();

            SqlDataReader dataReader = Database.GetData(select);

            while (dataReader.Read())
            {
                DayOff d = new DayOff();
                //id potrzebne do grida
                d.IdEmployee        = dataReader.GetInt32(0);
                d.Date              = dataReader.GetDateTime(1);
                d.IdTypeDayOff      = dataReader.GetInt32(2);
                d.PercentTypeDayOff = dataReader.GetInt32(3);

                arrayListWorkTime.Add(d);
            }
            dataReader.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// anulowanie - zamykanie formulerza i usuwanie blokady
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAnuluj_Click(object sender, EventArgs e)
 {
     if (isEdit)
     {
         Blokady.UsuwanieBlokady(Polaczenia.idUser, NazwaTabeli.pozyczka);
         Polaczenia.OdlaczenieOdBazy();
     }
     this.Close();
 }
Ejemplo n.º 6
0
        internal static SqlDataReader GetData(string select)
        {
            SqlCommand sqlSelect = new SqlCommand();

            sqlSelect.Connection  = Polaczenia.PolaczenieDoBazy();
            sqlSelect.CommandText = select;
            SqlDataReader dataReader = sqlSelect.ExecuteReader();

            return(dataReader);
        }
Ejemplo n.º 7
0
        internal static void Save(string select, ConnectionToDB disconnect = ConnectionToDB.notDisconnect)
        {
            SqlCommand sqlInsert = new SqlCommand();

            sqlInsert.CommandText = select;
            sqlInsert.Connection  = Polaczenia.PolaczenieDoBazy();
            //ExecuteNonQuery służy do wstawiania wierszy do tabeli
            sqlInsert.ExecuteNonQuery();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 8
0
        public static void Edit(Addition a, ConnectionToDB disconnect)
        {
            string select = "update dodatek set kwota='" + a.Amount.ToString().Replace(',', '.') + "', data='"
                            + a.Date.ToString("d", DateFormat.TakeDateFormat()) + "',inne='" + a.OtherInfo + "'where id_dodatku = '" + a.Id + "'";

            Database.Save(select, disconnect);

            //log
            LogSys.DodanieLoguSystemu(new LogSys(Polaczenia.idUser, RodzajZdarzenia.edycja, DateTime.Now, Polaczenia.ip, NazwaTabeli.dodatek,
                                                 select), disconnect == ConnectionToDB.disconnect ? true : false);
            //odłączenie od bazy
            Polaczenia.OdlaczenieOdBazy();
        }
Ejemplo n.º 9
0
        private static void GetLoansToList(string select)
        {
            //odczyt dataReaderem zwróconego wiersza
            SqlDataReader dataReader = Database.GetData(select);

            arrayLoans.Clear();

            while (dataReader.Read())
            {
                arrayLoans.Add(AssignLoan(dataReader));
            }
            dataReader.Close();
            Polaczenia.OdlaczenieOdBazy();
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        internal static int SaveReturnId(string select, ConnectionToDB disconnect = ConnectionToDB.notDisconnect)
        {
            int        id        = -1;
            SqlCommand sqlInsert = new SqlCommand();

            sqlInsert.CommandText = select;
            sqlInsert.Connection  = Polaczenia.PolaczenieDoBazy();
            //ExecuteNonQuery służy do wstawiania wierszy do tabeli
            id = (int)sqlInsert.ExecuteScalar();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
            return(id);
        }
Ejemplo n.º 12
0
        /// <summary>
        /// Zapisuje pożyczke w bazie danych
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                CheckDataCorrectness();

                DataAssignment();

                if (isEdit)
                {
                    LoanManager.EditLoan(loan, ConnectionToDB.notDisconnect);
                    Blokady.UsuwanieBlokady(Polaczenia.idUser, NazwaTabeli.pozyczka);
                }
                else
                {
                    LoanManager.AddLoan(loan, ConnectionToDB.disconnect);
                }
                //jeżeli nie było błedów ustawia poprawność na true
                Loan.correctLoan = true;

                //zamykanie formularza
                this.Close();
            }
            catch (FormatException)
            {
                MessageBox.Show("Musisz podać kwotę oddzieloną przecinkiem (np. 120,80)", "Błędne dane, popraw i spróbuj ponownie", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (EmptyStringException ex1)
            {
                MessageBox.Show(ex1.Message, "Błędne dane, popraw i spróbuj ponownie", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (WrongSizeStringException ex2)
            {
                MessageBox.Show(ex2.Message, "Błędne dane, popraw i spróbuj ponownie", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
            catch (Exception ex1)
            {
                MessageBox.Show(ex1.Message, "Błąd podczas edycji pożyczki", MessageBoxButtons.OK, MessageBoxIcon.Error);
                //log
                LogErr.DodajLogErrorDoBazy(new LogErr(Polaczenia.idUser, DateTime.Now, Polaczenia.ip, 0, NazwaTabeli.pozyczka, "PozyczkaNowaForm.btnDodaj_Click()/n/n" + ex1.Message));
                //zamykanie formularza
            }
            finally
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 13
0
        private void DownloadEmployeesToList(string select, ConnectionToDB disconnect = ConnectionToDB.disconnect)
        {
            //odczyt dataReaderem zwróconego wiersza
            SqlDataReader dataReader = Database.GetData(select);

            arrayEmployees.Clear();

            while (dataReader.Read())
            {
                arrayEmployees.Add(AssignEmployee(dataReader));
            }
            dataReader.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 14
0
        public static Loan GetLoan(int idLoan, ConnectionToDB disconnect = ConnectionToDB.disconnect)
        {
            Loan          loan       = new Loan();
            string        select     = "select * from pozyczka where id_pozyczki = " + idLoan;
            SqlDataReader dataReader = Database.GetData(select);

            while (dataReader.Read())
            {
                loan = AssignLoan(dataReader);
            }
            dataReader.Close();

            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
            return(loan);
        }
Ejemplo n.º 15
0
        public Employee GetEmployee(int idEmployee, TableView viewOrTable, ConnectionToDB disconnect)
        {
            Employee employee = new Employee();

            this.viewOrTable = viewOrTable;
            string        select     = "select * from " + (viewOrTable == TableView.view ? "pracownik_view" : "pracownik") + " where id_pracownika=" + idEmployee;
            SqlDataReader dataReader = Database.GetData(select);

            while (dataReader.Read())
            {
                employee = AssignEmployee(dataReader);
            }
            dataReader.Close();

            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }

            return(employee);
        }
Ejemplo n.º 16
0
        public static DayOff GetDayOff(int idEmployee, DateTime date, ConnectionToDB disconnect)//misiąc+rok
        {
            string select = "select * from urlop where id_pracownika=" + idEmployee +
                            " AND datepart(year,data)=" + date.Year + " AND datepart(month,data)=" + date.Month + " AND datepart(day,data)=" + date.Day;

            SqlDataReader dataReader = Database.GetData(select);

            DayOff d = new DayOff();

            while (dataReader.Read())
            {
                //id potrzebne do grida
                d.IdEmployee   = idEmployee;
                d.Date         = dataReader.GetDateTime(1);
                d.IdTypeDayOff = dataReader.GetInt32(2);
            }
            dataReader.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
            return(d);
        }
Ejemplo n.º 17
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);
            }
        }
Ejemplo n.º 18
0
        public static void GetIllnessToList(int idEmployee, DateTime date, ConnectionToDB disconnect)//misiąc+rok
        {
            string select = "select * from choroba_rodzaj_new where id_pracownika=" + idEmployee +
                            " AND datepart(year,data)=" + date.Year + " AND datepart(month,data)=" + date.Month;

            SqlDataReader dataReader = Database.GetData(select);

            while (dataReader.Read())
            {
                Illness i = new Illness();

                i.IdEmployee         = idEmployee;
                i.Date               = dataReader.GetDateTime(1);
                i.IdIllnessType      = dataReader.GetInt32(2);
                i.PercentTypeIllness = dataReader.GetFloat(3);

                arrayListWorkTime.Add(i);
            }
            dataReader.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 19
0
        public static void GetWorkToList(int idEmployee, DateTime date, ConnectionToDB disconnect)//misiąc+rok
        {
            string select = "select data,od_godz,do_godz from praca where id_pracownika=" + idEmployee +
                            " AND datepart(year,data)=" + date.Year + " AND datepart(month,data)=" + date.Month;

            //odczyt dataReaderem zwróconego wiersza
            SqlDataReader dataReaderGodziny = Database.GetData(select);

            while (dataReaderGodziny.Read())
            {
                Work w = new Work();
                w.Date      = dataReaderGodziny.GetDateTime(0);
                w.StartTime = dataReaderGodziny.GetDateTime(1);
                w.StopTime  = dataReaderGodziny.GetDateTime(2);
                //id potrzebne do menu kontekstowego grida
                w.IdEmployee = idEmployee;
                arrayListWorkTime.Add(w);
            }
            dataReaderGodziny.Close();
            if (disconnect == ConnectionToDB.disconnect)
            {
                Polaczenia.OdlaczenieOdBazy();
            }
        }
Ejemplo n.º 20
0
 /// <summary>
 /// Anulowanie wpisu i zamknię cie formularza
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void anulujButton_Click(object sender, EventArgs e)
 {
     Blokady.UsuwanieBlokady(Polaczenia.idUser, NazwaTabeli.pracownik);
     Polaczenia.OdlaczenieOdBazy();
     this.Close();
 }
Ejemplo n.º 21
0
        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();
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Przycisk zatwierdzania zmian dokonanych w formularzu
        /// zapisuje zmiany w bazie danych
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSave_Click(object sender, EventArgs e)
        {
            try
            {
                CheckDataCorrectnessEmployee();

                DataAssignmentEmployee();

                //jeżeli zmienna "edycja" ma wartość true wpis o podanym idPracownwnika jest edytowany
                if (isEdit)
                {
                    //rozpoczęcie transakcji i blokowanie rekordu
                    Polaczenia.BeginTransactionSerializable();

                    //wprowadzanie zmian do bazy
                    if (editEmployee)
                    {
                        employeeManager.Edit(employee, ConnectionToDB.notDisconnect);
                    }

                    if (editRateRegular)
                    {
                        //sprawdzenie czy istnieje stawka z wybraną datą
                        //jeżeli istnieje to edycja stawki
                        if (employee.RateRegular.IsExist())
                        {
                            employee.RateRegular.DateFrom          = dtpRegularRateFromDate.Value;
                            employee.RateRegular.RateValue         = Convert.ToSingle(this.tbRateValue.Text);
                            employee.RateRegular.IsMonthlyOrHourly = (rbRateHourly.Checked ? RateType.hourly : RateType.monthly);
                            employee.EditRateRegular(ConnectionToDB.notDisconnect);
                        }
                        else
                        //jeżeli nie to dodanie nowej
                        {
                            employee.RateRegular = new RateRegular(dtpRegularRateFromDate.Value, Convert.ToSingle(this.tbRateValue.Text), rbRateHourly.Checked ? RateType.hourly : RateType.monthly);
                            employee.AddRateRegular(ConnectionToDB.notDisconnect);
                        }
                    }

                    if (editRateOvertime)
                    {
                        //sprawdzenie czy istnieje stawka z wybraną datą
                        //jeżeli istnieje to edycja stawki
                        if (employee.RateOvertime.IsExist())
                        {
                            employee.RateOvertime.DateFrom  = dtpOvertimeRateFromDate.Value;
                            employee.RateOvertime.RateValue = Convert.ToSingle(this.tbRateOvertimeValue.Text);
                            employee.EditRateOvertime(ConnectionToDB.notDisconnect);
                        }
                        else
                        {
                            //jeżeli nie to dodanie nowej
                            employee.RateOvertime = new RateOvertime(dtpOvertimeRateFromDate.Value, Convert.ToSingle(this.tbRateOvertimeValue.Text));
                            employee.AddRateOvertime(ConnectionToDB.notDisconnect);
                        }
                    }
                    Polaczenia.CommitTransaction();
                    Blokady.UsuwanieBlokady(Polaczenia.idUser, NazwaTabeli.pracownik);
                    Polaczenia.OdlaczenieOdBazy();
                    Employee.correctEmployee = true;
                    //zamykanie formularza
                    this.Close();
                }
                else//jeżeli nie edycja to dodaje nowego pracownika do bazy
                {
                    //rozpoczęcie transakcji
                    Polaczenia.BeginTransaction();
                    //dodanie pracownika
                    int idInsertedEmployee = employeeManager.AddReturnId(employee, ConnectionToDB.notDisconnect);

                    employee = employeeManager.GetEmployee(idInsertedEmployee, TableView.table, ConnectionToDB.notDisconnect);
                    //pobranie i przypisanie id ostatniego pracownika
                    employee.RateRegular  = new RateRegular(idInsertedEmployee, dtpRegularRateFromDate.Value, Convert.ToSingle(this.tbRateValue.Text), rbRateHourly.Checked ? RateType.hourly : RateType.monthly);
                    employee.RateOvertime = new RateOvertime(idInsertedEmployee, dtpOvertimeRateFromDate.Value, Convert.ToSingle(this.tbRateOvertimeValue.Text));
                    //dodanie stawki
                    employee.AddRateRegular(ConnectionToDB.notDisconnect);
                    //dodanie stawki za nadgodziny
                    employee.AddRateOvertime(ConnectionToDB.notDisconnect);
                    Polaczenia.CommitTransaction();
                    Polaczenia.OdlaczenieOdBazy();
                    //zamykanie formularza
                    this.Close();
                }
            }
            catch (EmptyStringException ex)
            {
                MessageBox.Show(ex.Message, "Błąd danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (WrongSizeStringException ex)
            {
                MessageBox.Show(ex.Message, "Błąd danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (NoNullException ex)
            {
                MessageBox.Show(ex.Message, "Błąd danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OverflowException)
            {
                MessageBox.Show("Wprowadziłeś niepoprawną stawkę lub urlop.\n\nPopraw pola zaznaczone na czerwono.", "Błąd danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (SqlException eSQL)
            {
                MessageBox.Show(eSQL.Message, "Błąd SQL podczas wprowadzania danych", MessageBoxButtons.OK, MessageBoxIcon.Error);

                Polaczenia.RollbackTransaction();
                Polaczenia.OdlaczenieOdBazy();
                //log
                LogErr.DodajLogErrorDoBazy(new LogErr(Polaczenia.idUser, DateTime.Now, Polaczenia.ip, 0, NazwaTabeli.pracownik, "PracownikNowyForm.btnDodaj_Click()/n/n" + eSQL.Message));
            }
            catch (System.IO.FileNotFoundException ex)
            {
                MessageBox.Show(ex.Message, "Brak pliku konfiguracyjnego", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex2)
            {
                MessageBox.Show(ex2.Message, "Błąd podczas sprawdzania danych", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Polaczenia.RollbackTransaction();
                Polaczenia.OdlaczenieOdBazy();
                //log
                LogErr.DodajLogErrorDoBazy(new LogErr(Polaczenia.idUser, DateTime.Now, Polaczenia.ip, 0, NazwaTabeli.pracownik, "PracownikNowyForm.btnDodaj_Click()/n/n" + ex2.Message));
            }
            finally
            {
                //jeżeli edycja danych to usuwa blokade rekordu
                if (isEdit)
                {
                    Blokady.UsuwanieBlokady(Polaczenia.idUser, NazwaTabeli.pracownik);
                    Polaczenia.OdlaczenieOdBazy();
                }
            }
        }