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();
zamowienieDataDateTimePicker.Value = DateTime.Now;
// 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, zamowienieDataDateTimePicker.Value.Year);
row["Numer_Roz"] = User.getUser().Numer_Roz;
row["Numer_Rok"] = zamowienieDataDateTimePicker.Value.Year;
SetOrderNumberText(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)
{
zamowienieDataDateTimePicker.Value = DateTime.Now;
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, zamowienieDataDateTimePicker.Value.Year);
newRow["Numer_Roz"] = User.getUser().Numer_Roz;
newRow["Numer_Rok"] = zamowienieDataDateTimePicker.Value.Year;
SetOrderNumberText(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;
SetOrderNumberText(row["Numer"].ToString(), row["Numer_Roz"].ToString(), row["Numer_Rok"].ToString());
DateTime dataZamowienia;
if (DateTime.TryParse(row["ZamowienieData"].ToString(), out dataZamowienia))
zamowienieDataDateTimePicker.Value = dataZamowienia;
ustawLabele((DataRowView)zamowieniaBindingSource.Current);
this.realizacjeTableAdapter.FillByIDEZamowienia(this.zamowieniaDataSet.Realizacje, IDE);
anulujButton.Visible = false;
zapiszButton.Visible = false;
uprawnienia();
}
}
private void SetOrderNumberText(string number, string numberExt, string year)
{
label1.Text = number + "/" + numberExt + "/" + year;
}
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();
SetOrderNumberText(ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(dzialRow["IDE"]), zamowienieDataDateTimePicker.Value.Year).ToString(),
dzialRow["roz"].ToString(),
zamowienieDataDateTimePicker.Value.Year.ToString());
DataRowView row = (DataRowView)zamowieniaBindingSource.Current;
row["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(dzialRow["IDE"]),
zamowienieDataDateTimePicker.Value.Year);
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_CloseUp(object sender, EventArgs e)
{
DataRowView row = (DataRowView)zamowieniaBindingSource.Current;
//row["ZamowienieData"] = row["ZamowienieData"];
row["ZamowienieData"] = zamowienieDataDateTimePicker.Value;
row["Numer_Rok"] = zamowienieDataDateTimePicker.Value.Year;
row["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(zamowienieDzialComboBox.SelectedValue),
zamowienieDataDateTimePicker.Value.Year);
SetOrderNumberText(row["Numer"].ToString(), row["Numer_Roz"].ToString(), row["Numer_Rok"].ToString());
zamowieniaBindingSource.EndEdit();
}
//private void zamowienieDataDateTimePicker_ValueChanged(object sender, EventArgs e)
//{
// return;
// if (!(sender is DateTimePicker))
// return;
// DataRowView row = (DataRowView)zamowieniaBindingSource.Current;
// //row["ZamowienieData"] = row["ZamowienieData"];
// row["ZamowienieData"] = zamowienieDataDateTimePicker.Value;
// row["Numer_Rok"] = zamowienieDataDateTimePicker.Value.Year;
// row["Numer"] = ZamowieniaUtils.nrNowegoZamowienia(Convert.ToInt32(zamowienieDzialComboBox.SelectedValue),
// zamowienieDataDateTimePicker.Value.Year);
// SetOrderNumberText(row["Numer"].ToString(), row["Numer_Roz"].ToString(), row["Numer_Rok"].ToString());
// 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"]));
}
}
}