diff --git a/ProjectItCompany/ProjectItCompany/Entities/Contract.cs b/ProjectItCompany/ProjectItCompany/Entities/Contract.cs index 7128975..1dc0312 100644 --- a/ProjectItCompany/ProjectItCompany/Entities/Contract.cs +++ b/ProjectItCompany/ProjectItCompany/Entities/Contract.cs @@ -11,22 +11,21 @@ public class Contract { public int Id { get; private set; } public DateTime Date { get; private set; } - public decimal CustomerId { get; private set; } - public TypeProjects TypeProject { get; private set; } - public IEnumerable ContractOnProject + public decimal ProjectId { get; private set; } + public IEnumerable CustomerId { get; private set; } = []; - public static Contract CreateOpeartion(int id, DateTime date, decimal customerid, TypeProjects typeProject, IEnumerable contractOnProjects) + + public static Contract CreateOpeartion(int id, DateTime date, decimal projectid, IEnumerable customerOnContract) { return new Contract { Id = id, Date = date, - CustomerId = customerid, - TypeProject = typeProject, - ContractOnProject = contractOnProjects + ProjectId = projectid, + CustomerId = customerOnContract }; } } diff --git a/ProjectItCompany/ProjectItCompany/Entities/ContractOnProject.cs b/ProjectItCompany/ProjectItCompany/Entities/ContractOnProject.cs deleted file mode 100644 index 404f40b..0000000 --- a/ProjectItCompany/ProjectItCompany/Entities/ContractOnProject.cs +++ /dev/null @@ -1,24 +0,0 @@ -using ProjectItCompany.Entities.Enums; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectItCompany.Entities; - -public class ContractOnProject -{ - public int ProjectId { get; private set; } - public int ContractId { get; private set; } - public string Description { get; private set; } = string.Empty; - public static ContractOnProject CreateElement(int projectId, int contractId, string description) - { - return new ContractOnProject - { - ProjectId = projectId, - ContractId = contractId, - Description = description - }; - } -} diff --git a/ProjectItCompany/ProjectItCompany/Entities/CustomerOnProject.cs b/ProjectItCompany/ProjectItCompany/Entities/CustomerOnProject.cs new file mode 100644 index 0000000..796a242 --- /dev/null +++ b/ProjectItCompany/ProjectItCompany/Entities/CustomerOnProject.cs @@ -0,0 +1,26 @@ +using ProjectItCompany.Entities.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectItCompany.Entities; + +public class CustomerOnProject +{ + public int Id { get; private set; } + public decimal ContractId { get; private set; } + public decimal CustomerId { get; private set; } + public string Description { get; private set; } = string.Empty; + public static CustomerOnProject CreateElement(int id, decimal contractId, decimal customerid, string description) + { + return new CustomerOnProject + { + Id = id, + ContractId = contractId, + CustomerId = customerid, + Description = description + }; + } +} diff --git a/ProjectItCompany/ProjectItCompany/Entities/Enums/Month.cs b/ProjectItCompany/ProjectItCompany/Entities/Enums/Month.cs new file mode 100644 index 0000000..acd7148 --- /dev/null +++ b/ProjectItCompany/ProjectItCompany/Entities/Enums/Month.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectItCompany.Entities.Enums; + +public enum Month +{ + January = 0, + February = 1, + March = 2, + April = 3, + May = 4, + June = 5, + July = 6, + August = 7, + September = 8, + October = 9, + November = 10, + December = 11 +} diff --git a/ProjectItCompany/ProjectItCompany/Entities/Enums/TypeProjects.cs b/ProjectItCompany/ProjectItCompany/Entities/Enums/TypeProjects.cs deleted file mode 100644 index e330bf3..0000000 --- a/ProjectItCompany/ProjectItCompany/Entities/Enums/TypeProjects.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectItCompany.Entities.Enums; - -public enum TypeProjects -{ - None = 0, - Creation = 1, - Maintenance = 2 -} diff --git a/ProjectItCompany/ProjectItCompany/Entities/Executor.cs b/ProjectItCompany/ProjectItCompany/Entities/Executor.cs index 26577cb..6bcf164 100644 --- a/ProjectItCompany/ProjectItCompany/Entities/Executor.cs +++ b/ProjectItCompany/ProjectItCompany/Entities/Executor.cs @@ -1,4 +1,5 @@ -using System; +using ProjectItCompany.Entities.Enums; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -12,15 +13,17 @@ public class Executor public string FullName { get; private set; } = string.Empty; public DateTime DateOfBirth { get; private set; } public decimal HourlyRate { get; private set; } + public JobTitles JobTitles { get; private set; } - public static Executor CreateEntity(int id, string fullName, DateTime dateOfBirth, decimal hourlyRate) + public static Executor CreateEntity(int id, string fullName, DateTime dateOfBirth, decimal hourlyRate, JobTitles jobTitles) { return new Executor { Id = id, FullName = fullName ?? string.Empty, DateOfBirth = dateOfBirth, - HourlyRate = hourlyRate + HourlyRate = hourlyRate, + JobTitles = jobTitles }; } } diff --git a/ProjectItCompany/ProjectItCompany/Entities/Project.cs b/ProjectItCompany/ProjectItCompany/Entities/Project.cs index 094e2a3..7764703 100644 --- a/ProjectItCompany/ProjectItCompany/Entities/Project.cs +++ b/ProjectItCompany/ProjectItCompany/Entities/Project.cs @@ -11,15 +11,16 @@ public class Project { public int Id { get; private set; } public string NameProject { get; private set; } = string.Empty; + public decimal CustomerId { get; private set; } public CompletedStages CompletedStages { get; private set; } - - public static Project CreateEntity(int id, string nameProject, CompletedStages completedStages) + public static Project CreateEntity(int id, string nameProject, decimal customerid, CompletedStages completedStages) { return new Project { Id = id, NameProject = nameProject ?? string.Empty, + CustomerId = customerid, CompletedStages = completedStages }; } diff --git a/ProjectItCompany/ProjectItCompany/Entities/Wage.cs b/ProjectItCompany/ProjectItCompany/Entities/Wage.cs index 442ea9d..9dddfbc 100644 --- a/ProjectItCompany/ProjectItCompany/Entities/Wage.cs +++ b/ProjectItCompany/ProjectItCompany/Entities/Wage.cs @@ -1,4 +1,5 @@ -using System; +using ProjectItCompany.Entities.Enums; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -9,16 +10,16 @@ namespace ProjectItCompany.Entities; public class Wage { public int Id { get; private set; } - public string Month { get; private set; } = string.Empty; + public Month Month { get; private set; } public int Year { get; private set; } public int NumberOfHours { get; private set; } public int ExecutorID { get; private set; } - public static Wage CreateOpeartion(int id, string month, int year, int numberOfHours, int executorId) + public static Wage CreateOpeartion(int id, Month month, int year, int numberOfHours, int executorId) { return new Wage { Id = id, - Month = month ?? string.Empty, + Month = month, Year = year, NumberOfHours = numberOfHours, ExecutorID = executorId diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.Designer.cs b/ProjectItCompany/ProjectItCompany/Forms/FormContract.Designer.cs similarity index 62% rename from ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.Designer.cs rename to ProjectItCompany/ProjectItCompany/Forms/FormContract.Designer.cs index a6847ab..2911c5f 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.Designer.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormContract.Designer.cs @@ -1,6 +1,6 @@ namespace ProjectItCompany.Forms { - partial class FormContractOnProject + partial class FormContract { /// /// Required designer variable. @@ -28,30 +28,19 @@ /// private void InitializeComponent() { - labelCustomer = new Label(); ButtonSave = new Button(); ButtonCancel = new Button(); - groupBox1 = new GroupBox(); + groupBoxContract = new GroupBox(); dataGridViewContract = new DataGridView(); - comboBoxCustomer = new ComboBox(); ColumnProject = new DataGridViewComboBoxColumn(); - ColumnContract = new DataGridViewComboBoxColumn(); - groupBox1.SuspendLayout(); + ColumnCustomer = new DataGridViewComboBoxColumn(); + groupBoxContract.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)dataGridViewContract).BeginInit(); SuspendLayout(); // - // labelCustomer - // - labelCustomer.AutoSize = true; - labelCustomer.Location = new Point(15, 16); - labelCustomer.Name = "labelCustomer"; - labelCustomer.Size = new Size(57, 15); - labelCustomer.TabIndex = 2; - labelCustomer.Text = "Заказчик"; - // // ButtonSave // - ButtonSave.Location = new Point(39, 265); + ButtonSave.Location = new Point(68, 254); ButtonSave.Name = "ButtonSave"; ButtonSave.Size = new Size(75, 23); ButtonSave.TabIndex = 11; @@ -61,7 +50,7 @@ // // ButtonCancel // - ButtonCancel.Location = new Point(161, 265); + ButtonCancel.Location = new Point(245, 255); ButtonCancel.Name = "ButtonCancel"; ButtonCancel.Size = new Size(75, 23); ButtonCancel.TabIndex = 12; @@ -69,16 +58,15 @@ ButtonCancel.UseVisualStyleBackColor = true; ButtonCancel.Click += ButtonCancel_Click; // - // groupBox1 + // groupBoxContract // - groupBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; - groupBox1.Controls.Add(dataGridViewContract); - groupBox1.Location = new Point(12, 37); - groupBox1.Name = "groupBox1"; - groupBox1.Size = new Size(267, 222); - groupBox1.TabIndex = 13; - groupBox1.TabStop = false; - groupBox1.Text = "Договоры"; + groupBoxContract.Controls.Add(dataGridViewContract); + groupBoxContract.Location = new Point(12, 12); + groupBoxContract.Name = "groupBoxContract"; + groupBoxContract.Size = new Size(375, 237); + groupBoxContract.TabIndex = 13; + groupBoxContract.TabStop = false; + groupBoxContract.Text = "Договоры"; // // dataGridViewContract // @@ -86,66 +74,53 @@ dataGridViewContract.AllowUserToResizeRows = false; dataGridViewContract.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; dataGridViewContract.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dataGridViewContract.Columns.AddRange(new DataGridViewColumn[] { ColumnProject, ColumnContract }); - dataGridViewContract.Dock = DockStyle.Fill; + dataGridViewContract.Columns.AddRange(new DataGridViewColumn[] { ColumnProject, ColumnCustomer }); + dataGridViewContract.Dock = DockStyle.Right; dataGridViewContract.Location = new Point(3, 19); dataGridViewContract.MultiSelect = false; dataGridViewContract.Name = "dataGridViewContract"; dataGridViewContract.RowHeadersVisible = false; dataGridViewContract.RowTemplate.Height = 25; dataGridViewContract.SelectionMode = DataGridViewSelectionMode.FullRowSelect; - dataGridViewContract.Size = new Size(261, 200); + dataGridViewContract.Size = new Size(369, 215); dataGridViewContract.TabIndex = 0; // - // comboBoxCustomer - // - comboBoxCustomer.FormattingEnabled = true; - comboBoxCustomer.Location = new Point(78, 8); - comboBoxCustomer.Name = "comboBoxCustomer"; - comboBoxCustomer.Size = new Size(194, 23); - comboBoxCustomer.TabIndex = 14; - // // ColumnProject // ColumnProject.HeaderText = "Проект"; ColumnProject.Name = "ColumnProject"; // - // ColumnContract + // ColumnCustomer // - ColumnContract.HeaderText = "Контракт"; - ColumnContract.Name = "ColumnContract"; + ColumnCustomer.HeaderText = "Заказчик"; + ColumnCustomer.Name = "ColumnCustomer"; // - // FormContractOnProject + // FormContract // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(291, 300); - Controls.Add(comboBoxCustomer); - Controls.Add(groupBox1); + ClientSize = new Size(399, 286); + Controls.Add(groupBoxContract); Controls.Add(ButtonCancel); Controls.Add(ButtonSave); - Controls.Add(labelCustomer); - Name = "FormContractOnProject"; + Name = "FormContract"; StartPosition = FormStartPosition.CenterParent; Text = "Заключение договора"; - groupBox1.ResumeLayout(false); + groupBoxContract.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)dataGridViewContract).EndInit(); ResumeLayout(false); - PerformLayout(); } #endregion private Label labelDate; - private Label labelCustomer; private DateTimePicker dateTimePickerDate; private ComboBox comboBoxTypeProject; private Button ButtonSave; private Button ButtonCancel; - private GroupBox groupBox1; + private GroupBox groupBoxContract; private DataGridView dataGridViewContract; - private ComboBox comboBoxCustomer; private DataGridViewComboBoxColumn ColumnProject; - private DataGridViewComboBoxColumn ColumnContract; + private DataGridViewComboBoxColumn ColumnCustomer; } } \ No newline at end of file diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.cs b/ProjectItCompany/ProjectItCompany/Forms/FormContract.cs similarity index 70% rename from ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.cs rename to ProjectItCompany/ProjectItCompany/Forms/FormContract.cs index 43eb5b5..46b7e08 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormContract.cs @@ -1,4 +1,5 @@ using ProjectItCompany.Entities; +using ProjectItCompany.Entities.Enums; using ProjectItCompany.Repositories; using ProjectItCompany.Repositories.Implementations; using System; @@ -13,35 +14,34 @@ using System.Windows.Forms; namespace ProjectItCompany.Forms { - public partial class FormContractOnProject : Form + public partial class FormContract : Form { private readonly IContractRepository _contractRepository; - public FormContractOnProject(IContractRepository contractRepository, + public FormContract(IContractRepository contractRepository, IProjectRepository projectRepository, ICustomerRepository customerRepository) { InitializeComponent(); _contractRepository = contractRepository ?? throw new ArgumentNullException(nameof(contractRepository)); - comboBoxCustomer.DataSource = customerRepository.ReadCustomers(); - ColumnProject.DataSource = projectRepository.ReadProjects(); ColumnProject.DisplayMember = "NameProject"; ColumnProject.ValueMember = "Id"; - ColumnContract.DataSource = contractRepository.ReadContract(); - ColumnContract.ValueMember = "Id"; + ColumnCustomer.DataSource = customerRepository.ReadCustomers(); + ColumnCustomer.DisplayMember = "NameCustomer"; + ColumnCustomer.ValueMember = "Id"; } private void ButtonSave_Click(object sender, EventArgs e) { try { - if (comboBoxCustomer.SelectedIndex < 0 || dataGridViewContract.RowCount < 1) + if (dataGridViewContract.RowCount < 1) { throw new Exception("Имеются незаполненные поля"); } - _contractRepository.CreateContract(Contract.CreateOpeartion(0, DateTime.Today, 0, Entities.Enums.TypeProjects.Maintenance, CreateListExecutorOnProject())); + _contractRepository.CreateContract(Contract.CreateOpeartion(0, DateTime.Now, 0, CreateListExecutorOnProject())); Close(); } catch (Exception ex) @@ -53,9 +53,9 @@ namespace ProjectItCompany.Forms private void ButtonCancel_Click(object sender, EventArgs e) => Close(); - private List CreateListExecutorOnProject() + private List CreateListExecutorOnProject() { - var list = new List(); + var list = new List(); foreach (DataGridViewRow row in dataGridViewContract.Rows) { if (row.Cells["ColumnProject"].Value == null || @@ -63,9 +63,8 @@ namespace ProjectItCompany.Forms { continue; } - list.Add(ContractOnProject.CreateElement( - Convert.ToInt32(row.Cells["ColumnProject"].Value), - Convert.ToInt32(row.Cells["ColumnContract"].Value), string.Empty)); + list.Add(Entities.CustomerOnProject.CreateElement(0, + Convert.ToInt32(row.Cells["ColumnProject"].Value), Convert.ToInt32(row.Cells["ColumnCustomer"].Value), string.Empty)); } return list; } diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.resx b/ProjectItCompany/ProjectItCompany/Forms/FormContract.resx similarity index 100% rename from ProjectItCompany/ProjectItCompany/Forms/FormContractOnProject.resx rename to ProjectItCompany/ProjectItCompany/Forms/FormContract.resx diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormContracts.cs b/ProjectItCompany/ProjectItCompany/Forms/FormContracts.cs index 94baa8e..651340f 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormContracts.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormContracts.cs @@ -27,13 +27,12 @@ namespace ProjectItCompany.Forms { try { - _container.Resolve().ShowDialog(); + _container.Resolve().ShowDialog(); LoadList(); } catch (Exception ex) { - MessageBox.Show(ex.Message, "Ошибка при добавлении", - MessageBoxButtons.OK, MessageBoxIcon.Error); + MessageBox.Show(ex.Message, "Ошибка при добавлении", MessageBoxButtons.OK, MessageBoxIcon.Error); } } diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.Designer.cs b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.Designer.cs index a08c350..ae56a27 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.Designer.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.Designer.cs @@ -36,6 +36,8 @@ numericUpDownHourlyRate = new NumericUpDown(); ButtonSave = new Button(); ButtonCancel = new Button(); + labelJobTitle = new Label(); + comboBoxJobTitle = new ComboBox(); ((System.ComponentModel.ISupportInitialize)numericUpDownHourlyRate).BeginInit(); SuspendLayout(); // @@ -89,7 +91,7 @@ // // ButtonSave // - ButtonSave.Location = new Point(68, 128); + ButtonSave.Location = new Point(68, 160); ButtonSave.Name = "ButtonSave"; ButtonSave.Size = new Size(75, 23); ButtonSave.TabIndex = 6; @@ -99,7 +101,7 @@ // // ButtonCancel // - ButtonCancel.Location = new Point(165, 128); + ButtonCancel.Location = new Point(165, 160); ButtonCancel.Name = "ButtonCancel"; ButtonCancel.Size = new Size(75, 23); ButtonCancel.TabIndex = 7; @@ -107,11 +109,30 @@ ButtonCancel.UseVisualStyleBackColor = true; ButtonCancel.Click += ButtonCancel_Click; // + // labelJobTitle + // + labelJobTitle.AutoSize = true; + labelJobTitle.Location = new Point(21, 120); + labelJobTitle.Name = "labelJobTitle"; + labelJobTitle.Size = new Size(69, 15); + labelJobTitle.TabIndex = 8; + labelJobTitle.Text = "Должность"; + // + // comboBoxJobTitle + // + comboBoxJobTitle.FormattingEnabled = true; + comboBoxJobTitle.Location = new Point(136, 116); + comboBoxJobTitle.Name = "comboBoxJobTitle"; + comboBoxJobTitle.Size = new Size(151, 23); + comboBoxJobTitle.TabIndex = 9; + // // FormExecutor // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(319, 173); + ClientSize = new Size(319, 217); + Controls.Add(comboBoxJobTitle); + Controls.Add(labelJobTitle); Controls.Add(ButtonCancel); Controls.Add(ButtonSave); Controls.Add(numericUpDownHourlyRate); @@ -138,5 +159,7 @@ private NumericUpDown numericUpDownHourlyRate; private Button ButtonSave; private Button ButtonCancel; + private Label labelJobTitle; + private ComboBox comboBoxJobTitle; } } \ No newline at end of file diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs index 0ad0561..4a51e39 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormExecutor.cs @@ -1,4 +1,5 @@ using ProjectItCompany.Entities; +using ProjectItCompany.Entities.Enums; using ProjectItCompany.Repositories; using ProjectItCompany.Repositories.Implementations; using System; @@ -32,6 +33,7 @@ namespace ProjectItCompany.Forms textBoxFullName.Text = executor.FullName; dateTimePickerDateOfBirth.Value = executor.DateOfBirth; numericUpDownHourlyRate.Value = executor.HourlyRate; + comboBoxJobTitle.SelectedItem = executor.JobTitles; _executorId = value; } catch (Exception ex) @@ -45,6 +47,9 @@ namespace ProjectItCompany.Forms { InitializeComponent(); _executorRepository = executorRepository ?? throw new ArgumentNullException(nameof(executorRepository)); + + comboBoxJobTitle.DataSource = Enum.GetValues(typeof(JobTitles)); + } private void ButtonSave_Click(object sender, EventArgs e) @@ -75,6 +80,6 @@ namespace ProjectItCompany.Forms private void ButtonCancel_Click(object sender, EventArgs e) => Close(); - private Executor CreateExecutor(int id) => Executor.CreateEntity(id, textBoxFullName.Text, dateTimePickerDateOfBirth.Value, numericUpDownHourlyRate.Value); + private Executor CreateExecutor(int id) => Executor.CreateEntity(id, textBoxFullName.Text, dateTimePickerDateOfBirth.Value, numericUpDownHourlyRate.Value, Entities.Enums.JobTitles.Analyst); } } diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormExecutors.cs b/ProjectItCompany/ProjectItCompany/Forms/FormExecutors.cs index 7052612..38d247f 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormExecutors.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormExecutors.cs @@ -62,7 +62,7 @@ namespace ProjectItCompany.Forms } try { - var form = _container.Resolve(); + var form = _container.Resolve(); form.Id = findId; form.ShowDialog(); LoadList(); diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormProject.Designer.cs b/ProjectItCompany/ProjectItCompany/Forms/FormProject.Designer.cs index b613519..26fb368 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormProject.Designer.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormProject.Designer.cs @@ -34,6 +34,8 @@ ButtonSave = new Button(); ButtonCancel = new Button(); checkedListBoxCompletedStage = new CheckedListBox(); + labelCustomer = new Label(); + comboBoxCustomer = new ComboBox(); SuspendLayout(); // // labelNameProject @@ -48,7 +50,7 @@ // labelCompletedStages // labelCompletedStages.AutoSize = true; - labelCompletedStages.Location = new Point(12, 39); + labelCompletedStages.Location = new Point(12, 72); labelCompletedStages.Name = "labelCompletedStages"; labelCompletedStages.Size = new Size(121, 15); labelCompletedStages.TabIndex = 2; @@ -63,7 +65,7 @@ // // ButtonSave // - ButtonSave.Location = new Point(53, 126); + ButtonSave.Location = new Point(43, 185); ButtonSave.Name = "ButtonSave"; ButtonSave.Size = new Size(75, 23); ButtonSave.TabIndex = 10; @@ -73,7 +75,7 @@ // // ButtonCancel // - ButtonCancel.Location = new Point(164, 124); + ButtonCancel.Location = new Point(154, 184); ButtonCancel.Name = "ButtonCancel"; ButtonCancel.Size = new Size(75, 23); ButtonCancel.TabIndex = 11; @@ -84,16 +86,35 @@ // checkedListBoxCompletedStage // checkedListBoxCompletedStage.FormattingEnabled = true; - checkedListBoxCompletedStage.Location = new Point(154, 35); + checkedListBoxCompletedStage.Location = new Point(154, 74); checkedListBoxCompletedStage.Name = "checkedListBoxCompletedStage"; - checkedListBoxCompletedStage.Size = new Size(150, 76); + checkedListBoxCompletedStage.Size = new Size(150, 94); checkedListBoxCompletedStage.TabIndex = 12; // + // labelCustomer + // + labelCustomer.AutoSize = true; + labelCustomer.Location = new Point(12, 40); + labelCustomer.Name = "labelCustomer"; + labelCustomer.Size = new Size(57, 15); + labelCustomer.TabIndex = 13; + labelCustomer.Text = "Заказчик"; + // + // comboBoxCustomer + // + comboBoxCustomer.FormattingEnabled = true; + comboBoxCustomer.Location = new Point(154, 39); + comboBoxCustomer.Name = "comboBoxCustomer"; + comboBoxCustomer.Size = new Size(150, 23); + comboBoxCustomer.TabIndex = 14; + // // FormProject // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(315, 157); + ClientSize = new Size(315, 217); + Controls.Add(comboBoxCustomer); + Controls.Add(labelCustomer); Controls.Add(checkedListBoxCompletedStage); Controls.Add(ButtonCancel); Controls.Add(ButtonSave); @@ -115,5 +136,7 @@ private Button ButtonSave; private Button ButtonCancel; private CheckedListBox checkedListBoxCompletedStage; + private Label labelCustomer; + private ComboBox comboBoxCustomer; } } \ No newline at end of file diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs b/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs index a0298e4..784319c 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormProject.cs @@ -39,7 +39,6 @@ namespace ProjectItCompany.Forms } } - textBoxNameProject.Text = project.NameProject; _projectId = value; } @@ -88,6 +87,6 @@ namespace ProjectItCompany.Forms private void ButtonCancel_Click(object sender, EventArgs e) => Close(); - private Project CreateProject(int id) => Project.CreateEntity(id, textBoxNameProject.Text, (CompletedStages)checkedListBoxCompletedStage.SelectedItem!); + private Project CreateProject(int id) => Project.CreateEntity(id, textBoxNameProject.Text, (int)comboBoxCustomer.SelectedValue, (CompletedStages)checkedListBoxCompletedStage.SelectedItem!); } } diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs b/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs index 0c59e4d..9438f85 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormWage.Designer.cs @@ -32,12 +32,12 @@ labelYear = new Label(); labelNumberOfHours = new Label(); labelExecutor = new Label(); - textBoxMonth = new TextBox(); numericUpDownYear = new NumericUpDown(); numericUpDownNumberOfHours = new NumericUpDown(); ButtonSave = new Button(); ButtonCancel = new Button(); comboBoxExecutor = new ComboBox(); + comboBoxMonth = new ComboBox(); ((System.ComponentModel.ISupportInitialize)numericUpDownYear).BeginInit(); ((System.ComponentModel.ISupportInitialize)numericUpDownNumberOfHours).BeginInit(); SuspendLayout(); @@ -78,13 +78,6 @@ labelExecutor.TabIndex = 3; labelExecutor.Text = "Исполнитель"; // - // textBoxMonth - // - textBoxMonth.Location = new Point(130, 5); - textBoxMonth.Name = "textBoxMonth"; - textBoxMonth.Size = new Size(120, 23); - textBoxMonth.TabIndex = 4; - // // numericUpDownYear // numericUpDownYear.Location = new Point(130, 32); @@ -127,17 +120,25 @@ comboBoxExecutor.Size = new Size(121, 23); comboBoxExecutor.TabIndex = 10; // + // comboBoxMonth + // + comboBoxMonth.FormattingEnabled = true; + comboBoxMonth.Location = new Point(129, 4); + comboBoxMonth.Name = "comboBoxMonth"; + comboBoxMonth.Size = new Size(121, 23); + comboBoxMonth.TabIndex = 11; + // // FormWage // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(267, 161); + Controls.Add(comboBoxMonth); Controls.Add(comboBoxExecutor); Controls.Add(ButtonCancel); Controls.Add(ButtonSave); Controls.Add(numericUpDownNumberOfHours); Controls.Add(numericUpDownYear); - Controls.Add(textBoxMonth); Controls.Add(labelExecutor); Controls.Add(labelNumberOfHours); Controls.Add(labelYear); @@ -157,11 +158,11 @@ private Label labelYear; private Label labelNumberOfHours; private Label labelExecutor; - private TextBox textBoxMonth; private NumericUpDown numericUpDownYear; private NumericUpDown numericUpDownNumberOfHours; private Button ButtonSave; private Button ButtonCancel; private ComboBox comboBoxExecutor; + private ComboBox comboBoxMonth; } } \ No newline at end of file diff --git a/ProjectItCompany/ProjectItCompany/Forms/FormWage.cs b/ProjectItCompany/ProjectItCompany/Forms/FormWage.cs index 8b72451..30f833a 100644 --- a/ProjectItCompany/ProjectItCompany/Forms/FormWage.cs +++ b/ProjectItCompany/ProjectItCompany/Forms/FormWage.cs @@ -1,10 +1,12 @@ using ProjectItCompany.Entities; +using ProjectItCompany.Entities.Enums; using ProjectItCompany.Repositories; using ProjectItCompany.Repositories.Implementations; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; +using System.Diagnostics.Tracing; using System.Drawing; using System.Linq; using System.Text; @@ -17,12 +19,16 @@ namespace ProjectItCompany.Forms { private readonly IWageRepository _wageRepository; - - public FormWage(IWageRepository wageRepository) + public FormWage(IWageRepository wageRepository, IExecutorRepository executorRepository) { InitializeComponent(); _wageRepository = wageRepository ?? throw new ArgumentNullException(nameof(wageRepository)); + comboBoxExecutor.DataSource = executorRepository.ReadExecutors(); + comboBoxExecutor.DisplayMember = "FullName"; + comboBoxExecutor.ValueMember = "Id"; + + comboBoxMonth.DataSource = Enum.GetValues(typeof(Month)); } private void ButtonSave_Click(object sender, EventArgs e) @@ -33,7 +39,7 @@ namespace ProjectItCompany.Forms { throw new Exception("Имеются незаполненные поля"); } - _wageRepository.CreateWage(Wage.CreateOpeartion(0, string.Empty, 2022, 180, 1)); + _wageRepository.CreateWage(Wage.CreateOpeartion(0, (Month)comboBoxMonth.SelectedValue!, Convert.ToInt32(numericUpDownYear.Value), Convert.ToInt32(numericUpDownNumberOfHours.Value), (int)comboBoxExecutor.SelectedValue)); Close(); } catch (Exception ex) diff --git a/ProjectItCompany/ProjectItCompany/Repositories/IContractRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/IContractRepository.cs index 5928a8a..9cbc3af 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/IContractRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/IContractRepository.cs @@ -11,4 +11,6 @@ public interface IContractRepository { IEnumerable ReadContract(DateTime? dateForm = null, DateTime? dateTo = null, decimal? typeProject = null, int? customerId = null); void CreateContract(Contract contract); + void DeleteContract(int id); + } diff --git a/ProjectItCompany/ProjectItCompany/Repositories/IWageRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/IWageRepository.cs index a175d3f..ef9c101 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/IWageRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/IWageRepository.cs @@ -9,6 +9,7 @@ namespace ProjectItCompany.Repositories; public interface IWageRepository { - IEnumerable ReadWage(int? yearForm = null, int? yearTo = null, int? numberOfHoursFrom = null, int? numberOfHoursTo = null, int? executorId = null); + IEnumerable ReadWage(int? yearForm = null, int? yearTo = null, + int? numberOfHoursFrom = null, int? numberOfHoursTo = null, int? executorId = null); void CreateWage(Wage wages); } diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs index fa3a49a..85f0f64 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ContractRepository.cs @@ -14,6 +14,11 @@ internal class ContractRepository : IContractRepository } + public void DeleteContract(int id) + { + + } + public IEnumerable ReadContract(DateTime? dateForm = null, DateTime? dateTo = null, decimal? typeProject = null, int? customerId = null) { return []; diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs index c6636f5..5c788a6 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ExecutorRepository.cs @@ -21,7 +21,7 @@ internal class ExecutorRepository : IExecutorRepository public Executor ReadExecutorById(int id) { - return Executor.CreateEntity(0, string.Empty, DateTime.Today, 1000); + return Executor.CreateEntity(0, string.Empty, DateTime.Today, 1000, Entities.Enums.JobTitles.Developer); } public IEnumerable ReadExecutors() diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs index 0dd4bd5..f14c481 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/ProjectRepository.cs @@ -21,7 +21,7 @@ internal class ProjectRepository : IProjectRepository public Project ReadProjectById(int id) { - return Project.CreateEntity(1, string.Empty, Entities.Enums.CompletedStages.Planning); + return Project.CreateEntity(1, string.Empty, 0, Entities.Enums.CompletedStages.Planning); } public IEnumerable ReadProjects() diff --git a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs index c48334b..c3576d2 100644 --- a/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs +++ b/ProjectItCompany/ProjectItCompany/Repositories/Implementations/WageRepository.cs @@ -11,11 +11,11 @@ internal class WageRepository : IWageRepository { public void CreateWage(Wage wages) { - + } public IEnumerable ReadWage(int? yearForm = null, int? yearTo = null, int? numberOfHoursFrom = null, int? numberOfHoursTo = null, int? executorId = null) { return []; } -} +} \ No newline at end of file