Work on Chel
This commit is contained in:
parent
4922109f92
commit
fd6651fa5d
Binary file not shown.
@ -15,6 +15,7 @@ namespace Diplom_O.DataBase
|
||||
public DbSet<Shtat> Shtat { get; set; }
|
||||
public DbSet<Rabotnik> Rabotniky { get; set; }
|
||||
public DbSet<Chel> Chely { get; set; }
|
||||
public DbSet<ChelToChel> ChelToChely { get; set; }
|
||||
|
||||
public MainDB()
|
||||
{
|
||||
@ -71,6 +72,19 @@ namespace Diplom_O.DataBase
|
||||
public string Pasport { get; set; }
|
||||
public List<Rabotnik> Rabota { get; set; }
|
||||
}
|
||||
public class ChelToChel
|
||||
{
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public int Id { get; set; }
|
||||
[ForeignKey("Chel1")]
|
||||
public int Chel1Id { get; set; }
|
||||
public Chel Chel1 { get; set; }
|
||||
[ForeignKey("Chel2")]
|
||||
public int Chel2Id { get; set; }
|
||||
public Chel Chel2 { get; set; }
|
||||
public int Lvl { get; set; }
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Diplom_O.DataBase
|
||||
@ -130,6 +131,20 @@ namespace Diplom_O.DataBase
|
||||
catch { throw; }
|
||||
}
|
||||
|
||||
public static void ChkChel(Chel chel)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (string.IsNullOrEmpty(chel.FName)) throw new Exception("Фамилия не указана.");
|
||||
if (string.IsNullOrEmpty(chel.SName)) throw new Exception("Имя не указано.");
|
||||
if (chel.Birthday > DateTime.Now) throw new Exception("Дата рождения не верна.");
|
||||
var rgx = new Regex("^[0-9]{12}$");
|
||||
if (!rgx.IsMatch(chel.INN)) throw new Exception("ИНН указан неверно.");
|
||||
rgx = new Regex("^[0-9]{3}-[0-9]{3}-[0-9]{3} [0-9]{2}$");
|
||||
if (!rgx.IsMatch(chel.SNILS)) throw new Exception("СНИЛС указан неверно.");
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static Chel GetChel(int id)
|
||||
{
|
||||
try
|
||||
@ -170,7 +185,7 @@ namespace Diplom_O.DataBase
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static bool HaveChelFromRabotniky(int id, bool all=false)
|
||||
public static bool HaveChelRabotnik(int id, bool all=false)
|
||||
{
|
||||
try
|
||||
{
|
||||
@ -184,6 +199,126 @@ namespace Diplom_O.DataBase
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static void AddChel(Chel chel)
|
||||
{
|
||||
try
|
||||
{
|
||||
ChkChel(chel);
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
db.Chely.Add(chel);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static void ChangeChel(Chel chel)
|
||||
{
|
||||
try
|
||||
{
|
||||
ChkChel(chel);
|
||||
if (GetChel(chel.Id) == null) throw new Exception("Человека не существует.");
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
db.Chely.Update(chel);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static void DelChel(Chel chel)
|
||||
{
|
||||
try
|
||||
{
|
||||
ChkChel(chel);
|
||||
if (GetChel(chel.Id) == null) throw new Exception("Человека не существует.");
|
||||
if (HaveChelRabotnik(chel.Id, true)) throw new Exception("Человек есть в таблице работников.");
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
db.Chely.Remove(chel);
|
||||
db.SaveChanges();
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static bool HaveChelToChel(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
var res = (from a in db.ChelToChely
|
||||
where a.Chel1Id == id || a.Chel2Id == id
|
||||
select a).Count();
|
||||
return res > 0;
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static bool CanBirthdayChelToChel(int id, DateTime date)
|
||||
{
|
||||
try
|
||||
{
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
var res = (from a in db.ChelToChely
|
||||
join b in db.Chely on a.Chel2Id equals b.Id
|
||||
join c in db.Chely on a.Chel1Id equals c.Id
|
||||
where (a.Chel1Id == id && date > b.Birthday) ||
|
||||
(a.Chel2Id == id && date < c.Birthday)
|
||||
select a).Count();
|
||||
return res == 0;
|
||||
}
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
public static (int chelToChelId, Chel chel, int lvl)[] ListRodFromChel(int id)
|
||||
{
|
||||
try
|
||||
{
|
||||
var rodChel = new List<(int chelToChelId, Chel chel, int lvl)>();
|
||||
using (var db = new MainDB())
|
||||
{
|
||||
var parents = new List<(Chel chel,int lvl)>() { (GetChel(id), 0) };
|
||||
var childrens = new List<(Chel chel, int lvl)>() { (GetChel(id), 0) };
|
||||
while (parents.Count > 0 || childrens.Count > 0)
|
||||
{
|
||||
var newParents = new List<(Chel chel, int lvl)>();
|
||||
var newChildrens = new List<(Chel chel, int lvl)>();
|
||||
for(var i = 0; i < parents.Count || i < childrens.Count; i++)
|
||||
{
|
||||
var parentsLinks =
|
||||
(from a in db.ChelToChely
|
||||
where (i < parents.Count) && a.Chel2Id == parents[i].chel.Id
|
||||
select a).ToArray();
|
||||
var childrensLinks =
|
||||
(from a in db.ChelToChely
|
||||
where (i < childrens.Count) && a.Chel1Id == childrens[i].chel.Id
|
||||
select a).ToArray();
|
||||
for (var j = 0; j < parentsLinks.Length || j < childrensLinks.Length; j++)
|
||||
{
|
||||
var chel = j < parentsLinks.Length ? GetChel(parentsLinks[j].Chel1Id) : null;
|
||||
if (chel != null && rodChel.FindAll(x => x.chel.Id == chel.Id).Count == 0)
|
||||
{
|
||||
rodChel.Add((parentsLinks[j].Id, chel, parents[i].lvl - parentsLinks[j].Lvl));
|
||||
newParents.Add((chel, parents[i].lvl - parentsLinks[j].Lvl));
|
||||
}
|
||||
|
||||
chel = j < childrensLinks.Length ? GetChel(childrensLinks[j].Chel2Id) : null;
|
||||
if (chel != null && rodChel.FindAll(x => x.chel.Id == chel.Id).Count == 0)
|
||||
{
|
||||
rodChel.Add((childrensLinks[j].Id, chel, childrens[i].lvl + childrensLinks[j].Lvl));
|
||||
newChildrens.Add((chel, childrens[i].lvl + childrensLinks[j].Lvl));
|
||||
}
|
||||
}
|
||||
}
|
||||
parents = newParents;
|
||||
childrens = newChildrens;
|
||||
}
|
||||
}
|
||||
return rodChel.OrderByDescending(x => x.lvl).ToArray();
|
||||
}
|
||||
catch { throw; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
130
MainForms/ChelForm.Designer.cs
generated
130
MainForms/ChelForm.Designer.cs
generated
@ -37,13 +37,13 @@ namespace Diplom_O
|
||||
this.errorLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.rodGridView = new System.Windows.Forms.DataGridView();
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||
this.delRodButton = new System.Windows.Forms.Button();
|
||||
this.button1 = new System.Windows.Forms.Button();
|
||||
this.changeRodButton = new System.Windows.Forms.Button();
|
||||
this.addRodButton = new System.Windows.Forms.Button();
|
||||
this.linkLabel1 = new System.Windows.Forms.LinkLabel();
|
||||
this.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.rodGridView = new System.Windows.Forms.DataGridView();
|
||||
this.chelGridView = new System.Windows.Forms.DataGridView();
|
||||
this.selectButton = new System.Windows.Forms.Button();
|
||||
this.delButton = new System.Windows.Forms.Button();
|
||||
@ -69,7 +69,7 @@ namespace Diplom_O
|
||||
this.chelRodMI});
|
||||
this.menuStrip.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip.Name = "menuStrip";
|
||||
this.menuStrip.Size = new System.Drawing.Size(1102, 24);
|
||||
this.menuStrip.Size = new System.Drawing.Size(1144, 24);
|
||||
this.menuStrip.TabIndex = 1;
|
||||
this.menuStrip.Text = "menuStrip1";
|
||||
//
|
||||
@ -110,16 +110,15 @@ namespace Diplom_O
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.errorLabel});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 545);
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 386);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(1102, 22);
|
||||
this.statusStrip1.Size = new System.Drawing.Size(1144, 22);
|
||||
this.statusStrip1.TabIndex = 16;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
//
|
||||
// groupBox1
|
||||
//
|
||||
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.groupBox1.Controls.Add(this.rodGridView);
|
||||
this.groupBox1.Controls.Add(this.comboBox1);
|
||||
@ -128,21 +127,50 @@ namespace Diplom_O
|
||||
this.groupBox1.Controls.Add(this.button1);
|
||||
this.groupBox1.Controls.Add(this.changeRodButton);
|
||||
this.groupBox1.Controls.Add(this.addRodButton);
|
||||
this.groupBox1.Location = new System.Drawing.Point(760, 27);
|
||||
this.groupBox1.Location = new System.Drawing.Point(802, 27);
|
||||
this.groupBox1.Name = "groupBox1";
|
||||
this.groupBox1.Size = new System.Drawing.Size(330, 515);
|
||||
this.groupBox1.Size = new System.Drawing.Size(330, 356);
|
||||
this.groupBox1.TabIndex = 26;
|
||||
this.groupBox1.TabStop = false;
|
||||
this.groupBox1.Text = "Родственники";
|
||||
//
|
||||
// button1
|
||||
// rodGridView
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(6, 19);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(25, 23);
|
||||
this.button1.TabIndex = 27;
|
||||
this.button1.Text = "...";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
this.rodGridView.AllowUserToAddRows = false;
|
||||
this.rodGridView.AllowUserToDeleteRows = false;
|
||||
this.rodGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rodGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.rodGridView.Location = new System.Drawing.Point(6, 85);
|
||||
this.rodGridView.MultiSelect = false;
|
||||
this.rodGridView.Name = "rodGridView";
|
||||
this.rodGridView.ReadOnly = true;
|
||||
this.rodGridView.RowHeadersVisible = false;
|
||||
this.rodGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.rodGridView.Size = new System.Drawing.Size(318, 265);
|
||||
this.rodGridView.TabIndex = 32;
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Items.AddRange(new object[] {
|
||||
"Родственная связь"});
|
||||
this.comboBox1.Location = new System.Drawing.Point(168, 21);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(156, 21);
|
||||
this.comboBox1.TabIndex = 31;
|
||||
//
|
||||
// linkLabel1
|
||||
//
|
||||
this.linkLabel1.AutoSize = true;
|
||||
this.linkLabel1.Location = new System.Drawing.Point(37, 24);
|
||||
this.linkLabel1.Name = "linkLabel1";
|
||||
this.linkLabel1.Size = new System.Drawing.Size(81, 13);
|
||||
this.linkLabel1.TabIndex = 30;
|
||||
this.linkLabel1.TabStop = true;
|
||||
this.linkLabel1.Text = "Фамилия И.О.";
|
||||
//
|
||||
// delRodButton
|
||||
//
|
||||
@ -153,6 +181,15 @@ namespace Diplom_O
|
||||
this.delRodButton.Text = "Удалить";
|
||||
this.delRodButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.Location = new System.Drawing.Point(6, 19);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(25, 23);
|
||||
this.button1.TabIndex = 27;
|
||||
this.button1.Text = "...";
|
||||
this.button1.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// changeRodButton
|
||||
//
|
||||
this.changeRodButton.Location = new System.Drawing.Point(87, 56);
|
||||
@ -171,44 +208,6 @@ namespace Diplom_O
|
||||
this.addRodButton.Text = "Добавить";
|
||||
this.addRodButton.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// linkLabel1
|
||||
//
|
||||
this.linkLabel1.AutoSize = true;
|
||||
this.linkLabel1.Location = new System.Drawing.Point(37, 24);
|
||||
this.linkLabel1.Name = "linkLabel1";
|
||||
this.linkLabel1.Size = new System.Drawing.Size(81, 13);
|
||||
this.linkLabel1.TabIndex = 30;
|
||||
this.linkLabel1.TabStop = true;
|
||||
this.linkLabel1.Text = "Фамилия И.О.";
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Items.AddRange(new object[] {
|
||||
"Родственная связь"});
|
||||
this.comboBox1.Location = new System.Drawing.Point(168, 21);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(156, 21);
|
||||
this.comboBox1.TabIndex = 31;
|
||||
//
|
||||
// rodGridView
|
||||
//
|
||||
this.rodGridView.AllowUserToAddRows = false;
|
||||
this.rodGridView.AllowUserToDeleteRows = false;
|
||||
this.rodGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.rodGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.rodGridView.Location = new System.Drawing.Point(6, 85);
|
||||
this.rodGridView.MultiSelect = false;
|
||||
this.rodGridView.Name = "rodGridView";
|
||||
this.rodGridView.ReadOnly = true;
|
||||
this.rodGridView.RowHeadersVisible = false;
|
||||
this.rodGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.rodGridView.Size = new System.Drawing.Size(318, 424);
|
||||
this.rodGridView.TabIndex = 32;
|
||||
//
|
||||
// chelGridView
|
||||
//
|
||||
this.chelGridView.AllowUserToAddRows = false;
|
||||
@ -217,13 +216,13 @@ namespace Diplom_O
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.chelGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
|
||||
this.chelGridView.Location = new System.Drawing.Point(12, 79);
|
||||
this.chelGridView.Location = new System.Drawing.Point(12, 56);
|
||||
this.chelGridView.MultiSelect = false;
|
||||
this.chelGridView.Name = "chelGridView";
|
||||
this.chelGridView.ReadOnly = true;
|
||||
this.chelGridView.RowHeadersVisible = false;
|
||||
this.chelGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
||||
this.chelGridView.Size = new System.Drawing.Size(742, 434);
|
||||
this.chelGridView.Size = new System.Drawing.Size(784, 298);
|
||||
this.chelGridView.TabIndex = 35;
|
||||
//
|
||||
// selectButton
|
||||
@ -244,6 +243,7 @@ namespace Diplom_O
|
||||
this.delButton.TabIndex = 33;
|
||||
this.delButton.Text = "Удалить";
|
||||
this.delButton.UseVisualStyleBackColor = true;
|
||||
this.delButton.Click += new System.EventHandler(this.delButton_Click);
|
||||
//
|
||||
// changeButton
|
||||
//
|
||||
@ -253,6 +253,7 @@ namespace Diplom_O
|
||||
this.changeButton.TabIndex = 32;
|
||||
this.changeButton.Text = "Изменить";
|
||||
this.changeButton.UseVisualStyleBackColor = true;
|
||||
this.changeButton.Click += new System.EventHandler(this.changeButton_Click);
|
||||
//
|
||||
// addButton
|
||||
//
|
||||
@ -262,13 +263,14 @@ namespace Diplom_O
|
||||
this.addButton.TabIndex = 31;
|
||||
this.addButton.Text = "Добавить";
|
||||
this.addButton.UseVisualStyleBackColor = true;
|
||||
this.addButton.Click += new System.EventHandler(this.addButton_Click);
|
||||
//
|
||||
// showWorkerCheckBox
|
||||
//
|
||||
this.showWorkerCheckBox.AutoSize = true;
|
||||
this.showWorkerCheckBox.Checked = true;
|
||||
this.showWorkerCheckBox.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.showWorkerCheckBox.Location = new System.Drawing.Point(12, 56);
|
||||
this.showWorkerCheckBox.Location = new System.Drawing.Point(336, 31);
|
||||
this.showWorkerCheckBox.Name = "showWorkerCheckBox";
|
||||
this.showWorkerCheckBox.Size = new System.Drawing.Size(204, 17);
|
||||
this.showWorkerCheckBox.TabIndex = 30;
|
||||
@ -278,7 +280,7 @@ namespace Diplom_O
|
||||
// dropFindButton
|
||||
//
|
||||
this.dropFindButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.dropFindButton.Location = new System.Drawing.Point(679, 519);
|
||||
this.dropFindButton.Location = new System.Drawing.Point(721, 360);
|
||||
this.dropFindButton.Name = "dropFindButton";
|
||||
this.dropFindButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.dropFindButton.TabIndex = 29;
|
||||
@ -289,7 +291,7 @@ namespace Diplom_O
|
||||
//
|
||||
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(12, 524);
|
||||
this.label1.Location = new System.Drawing.Point(12, 365);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(39, 13);
|
||||
this.label1.TabIndex = 28;
|
||||
@ -299,16 +301,16 @@ namespace Diplom_O
|
||||
//
|
||||
this.findBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.findBox.Location = new System.Drawing.Point(57, 521);
|
||||
this.findBox.Location = new System.Drawing.Point(57, 362);
|
||||
this.findBox.Name = "findBox";
|
||||
this.findBox.Size = new System.Drawing.Size(616, 20);
|
||||
this.findBox.Size = new System.Drawing.Size(658, 20);
|
||||
this.findBox.TabIndex = 27;
|
||||
//
|
||||
// ChelForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(1102, 567);
|
||||
this.ClientSize = new System.Drawing.Size(1144, 408);
|
||||
this.Controls.Add(this.chelGridView);
|
||||
this.Controls.Add(this.selectButton);
|
||||
this.Controls.Add(this.delButton);
|
||||
|
@ -37,8 +37,8 @@ namespace Diplom_O
|
||||
var fd = filterDrop.Id;
|
||||
Task.Delay(1000).Wait();
|
||||
if (filterDrop.Id == fd)
|
||||
if (InvokeRequired) Invoke((Action)(() => { resetShatTable(); }));
|
||||
else resetShatTable();
|
||||
if (InvokeRequired) Invoke((Action)(() => { resetChelTable(); }));
|
||||
else resetChelTable();
|
||||
});
|
||||
filterDrop.Start();
|
||||
}
|
||||
@ -47,7 +47,7 @@ namespace Diplom_O
|
||||
{
|
||||
findBox.Text = "";
|
||||
filterDrop = new Task(() => { return; });
|
||||
resetShatTable();
|
||||
resetChelTable();
|
||||
}
|
||||
|
||||
private void resetChelTable()
|
||||
@ -59,7 +59,7 @@ namespace Diplom_O
|
||||
chelGridView.Columns.Clear();
|
||||
var c = chelGridView.Columns;
|
||||
c.Add("Id", "№");
|
||||
c.Add("FIO", "Должность");
|
||||
c.Add("FIO", "Фамилия И.О.");
|
||||
c.Add("Male", "Пол");
|
||||
c.Add("Birthday", "Дата рождения");
|
||||
c.Add("Adress", "Адрес");
|
||||
@ -69,11 +69,11 @@ namespace Diplom_O
|
||||
c[0].Width = 40;
|
||||
c[1].Width = 120;
|
||||
c[2].Width = 40;
|
||||
c[3].Width = 40;
|
||||
c[4].Width = 120;
|
||||
c[5].Width = 40;
|
||||
c[6].Width = 40;
|
||||
c[7].Width = 120;
|
||||
c[3].Width = 80;
|
||||
c[4].Width = 140;
|
||||
c[5].Width = 90;
|
||||
c[6].Width = 100;
|
||||
c[7].Width = 140;
|
||||
c[4].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
|
||||
c[7].DefaultCellStyle.WrapMode = DataGridViewTriState.True;
|
||||
}
|
||||
@ -81,7 +81,7 @@ namespace Diplom_O
|
||||
var arr = FuncDB.ListChel(findBox.Text);
|
||||
var r = chelGridView.Rows;
|
||||
foreach (var chel in arr)
|
||||
if (showWorkerCheckBox.Checked || !FuncDB.HaveChelFromRabotniky(chel.Id))
|
||||
if (showWorkerCheckBox.Checked || !FuncDB.HaveChelRabotnik(chel.Id))
|
||||
r.Add(new object[] {
|
||||
chel.Id,
|
||||
chel.FName +
|
||||
@ -148,6 +148,7 @@ namespace Diplom_O
|
||||
{
|
||||
var chel = selectedChel();
|
||||
if (chel == null) { ShowError("Человек не выбран."); return; }
|
||||
if (FuncDB.HaveChelToChel(chel.Id)) { ShowError("Человек есть в таблице родственников."); return; }
|
||||
try
|
||||
{
|
||||
FuncDB.DelChel(chel);
|
||||
|
266
SupportForms/WorkChelForm.Designer.cs
generated
266
SupportForms/WorkChelForm.Designer.cs
generated
@ -29,40 +29,52 @@ namespace Diplom_O.SupportForms
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.doljBox = new System.Windows.Forms.TextBox();
|
||||
this.kolvoBox = new System.Windows.Forms.TextBox();
|
||||
this.fNameBox = new System.Windows.Forms.TextBox();
|
||||
this.sNameBox = new System.Windows.Forms.TextBox();
|
||||
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
|
||||
this.errorLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.workButton = new System.Windows.Forms.Button();
|
||||
this.canceledButton = new System.Windows.Forms.Button();
|
||||
this.busySizeLabel = new System.Windows.Forms.ToolStripStatusLabel();
|
||||
this.tNameBox = new System.Windows.Forms.TextBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.label3 = new System.Windows.Forms.Label();
|
||||
this.label4 = new System.Windows.Forms.Label();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.addressBox = new System.Windows.Forms.RichTextBox();
|
||||
this.pasportBox = new System.Windows.Forms.RichTextBox();
|
||||
this.maleBox = new System.Windows.Forms.ComboBox();
|
||||
this.birthdayBox = new System.Windows.Forms.DateTimePicker();
|
||||
this.snilsBox = new System.Windows.Forms.MaskedTextBox();
|
||||
this.innBox = new System.Windows.Forms.MaskedTextBox();
|
||||
this.statusStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// doljBox
|
||||
// fNameBox
|
||||
//
|
||||
this.doljBox.Location = new System.Drawing.Point(87, 12);
|
||||
this.doljBox.Name = "doljBox";
|
||||
this.doljBox.Size = new System.Drawing.Size(162, 20);
|
||||
this.doljBox.TabIndex = 0;
|
||||
this.fNameBox.Location = new System.Drawing.Point(104, 12);
|
||||
this.fNameBox.Name = "fNameBox";
|
||||
this.fNameBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.fNameBox.TabIndex = 0;
|
||||
//
|
||||
// kolvoBox
|
||||
// sNameBox
|
||||
//
|
||||
this.kolvoBox.Location = new System.Drawing.Point(87, 38);
|
||||
this.kolvoBox.Name = "kolvoBox";
|
||||
this.kolvoBox.Size = new System.Drawing.Size(162, 20);
|
||||
this.kolvoBox.TabIndex = 1;
|
||||
this.sNameBox.Location = new System.Drawing.Point(104, 38);
|
||||
this.sNameBox.Name = "sNameBox";
|
||||
this.sNameBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.sNameBox.TabIndex = 1;
|
||||
//
|
||||
// statusStrip1
|
||||
//
|
||||
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.errorLabel,
|
||||
this.busySizeLabel});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 90);
|
||||
this.errorLabel});
|
||||
this.statusStrip1.Location = new System.Drawing.Point(0, 428);
|
||||
this.statusStrip1.Name = "statusStrip1";
|
||||
this.statusStrip1.Size = new System.Drawing.Size(262, 22);
|
||||
this.statusStrip1.Size = new System.Drawing.Size(332, 22);
|
||||
this.statusStrip1.TabIndex = 2;
|
||||
this.statusStrip1.Text = "statusStrip1";
|
||||
//
|
||||
@ -75,27 +87,9 @@ namespace Diplom_O.SupportForms
|
||||
this.errorLabel.Text = "Ошибка.";
|
||||
this.errorLabel.Visible = false;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(16, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(65, 13);
|
||||
this.label1.TabIndex = 3;
|
||||
this.label1.Text = "Должность";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(12, 41);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(69, 13);
|
||||
this.label2.TabIndex = 4;
|
||||
this.label2.Text = "Кол-во мест";
|
||||
//
|
||||
// workButton
|
||||
//
|
||||
this.workButton.Location = new System.Drawing.Point(175, 64);
|
||||
this.workButton.Location = new System.Drawing.Point(245, 402);
|
||||
this.workButton.Name = "workButton";
|
||||
this.workButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.workButton.TabIndex = 5;
|
||||
@ -105,7 +99,7 @@ namespace Diplom_O.SupportForms
|
||||
//
|
||||
// canceledButton
|
||||
//
|
||||
this.canceledButton.Location = new System.Drawing.Point(94, 64);
|
||||
this.canceledButton.Location = new System.Drawing.Point(164, 402);
|
||||
this.canceledButton.Name = "canceledButton";
|
||||
this.canceledButton.Size = new System.Drawing.Size(75, 23);
|
||||
this.canceledButton.TabIndex = 6;
|
||||
@ -113,29 +107,176 @@ namespace Diplom_O.SupportForms
|
||||
this.canceledButton.UseVisualStyleBackColor = true;
|
||||
this.canceledButton.Click += new System.EventHandler(this.canceledButton_Click);
|
||||
//
|
||||
// busySizeLabel
|
||||
// tNameBox
|
||||
//
|
||||
this.busySizeLabel.Name = "busySizeLabel";
|
||||
this.busySizeLabel.Size = new System.Drawing.Size(51, 17);
|
||||
this.busySizeLabel.Text = "Занято: ";
|
||||
this.busySizeLabel.Visible = false;
|
||||
this.tNameBox.Location = new System.Drawing.Point(104, 64);
|
||||
this.tNameBox.Name = "tNameBox";
|
||||
this.tNameBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.tNameBox.TabIndex = 7;
|
||||
//
|
||||
// WorkShtatForm
|
||||
// label1
|
||||
//
|
||||
this.label1.AutoSize = true;
|
||||
this.label1.Location = new System.Drawing.Point(42, 15);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(56, 13);
|
||||
this.label1.TabIndex = 29;
|
||||
this.label1.Text = "Фамилия";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(69, 41);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(29, 13);
|
||||
this.label2.TabIndex = 30;
|
||||
this.label2.Text = "Имя";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.AutoSize = true;
|
||||
this.label3.Location = new System.Drawing.Point(44, 67);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(54, 13);
|
||||
this.label3.TabIndex = 31;
|
||||
this.label3.Text = "Отчетсво";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
this.label4.AutoSize = true;
|
||||
this.label4.Location = new System.Drawing.Point(71, 93);
|
||||
this.label4.Name = "label4";
|
||||
this.label4.Size = new System.Drawing.Size(27, 13);
|
||||
this.label4.TabIndex = 32;
|
||||
this.label4.Text = "Пол";
|
||||
//
|
||||
// label5
|
||||
//
|
||||
this.label5.AutoSize = true;
|
||||
this.label5.Location = new System.Drawing.Point(12, 119);
|
||||
this.label5.Name = "label5";
|
||||
this.label5.Size = new System.Drawing.Size(86, 13);
|
||||
this.label5.TabIndex = 33;
|
||||
this.label5.Text = "Дата рождения";
|
||||
//
|
||||
// label6
|
||||
//
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.Location = new System.Drawing.Point(12, 145);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Size = new System.Drawing.Size(38, 13);
|
||||
this.label6.TabIndex = 34;
|
||||
this.label6.Text = "Адрес";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
this.label7.AutoSize = true;
|
||||
this.label7.Location = new System.Drawing.Point(12, 249);
|
||||
this.label7.Name = "label7";
|
||||
this.label7.Size = new System.Drawing.Size(31, 13);
|
||||
this.label7.TabIndex = 35;
|
||||
this.label7.Text = "ИНН";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
this.label8.AutoSize = true;
|
||||
this.label8.Location = new System.Drawing.Point(12, 275);
|
||||
this.label8.Name = "label8";
|
||||
this.label8.Size = new System.Drawing.Size(45, 13);
|
||||
this.label8.TabIndex = 36;
|
||||
this.label8.Text = "СНИЛС";
|
||||
//
|
||||
// label9
|
||||
//
|
||||
this.label9.AutoSize = true;
|
||||
this.label9.Location = new System.Drawing.Point(12, 301);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(50, 13);
|
||||
this.label9.TabIndex = 37;
|
||||
this.label9.Text = "Паспорт";
|
||||
//
|
||||
// addressBox
|
||||
//
|
||||
this.addressBox.Location = new System.Drawing.Point(104, 142);
|
||||
this.addressBox.Name = "addressBox";
|
||||
this.addressBox.Size = new System.Drawing.Size(216, 98);
|
||||
this.addressBox.TabIndex = 38;
|
||||
this.addressBox.Text = "";
|
||||
//
|
||||
// pasportBox
|
||||
//
|
||||
this.pasportBox.Location = new System.Drawing.Point(104, 298);
|
||||
this.pasportBox.Name = "pasportBox";
|
||||
this.pasportBox.Size = new System.Drawing.Size(216, 98);
|
||||
this.pasportBox.TabIndex = 39;
|
||||
this.pasportBox.Text = "";
|
||||
//
|
||||
// maleBox
|
||||
//
|
||||
this.maleBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.maleBox.FormattingEnabled = true;
|
||||
this.maleBox.Items.AddRange(new object[] {
|
||||
"Мужчина",
|
||||
"Женщина"});
|
||||
this.maleBox.Location = new System.Drawing.Point(104, 90);
|
||||
this.maleBox.Name = "maleBox";
|
||||
this.maleBox.Size = new System.Drawing.Size(216, 21);
|
||||
this.maleBox.TabIndex = 40;
|
||||
//
|
||||
// birthdayBox
|
||||
//
|
||||
this.birthdayBox.CustomFormat = "yyyy.MM.dd";
|
||||
this.birthdayBox.Location = new System.Drawing.Point(104, 116);
|
||||
this.birthdayBox.Name = "birthdayBox";
|
||||
this.birthdayBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.birthdayBox.TabIndex = 41;
|
||||
//
|
||||
// snilsBox
|
||||
//
|
||||
this.snilsBox.Location = new System.Drawing.Point(104, 272);
|
||||
this.snilsBox.Mask = "000-000-000 00";
|
||||
this.snilsBox.Name = "snilsBox";
|
||||
this.snilsBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.snilsBox.TabIndex = 42;
|
||||
//
|
||||
// innBox
|
||||
//
|
||||
this.innBox.Location = new System.Drawing.Point(104, 246);
|
||||
this.innBox.Mask = "000000000000";
|
||||
this.innBox.Name = "innBox";
|
||||
this.innBox.Size = new System.Drawing.Size(216, 20);
|
||||
this.innBox.TabIndex = 43;
|
||||
//
|
||||
// WorkChelForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(262, 112);
|
||||
this.ClientSize = new System.Drawing.Size(332, 450);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.canceledButton);
|
||||
this.Controls.Add(this.workButton);
|
||||
this.Controls.Add(this.innBox);
|
||||
this.Controls.Add(this.snilsBox);
|
||||
this.Controls.Add(this.birthdayBox);
|
||||
this.Controls.Add(this.maleBox);
|
||||
this.Controls.Add(this.pasportBox);
|
||||
this.Controls.Add(this.addressBox);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.label7);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.label5);
|
||||
this.Controls.Add(this.label4);
|
||||
this.Controls.Add(this.label3);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.tNameBox);
|
||||
this.Controls.Add(this.canceledButton);
|
||||
this.Controls.Add(this.workButton);
|
||||
this.Controls.Add(this.statusStrip1);
|
||||
this.Controls.Add(this.kolvoBox);
|
||||
this.Controls.Add(this.doljBox);
|
||||
this.Controls.Add(this.sNameBox);
|
||||
this.Controls.Add(this.fNameBox);
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "WorkShtatForm";
|
||||
this.Name = "WorkChelForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Штатное место";
|
||||
this.statusStrip1.ResumeLayout(false);
|
||||
@ -147,14 +288,27 @@ namespace Diplom_O.SupportForms
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox doljBox;
|
||||
private System.Windows.Forms.TextBox kolvoBox;
|
||||
private System.Windows.Forms.TextBox fNameBox;
|
||||
private System.Windows.Forms.TextBox sNameBox;
|
||||
private System.Windows.Forms.StatusStrip statusStrip1;
|
||||
private System.Windows.Forms.ToolStripStatusLabel errorLabel;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Button workButton;
|
||||
private System.Windows.Forms.Button canceledButton;
|
||||
private System.Windows.Forms.ToolStripStatusLabel busySizeLabel;
|
||||
private System.Windows.Forms.TextBox tNameBox;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private System.Windows.Forms.Label label5;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private System.Windows.Forms.RichTextBox addressBox;
|
||||
private System.Windows.Forms.RichTextBox pasportBox;
|
||||
private System.Windows.Forms.ComboBox maleBox;
|
||||
private System.Windows.Forms.DateTimePicker birthdayBox;
|
||||
private System.Windows.Forms.MaskedTextBox snilsBox;
|
||||
private System.Windows.Forms.MaskedTextBox innBox;
|
||||
}
|
||||
}
|
@ -34,15 +34,23 @@ namespace Diplom_O.SupportForms
|
||||
public WorkChelForm(Chel chel = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
maleBox.SelectedIndex = 0;
|
||||
birthdayBox.Value = DateTime.Now;
|
||||
try
|
||||
{
|
||||
if (shtat != null)
|
||||
if (chel != null)
|
||||
{
|
||||
this.shtat = shtat;
|
||||
this.chel = chel;
|
||||
workButton.Text = "Изменить";
|
||||
doljBox.Text = shtat.Doljnost;
|
||||
kolvoBox.Text = shtat.Size.ToString();
|
||||
busySizeLabel.Text = "Занято: " + FuncDB.BusySizeShtat(shtat.Id);
|
||||
fNameBox.Text = chel.FName;
|
||||
sNameBox.Text = chel.SName;
|
||||
tNameBox.Text = chel.TName;
|
||||
maleBox.SelectedIndex = chel.Male ? 0 : 1;
|
||||
birthdayBox.Value = chel.Birthday;
|
||||
addressBox.Text = chel.Address;
|
||||
innBox.Text = chel.INN;
|
||||
snilsBox.Text = chel.SNILS;
|
||||
pasportBox.Text = chel.Pasport;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
@ -56,17 +64,35 @@ namespace Diplom_O.SupportForms
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!int.TryParse(kolvoBox.Text, out int kolvo)) throw new Exception("Ошибка указания количества.");
|
||||
if (shtat == null)
|
||||
if (maleBox.SelectedIndex == -1) throw new Exception("Пол не указан.");
|
||||
if (chel == null)
|
||||
{
|
||||
var s = new Shtat() { Doljnost = doljBox.Text, Size = kolvo };
|
||||
FuncDB.AddShtat(s);
|
||||
var s = new Chel()
|
||||
{
|
||||
FName = fNameBox.Text,
|
||||
SName = sNameBox.Text,
|
||||
TName = tNameBox.Text,
|
||||
Male = maleBox.SelectedIndex == 0,
|
||||
Birthday = birthdayBox.Value,
|
||||
Address = addressBox.Text,
|
||||
INN = innBox.Text,
|
||||
SNILS = snilsBox.Text,
|
||||
Pasport = pasportBox.Text
|
||||
};
|
||||
FuncDB.AddChel(s);
|
||||
}
|
||||
else
|
||||
{
|
||||
shtat.Doljnost = doljBox.Text;
|
||||
shtat.Size = kolvo;
|
||||
FuncDB.ChangeShtat(shtat);
|
||||
chel.FName = fNameBox.Text;
|
||||
chel.SName = sNameBox.Text;
|
||||
chel.TName = tNameBox.Text;
|
||||
chel.Male = maleBox.SelectedIndex == 0;
|
||||
chel.Birthday = birthdayBox.Value;
|
||||
chel.Address = addressBox.Text;
|
||||
chel.INN = innBox.Text;
|
||||
chel.SNILS = snilsBox.Text;
|
||||
chel.Pasport = pasportBox.Text;
|
||||
FuncDB.ChangeChel(chel);
|
||||
}
|
||||
this.Close();
|
||||
}
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1 +1 @@
|
||||
0c2e425b901cf85af656ff5689d6db6933a3bb8c
|
||||
204ad71c07c2e68492bf31d8fc5ca1880f83504e
|
||||
|
@ -62,3 +62,4 @@ D:\GIT\Diplom O\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml
|
||||
D:\GIT\Diplom O\obj\Debug\Diplom O.csproj.CopyComplete
|
||||
D:\GIT\Diplom O\obj\Debug\Diplom_O.SupportForms.WorkShtatForm.resources
|
||||
D:\GIT\Diplom O\obj\Debug\Diplom_O.ChelForm.resources
|
||||
D:\GIT\Diplom O\obj\Debug\Diplom_O.SupportForms.WorkChelForm.resources
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
obj/Debug/Diplom_O.SupportForms.WorkChelForm.resources
Normal file
BIN
obj/Debug/Diplom_O.SupportForms.WorkChelForm.resources
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user