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"]));
}
}
}