using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Text; using System.Windows.Forms; using BazaZamowien.Classes; namespace BazaZamowien { public partial class ZamowienieForm : Form { private bool obslugaZdarzen = false; private bool nowyRekord; private bool zmiany; /// /// Dodaje nowe zamówienie /// public ZamowienieForm() { InitializeComponent(); zamowieniaTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; decyzjeTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; dzialyTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; usersTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; realizacjeTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; DataView datatable = (DataView)this.zamowieniaBindingSource.List; DataRowView row = datatable.AddNew(); // row["IDE"] = Utils.IDENowegoZamowienia(); row["ZamowienieKto"] = User.getUser().IDE; row["ZamowienieDzial"] = User.getUser().IDEDzialu; row["ZamowienieData"] = DateTime.Now; row["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(User.getUser().IDEDzialu); row["Numer_Roz"] = User.getUser().Numer_Roz; row["Numer_Rok"] = DateTime.Today.Year; label1.Text = row["Numer"].ToString() + "/" + row["Numer_Roz"].ToString() + "/" + row["Numer_Rok"].ToString(); Validate(); zamowieniaBindingSource.EndEdit(); zamowieniaBindingSource.MoveLast(); ustawLabele((DataRowView)zamowieniaBindingSource.Current); nowyRekord = true; } /// /// Dodaje nowe zamówienie lub pokazuje szczegoly zamowienia /// /// id zamowienia do pokazania lub skopiowania /// true - kopiujemy dane do nowego, false - szczegoly zamowienia public ZamowienieForm(int IDE, bool nowe) { InitializeComponent(); zamowieniaTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; decyzjeTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; dzialyTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; usersTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; realizacjeTableAdapter.Connection.ConnectionString = ConnString.getConnString().ZamowieniaConnStr; if (nowe) { zamowieniaDataSet.ZamowieniaDataTable old = this.zamowieniaTableAdapter.GetDataByIDE(IDE); DataRow oldRow = old.Rows[0]; DataView datatable = (DataView)this.zamowieniaBindingSource.List; DataRowView newRow = datatable.AddNew(); newRow["ZamowienieTresc"] = oldRow["ZamowienieTresc"]; newRow["ZamowienieWartosc1"] = oldRow["ZamowienieWartosc1"]; newRow["ZamowienieWartosc2"] = oldRow["ZamowienieWartosc2"]; // newRow["IDE"] = Utils.IDENowegoZamowienia(); newRow["ZamowienieKto"] = User.getUser().IDE; newRow["ZamowienieDzial"] = User.getUser().IDEDzialu; newRow["ZamowienieData"] = DateTime.Now; newRow["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(User.getUser().IDEDzialu); newRow["Numer_Roz"] = User.getUser().Numer_Roz; newRow["Numer_Rok"] = DateTime.Today.Year; label1.Text = newRow["Numer"].ToString() + "/" + newRow["Numer_Roz"].ToString() + "/" + newRow["Numer_Rok"].ToString(); Validate(); zamowieniaBindingSource.EndEdit(); zamowieniaBindingSource.MoveLast(); ustawLabele((DataRowView)zamowieniaBindingSource.Current); nowyRekord = true; } else { this.zamowieniaTableAdapter.FillByIDE(zamowieniaDataSet.Zamowienia, IDE); DataRowView row = (DataRowView)zamowieniaBindingSource.Current; label1.Text = row["Numer"].ToString() + "/" + row["Numer_Roz"].ToString() + "/" + row["Numer_Rok"].ToString(); ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.realizacjeTableAdapter.FillByIDEZamowienia(this.zamowieniaDataSet.Realizacje,IDE); anulujButton.Visible = false; zapiszButton.Visible = false; uprawnienia(); } } private void zamowienieForm_Load(object sender, EventArgs e) { this.dzialyTableAdapter.Fill(this.zamowieniaDataSet.Dzialy); this.usersTableAdapter.Fill(this.zamowieniaDataSet.Users); this.zamowieniaBindingSource.ResetBindings(false); stanFormularza(); obslugaZdarzen = true; } private void zamowieniaBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.zamowieniaBindingSource.EndEdit(); this.zamowieniaTableAdapter.Update(this.zamowieniaDataSet.Zamowienia); } private void akc1Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja1"] = 1; row["Decyzja1Kto"] = User.getUser().IDE; row["Decyzja1Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc1Button.Enabled = false; nie1Button.Enabled = false; wyczysc1Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void akc2Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja2"] = 1; row["Decyzja2Kto"] = User.getUser().IDE; row["Decyzja2Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc2Button.Enabled = false; nie2Button.Enabled = false; wyczysc2Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void akc3Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja3"] = 1; row["Decyzja3Kto"] = User.getUser().IDE; row["Decyzja3Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc3Button.Enabled = false; nie3Button.Enabled = false; wyczysc3Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void nie1Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja1"] = 2; row["Decyzja1Kto"] = User.getUser().IDE; row["Decyzja1Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc1Button.Enabled = false; nie1Button.Enabled = false; wyczysc1Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void nie2Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja2"] = 2; row["Decyzja2Kto"] = User.getUser().IDE; row["Decyzja2Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc2Button.Enabled = false; nie2Button.Enabled = false; wyczysc2Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void nie3Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja3"] = 2; row["Decyzja3Kto"] = User.getUser().IDE; row["Decyzja3Data"] = DateTime.Today; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc3Button.Enabled = false; nie3Button.Enabled = false; wyczysc3Button.Enabled = true; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void wyczysc1Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja1"] = DBNull.Value; row["Decyzja1Kto"] = DBNull.Value; row["Decyzja1Data"] = DBNull.Value; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc1Button.Enabled = true; nie1Button.Enabled = true; wyczysc1Button.Enabled = false; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void wyczysc2Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja2"] = DBNull.Value; row["Decyzja2Kto"] = DBNull.Value; row["Decyzja2Data"] = DBNull.Value; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc2Button.Enabled = true; nie2Button.Enabled = true; wyczysc2Button.Enabled = false; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void wyczysc3Button_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Decyzja3"] = DBNull.Value; row["Decyzja3Kto"] = DBNull.Value; row["Decyzja3Data"] = DBNull.Value; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); akc3Button.Enabled = true; nie3Button.Enabled = true; wyczysc3Button.Enabled = false; ustawLabele((DataRowView)zamowieniaBindingSource.Current); this.zmiany = true; } } private void uprawnienia() { DataRowView row = (DataRowView)this.zamowieniaBindingSource.Current; DyrFinansPanel.Enabled = User.getUser().St_dyrektorFinansowy; DyrGeneralPanel.Enabled = User.getUser().St_dyrektorGeneralny; // bool zamZdzialu = Convert.ToInt32(row["ZamowienieDzial"]) == User.getUser().IDEDzialu ? true : false; bool zamZdzialu = ZamowieniaUtils.czyJestToZamDzialuUzytkownika(User.getUser().IDE, Convert.ToInt32(row["ZamowienieDzial"])); KierownikPanel.Enabled = User.getUser().St_kierownik & zamZdzialu; } private void stanFormularza() { DataRowView row = (DataRowView)this.zamowieniaBindingSource.Current; if (row["ZamowienieZatwierdzone"] != DBNull.Value) { odtwierdzButton.Enabled = Convert.ToBoolean(row["ZamowienieZatwierdzone"]) ? true : false; zatwierdzButton.Enabled = !odtwierdzButton.Enabled; } if (row["Decyzja1"] != DBNull.Value) { akc1Button.Enabled = false; nie1Button.Enabled = false; wyczysc1Button.Enabled = true; zamowienieTrescTextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny | User.getUser().St_kierownik); zamowienieWartosc1TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny | User.getUser().St_kierownik); zamowienieWartosc2TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny | User.getUser().St_kierownik); zamowienieTrescTextBox.BackColor = Color.White; zamowienieWartosc1TextBox.BackColor = Color.White; zamowienieWartosc2TextBox.BackColor = Color.White; zamowienieDzialComboBox.Enabled = false; } if (row["Decyzja2"] != DBNull.Value) { akc2Button.Enabled = false; nie2Button.Enabled = false; wyczysc2Button.Enabled = true; zamowienieTrescTextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieWartosc1TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieWartosc2TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieTrescTextBox.BackColor = Color.White; zamowienieWartosc1TextBox.BackColor = Color.White; zamowienieWartosc2TextBox.BackColor = Color.White; zamowienieDzialComboBox.Enabled = false; } if (row["Decyzja3"] != DBNull.Value) { akc3Button.Enabled = false; nie3Button.Enabled = false; wyczysc3Button.Enabled = true; zamowienieTrescTextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieWartosc1TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieWartosc2TextBox.ReadOnly = !(User.getUser().St_dyrektorFinansowy | User.getUser().St_dyrektorGeneralny); zamowienieTrescTextBox.BackColor = Color.White; zamowienieWartosc1TextBox.BackColor = Color.White; zamowienieWartosc2TextBox.BackColor = Color.White; zamowienieDzialComboBox.Enabled = false; } } private void dzialyBindingSource_CurrentChanged(object sender, EventArgs e) { if (obslugaZdarzen) { DataRowView dzialRow = (DataRowView)dzialyBindingSource.Current; zamowieniaBindingSource.EndEdit(); label1.Text = ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(dzialRow["IDE"])).ToString() + "/" + dzialRow["roz"].ToString() + "/" + DateTime.Today.Year; DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(dzialRow["IDE"])); row["Numer_Roz"] = dzialRow["roz"]; zamowieniaBindingSource.EndEdit(); } } private void zamowienieKtoComboBox_SelectedValueChanged(object sender, EventArgs e) { /* DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["ZamowienieKto"] = row["ZamowienieKto"]; zamowieniaBindingSource.EndEdit(); */ } private void zamowienieDataDateTimePicker_ValueChanged(object sender, EventArgs e) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; //row["ZamowienieData"] = row["ZamowienieData"]; row["ZamowienieData"] = zamowienieDataDateTimePicker.Value; zamowieniaBindingSource.EndEdit(); } private void anulujButton_Click(object sender, EventArgs e) { if (nowyRekord) { this.Close(); } else { zamowieniaDataSet.Zamowienia.RejectChanges(); } } private void zapiszButton_Click(object sender, EventArgs e) { ZapiszZmiany(); } private void ZapiszZmiany() { Validate(); zamowieniaBindingSource.EndEdit(); bool ok = false; try { zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); ok = true; } catch (SqlException e1) { /* switch (e1.Number) { // IDE juz istnieje, pobiera nowe i probuje zapisac jeszcze raz case 2627: DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["IDE"] = Utils.IDENowegoZamowienia(); zamowieniaBindingSource.EndEdit(); zapiszButton.PerformClick(); break; }*/ } if (ok) { MessageBox.Show("Zmiany zostały zapisane"); this.zmiany = true; uprawnienia(); } } private void zamowienieForm_Shown(object sender, EventArgs e) { } private void usunButton_Click(object sender, EventArgs e) { if (realizacjeBindingSource.Current != null) { if (MessageBox.Show("Czy na pewno usunąć rekord?", "", MessageBoxButtons.YesNo) == DialogResult.Yes) { realizacjeBindingSource.RemoveCurrent(); realizacjeTableAdapter.Update(zamowieniaDataSet.Realizacje); } } } private void edytujButton_Click(object sender, EventArgs e) { if (realizacjeBindingSource.Current != null) { DataRowView zamRow = (DataRowView)this.zamowieniaBindingSource.Current; int IDEzam = Convert.ToInt32(zamRow["IDE"]); DataRowView row = (DataRowView) realizacjeBindingSource.Current; int IDE = Convert.ToInt32(row["IDE"]); RealizacjaForm r = new RealizacjaForm(IDE,IDEzam,false); if (r.ShowDialog() == DialogResult.OK) { this.zamowieniaDataSet.Realizacje.Clear(); this.realizacjeTableAdapter.FillByIDEZamowienia(this.zamowieniaDataSet.Realizacje, IDEzam); } } } private void dodajButton_Click(object sender, EventArgs e) { DataRowView zamRow = (DataRowView)this.zamowieniaBindingSource.Current; int IDEzam = Convert.ToInt32(zamRow["IDE"]); // 0 jest niepotrzebne RealizacjaForm r = new RealizacjaForm(0, IDEzam, true); if (r.ShowDialog() == DialogResult.OK) { this.zamowieniaDataSet.Realizacje.Clear(); this.realizacjeTableAdapter.FillByIDEZamowienia(this.zamowieniaDataSet.Realizacje, IDEzam); } } private void zatwierdzButton_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["ZamowienieZatwierdzone"] = -1; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); odtwierdzButton.Enabled = true; zatwierdzButton.Enabled = false; this.zmiany = true; } } private void odtwierdzButton_Click(object sender, EventArgs e) { if (zamowieniaBindingSource.Current != null) { DataRowView row = (DataRowView)zamowieniaBindingSource.Current; row["ZamowienieZatwierdzone"] = 0; zamowieniaBindingSource.EndEdit(); zamowieniaTableAdapter.Update(zamowieniaDataSet.Zamowienia); odtwierdzButton.Enabled = false; zatwierdzButton.Enabled = true; this.zmiany = true; } } private void zamowienieForm_FormClosing(object sender, FormClosingEventArgs e) { this.DialogResult = this.zmiany ? DialogResult.OK : DialogResult.Cancel; } private void ustawLabele(DataRowView row) { labelDecyzja1.Text = row["Decyzja1"] == DBNull.Value ? " " : ZamowieniaUtils.podajDecyzje(Convert.ToInt32(row["Decyzja1"])); labelDecyzja2.Text = row["Decyzja2"] == DBNull.Value ? " " : ZamowieniaUtils.podajDecyzje(Convert.ToInt32(row["Decyzja2"])); labelDecyzja3.Text = row["Decyzja3"] == DBNull.Value ? " " : ZamowieniaUtils.podajDecyzje(Convert.ToInt32(row["Decyzja3"])); labelKto1.Text = row["Decyzja1Kto"] == DBNull.Value ? " " : ZamowieniaUtils.podajLoginUzytkownika(Convert.ToInt32(row["Decyzja1Kto"])); labelKto2.Text = row["Decyzja2Kto"] == DBNull.Value ? " " : ZamowieniaUtils.podajLoginUzytkownika(Convert.ToInt32(row["Decyzja2Kto"])); labelKto3.Text = row["Decyzja3Kto"] == DBNull.Value ? " " : ZamowieniaUtils.podajLoginUzytkownika(Convert.ToInt32(row["Decyzja3Kto"])); zamowienieKtoLabel2.Text = row["ZamowienieKto"] == DBNull.Value ? " " : ZamowieniaUtils.podajLoginUzytkownika(Convert.ToInt32(row["ZamowienieKto"])); } } }