using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Diplom_O.DataBase; namespace Diplom_O.SupportForms { public partial class WorkerForm : Form { private Chel chel = null; private void ResetLinkFIO() { if (chel == null) { linkSelectFIO.Text = "Выбрать человека..."; return; } var res = chel.FName.ToString() + " " + chel.SName[0].ToString() + "." + ((!string.IsNullOrEmpty(chel.TName)) ? chel.TName[0].ToString() + "." : ""); linkSelectFIO.Text = res; } private int? shtatId = null; private void ResetLinkShtat() { if (shtatId == null) { linkDolj.Text = "Выбрать должность..."; return; } var res = FuncDB.ShtatGetById(shtatId.Value)?.Doljnost; linkDolj.Text = res; } public bool isCanceled = false; private Rabotnik rabotnik = null; public WorkerForm(Rabotnik rabotnik = null, bool create = false) { InitializeComponent(); try { ResetLinkFIO(); ResetLinkShtat(); tabNumBox.Text = ""; dateTimePicker1.Value = DateTime.Now; dateTimePicker2.Value = DateTime.Now; if (rabotnik == null) return; chel = FuncDB.ChelGetById(rabotnik.ChelId); ResetLinkFIO(); linkSelectFIO.Enabled = false; if (create) return; this.rabotnik = rabotnik; workButton.Text = "Изменить"; chel = FuncDB.ChelGetById(rabotnik.ChelId); ResetLinkFIO(); if (checkBox2.Checked) shtatId = null; else shtatId = FuncDB.ShtatGetById(rabotnik.ShtatId.Value).Id; ResetLinkShtat(); tabNumBox.Text = rabotnik.TabNum; dateTimePicker1.Value = rabotnik.Start; if (rabotnik.End.HasValue) { checkBox1.Checked = false; dateTimePicker2.Value = rabotnik.End.Value; } else checkBox1.Checked = true; } catch (Exception e) { this.ShowError(errorLabel, e.Message); workButton.Enabled = false; } } private void linkSelectFIO_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { var form = new ChelForm(true); form.ShowDialog(); if (form.isCanceled) chel = null; else chel = form.formResult; ResetLinkFIO(); } private void linkDolj_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { var form = new ShtatForm(true); form.ShowDialog(); if (form.isCanceled) shtatId = null; else shtatId = form.formResult.Id; ResetLinkShtat(); } private void workButton_Click(object sender, EventArgs e) { try { if (chel == null) throw new Exception("Не выбран человек."); if (!checkBox2.Checked && !shtatId.HasValue) throw new Exception("Не выбрана должность."); DateTime start = dateTimePicker1.Value; start = new DateTime(start.Year, start.Month, start.Day, 0, 0, 0); DateTime? end = null; if (!checkBox1.Checked) { end = dateTimePicker2.Value; end = new DateTime(end.Value.Year, end.Value.Month, end.Value.Day, 23, 59, 59); } var _rabotnik = new Rabotnik() { ChelId = chel.Id, ShtatId = checkBox2.Checked ? null : shtatId, AnotherWork = checkBox2.Checked, TabNum = checkBox2.Checked ? "" : tabNumBox.Text, Start = start, End = end }; if (rabotnik == null) FuncDB.RabotnikAdd(_rabotnik); else { _rabotnik.Id = rabotnik.Id; FuncDB.RabotnikChange(_rabotnik); } this.Close(); } catch (Exception ex) { this.ShowError(errorLabel, ex.Message); } } private void canceledButton_Click(object sender, EventArgs e) { isCanceled = true; this.Close(); } private void checkBox1_CheckedChanged(object sender, EventArgs e) { dateTimePicker2.Enabled = !checkBox1.Checked; } private void checkBox2_CheckedChanged(object sender, EventArgs e) { linkDolj.Enabled = !checkBox2.Checked; tabNumBox.Enabled = !checkBox2.Checked; } } }