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 System.Drawing.Printing; using System.IO; namespace Baza_Reklam { public partial class ProjectForm : Form { private int reklamaID; private int projektID; private bool pro = false; Font printFont = new Font("Arial", 10); public ProjectForm(int rekId) { InitializeComponent(); reklamaID = rekId; } public ProjectForm(int rekId,int proId) { InitializeComponent(); reklamaID = rekId; projektID = proId; pro = true; } private void ProjectForm_Load(object sender, EventArgs e) { if (!ConnString.getConnString().Value.Contains("truck")) { jezykComboBox.Visible = false; label1.Visible = false; } jezykComboBox.SelectedIndex = 0; pRODUKCJATableAdapter.Connection.ConnectionString = ConnString.getConnString().Value; reklamaTableAdapter1.Connection.ConnectionString = ConnString.getConnString().Value; reklamaTableAdapter1.FillByReklamaId(this.rEKLAMADataSet.REKLAMA,this.reklamaID); this.rEKLAMADataSet.PRODUKCJA.Clear(); this.pRODUKCJATableAdapter.FillByReklamaId(this.rEKLAMADataSet.PRODUKCJA, reklamaID); pRODUKCJABindingSource.DataSource = this.rEKLAMADataSet; if (pRODUKCJABindingSource.List.Count == 0) { dodajNowyProjekt(reklamaID); } if (pro) { while ( Convert.ToInt32(((DataRowView)pRODUKCJABindingSource.Current)["ID"])!=projektID){ pRODUKCJABindingSource.MoveNext(); } } else { pRODUKCJABindingSource.MoveLast(); } } public void dodajNowyProjekt(int rekID) { // this.reklamaID = rekID; REKLAMADataSet.REKLAMARow row = this.rEKLAMADataSet.REKLAMA.FindByReklamaID(this.reklamaID); int emisja = piewrszaEmisja(reklamaID); DataView datatable = (DataView)this.pRODUKCJABindingSource.List; DataRowView row2 = datatable.AddNew(); //dane z zamowienia row2["NAZWA_ZAMOWIENIA"] = row["Id reklamy"]; row2["moduł"] = row["MOD_TYP"]; row2["reklamaId"] = this.reklamaID; row2["szer"] = row["SZER"]; row2["wys"] = row["WYS"]; row2["kolor"] = row["KOLOR"]; row2["lokalizacja"] = row["strona"]; row2["dataemisji"] = emisja; row2["AGENT"] = User.getUser().Login; row2["DATA_AGENT"] = DateTime.Now; if (DateTime.Today.DayOfWeek == DayOfWeek.Thursday) { row2["ZAMAWIAM_NA"] = DateTime.Today.AddDays(4); } else if (DateTime.Today.DayOfWeek == DayOfWeek.Friday) { row2["ZAMAWIAM_NA"] = DateTime.Today.AddDays(3); } else { row2["ZAMAWIAM_NA"] = DateTime.Today.AddDays(2); } dodajButton.Enabled = true; pRODUKCJABindingSource.EndEdit(); pRODUKCJABindingSource.MoveLast(); } private void dodajButton_Click(object sender, EventArgs e) { pRODUKCJABindingSource.EndEdit(); pRODUKCJATableAdapter.Update(this.rEKLAMADataSet.PRODUKCJA); Close(); } /// /// Blokuje pola w zależności od stanu i uprawnień. /// private void pRODUKCJABindingSource_CurrentChanged(object sender, EventArgs e) { DataRowView row = (DataRowView)pRODUKCJABindingSource.Current; wymiaryLabel.Text = Utils.pobierzSzerModulu(row["moduł"].ToString()).ToString() + " x " + Utils.pobierzWysModulu(row["moduł"].ToString()).ToString(); if (row["stan"].ToString() == "ZAMAWIAM") { dodajButton.Enabled = true; tYP_PROJEKTUComboBox.Enabled = true; zAMAWIAM_NADateTimePicker.Enabled = true; pRIORYTETComboBox.Enabled = true; oPISTextBox.ReadOnly = false; uwagiTextBox.ReadOnly = false; path_to_materialTextBox.ReadOnly = false; dataEmisjiTextBox.ReadOnly = false; lokalizacjaTextBox.ReadOnly = false; path_to_materialTextBox.ReadOnly = false; usunButton.Enabled = (User.getUser().Symbol_agenta.ToLower() == row["agent"].ToString().ToLower() ? true : false) | User.getUser().St_produkcja; } else { dodajButton.Enabled = false | User.getUser().St_produkcja; tYP_PROJEKTUComboBox.Enabled = false | User.getUser().St_produkcja; zAMAWIAM_NADateTimePicker.Enabled = false | User.getUser().St_produkcja; pRIORYTETComboBox.Enabled = false | User.getUser().St_produkcja; lokalizacjaTextBox.ReadOnly = true & !User.getUser().St_produkcja; oPISTextBox.ReadOnly = true & !User.getUser().St_produkcja; uwagiTextBox.ReadOnly = true & !User.getUser().St_produkcja; path_to_materialTextBox.ReadOnly = true & !User.getUser().St_produkcja; dataEmisjiTextBox.ReadOnly = true & !User.getUser().St_produkcja; usunButton.Enabled = User.getUser().St_kierownik; } } private void anulujButton_Click(object sender, EventArgs e) { Close(); } /// /// Wyszukuje nr pierwszej emisji... /// private int piewrszaEmisja(int reklamaId) { SqlConnection conn = new SqlConnection( ConnString.getConnString().Value); SqlCommand command = new SqlCommand(); command.CommandType = CommandType.Text; command.CommandText = "select min([Nr Wydania]) from dbo.[UKAŻE SIĘ W NR] where ReklamaId = @param "; command.Parameters.AddWithValue("@param",reklamaID); command.Connection = conn; int emisja = 0; conn.Open(); try { emisja = Convert.ToInt16(command.ExecuteScalar()); } catch (Exception e1) { MessageBox.Show("W zamówieniu nie wskazano emisji"); } conn.Close(); return emisja; } private void drukujProjektButton_Click(object sender, EventArgs e) { if (printDialog.ShowDialog() == DialogResult.OK) { printDoc.PrinterSettings = printDialog.PrinterSettings; printDoc.PrintPage += new PrintPageEventHandler(Renderuj2); printDoc.Print(); } } /// /// Przerysowuje kontrolkę na wydruk. /// private void Renderuj2(object sender, System.Drawing.Printing.PrintPageEventArgs ev) { int leftMargin = ev.MarginBounds.Left; int topMargin = ev.MarginBounds.Left; ev.Graphics.DrawRectangle(new Pen(Color.Gray), leftMargin, topMargin, this.Width, this.Height); foreach (Control c in this.Controls) { string controlType = c.GetType().ToString().Substring(c.GetType().ToString().LastIndexOf(".") + 1); switch (controlType) { case "TextBox": TextBox t = (TextBox)c; ev.Graphics.DrawRectangle(new Pen(Color.Gray), t.Left + leftMargin, t.Top + topMargin, t.Width, t.Height); ev.Graphics.DrawString(t.Text, t.Font, new SolidBrush(t.ForeColor), new RectangleF(t.Left + leftMargin + 2, t.Top + topMargin + 1, t.Width + 2, t.Height - 2), new StringFormat()); break; case "Label": Label l = (Label)c; ev.Graphics.DrawString(l.Text, l.Font, new SolidBrush(l.ForeColor), l.Left + leftMargin, l.Top + topMargin + l.Height / 2 - ev.Graphics.MeasureString("a", l.Font).Height / 2, new StringFormat()); break; case "ComboBox": ComboBox cb = (ComboBox)c; ev.Graphics.DrawRectangle(new Pen(Color.LightGray), cb.Left + leftMargin, cb.Top + topMargin, cb.Width, cb.Height); ev.Graphics.DrawString(cb.Text, cb.Font, new SolidBrush(cb.ForeColor), cb.Left + leftMargin + 2, cb.Top + topMargin+ cb.Height / 2 - ev.Graphics.MeasureString("a", cb.Font).Height / 2, new StringFormat()); break; case "DateTimePicker": DateTimePicker dp = (DateTimePicker)c; ev.Graphics.DrawRectangle(new Pen(Color.LightGray), dp.Left + leftMargin, dp.Top + topMargin, dp.Width, dp.Height); ev.Graphics.DrawString(dp.Text, dp.Font, new SolidBrush(dp.ForeColor), dp.Left + leftMargin + 2, dp.Top + topMargin + dp.Height / 2 - ev.Graphics.MeasureString("a", dp.Font).Height / 2, new StringFormat()); break; default: break; } } } private void dodajNowyButton_Click(object sender, EventArgs e) { dodajNowyProjekt(reklamaID); } private void usunButton_Click(object sender, EventArgs e) { pRODUKCJABindingSource.RemoveCurrent(); } private void modułComboBox_SelectedValueChanged(object sender, EventArgs e) { pRODUKCJABindingSource.EndEdit(); DataRowView row = (DataRowView)pRODUKCJABindingSource.Current; row["moduł"] = row["moduł"]; pRODUKCJABindingSource.EndEdit(); } private void zAMAWIAM_NADateTimePicker_ValueChanged(object sender, EventArgs e) { if (zAMAWIAM_NADateTimePicker.Value.DayOfWeek == DayOfWeek.Saturday) { zAMAWIAM_NADateTimePicker.Value = zAMAWIAM_NADateTimePicker.Value.AddDays(-1); MessageBox.Show("WEEKEND! Wybierz inny dzień"); return; } if (zAMAWIAM_NADateTimePicker.Value.DayOfWeek == DayOfWeek.Sunday) { zAMAWIAM_NADateTimePicker.Value = zAMAWIAM_NADateTimePicker.Value.AddDays(-2); MessageBox.Show("WEEKEND! Wybierz inny dzień"); return; } } } }