170 lines
4.1 KiB
C#
170 lines
4.1 KiB
C#
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;
|
||
}
|
||
}
|
||
}
|