/// <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); }
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(); } }
/// <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(); }
/// <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(); } }
/// <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(); }
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(); }
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(); } }
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(); }
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); }
/// <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(); } }
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(); } }
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); }
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); }
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); }
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(); } }
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(); } }
/// <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(); }
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(); } }
/// <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(); } } }