|
@@ -25,80 +25,117 @@ namespace esoft.Pages
|
|
|
public partial class EditPriceCoefficient : Page
|
|
|
{
|
|
|
ActualContext actualContext = new ActualContext();
|
|
|
+ List<CoefficientFill> coefficientContext = new List<CoefficientFill>();
|
|
|
+ private CoefficientFill selectedCoefficient;
|
|
|
+ private ExecuterFill selectedExecuter;
|
|
|
+ private bool isEditing = false;
|
|
|
|
|
|
- public EditPriceCoefficient()
|
|
|
+ public EditPriceCoefficient(ExecuterFill executer)
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
+ selectedExecuter = executer;
|
|
|
+ if (selectedExecuter.ManagerID != 0) // Используйте 0, если ID имеет тип int
|
|
|
+ {
|
|
|
+ isEditing = true;
|
|
|
+ }
|
|
|
FillForm();
|
|
|
}
|
|
|
|
|
|
private void FillForm()
|
|
|
{
|
|
|
- List<User> usersManager = actualContext.Users.Where(user => actualContext.Manager.Any(manager => manager.ID == user.ID)).ToList(); // Получение списка менеджеров
|
|
|
- cbManager.ItemsSource = UserInFIO.GroupUser(usersManager);
|
|
|
- }
|
|
|
+ selectedCoefficient = CoefficientFill.CoefficientFills(selectedExecuter.ManagerID);
|
|
|
|
|
|
- private void BtnSaveSalaryCoeff_Click(object sender, RoutedEventArgs e)
|
|
|
- {
|
|
|
- try
|
|
|
+ if (isEditing && selectedCoefficient != null)
|
|
|
{
|
|
|
- // Получаем значения из элементов интерфейса
|
|
|
- int managerId = (int)(cbManager.SelectedItem as ComboBoxItem)?.Tag;
|
|
|
- int juniorMin = (int)IUDJuniorMin.Value;
|
|
|
- int middleMin = (int)IUDMiddleMin.Value;
|
|
|
- int seniorMin = (int)IUDSeniorMin.Value;
|
|
|
- double analysisCoeff = (double)IUDAnalysisCoefficient.Value;
|
|
|
- double installationCoeff = (double)IUDInstallationCoefficient.Value;
|
|
|
- double supportCoeff = (double)IUDSupportCoefficient.Value;
|
|
|
- double timeCoeff = (double)IUDTimeCoefficient.Value;
|
|
|
- double difficultyCoeff = (double)IUDDifficultyCoefficient.Value;
|
|
|
- double toMoneyCoeff = (double)IUDToMoneyCoefficient.Value;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ // Получаем всех пользователей, которых связывает ID
|
|
|
+ var usersManager = actualContext.Users.Where(user => actualContext.Manager
|
|
|
+ .Any(manager => selectedCoefficient.ID == user.ID)).ToList();
|
|
|
+ cbManager.ItemsSource = UserInFIO.GroupUser(usersManager);
|
|
|
+ cbManager.SelectedItem = UserInFIO.SoloUser(usersManager
|
|
|
+ .FirstOrDefault(u => u.ID == selectedCoefficient.ID));
|
|
|
|
|
|
- // Обновляем коэффициенты менеджера
|
|
|
- UpdateManagerCoefficients(managerId, juniorMin, middleMin, seniorMin, analysisCoeff, installationCoeff, supportCoeff, timeCoeff, difficultyCoeff, toMoneyCoeff);
|
|
|
- MessageBox.Show("Коэффициенты сохранены успешно!");
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
- {
|
|
|
- MessageBox.Show($"Ошибка при сохранении коэффициентов: {ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
|
+
|
|
|
+ // Заполняем остальные поля формы
|
|
|
+ IUDJuniorMin.Value = selectedCoefficient.JuniorMinimum;
|
|
|
+ IUDMiddleMin.Value = selectedCoefficient.MiddleMinimum;
|
|
|
+ IUDSeniorMin.Value = selectedCoefficient.SeniorMinimum;
|
|
|
+ TBoxAnalysisCoefficient.Text = selectedCoefficient.AnalysisCoefficient.ToString();
|
|
|
+ TBoxInstallationCoefficient.Text = selectedCoefficient.InstallationCoefficient.ToString();
|
|
|
+ TBoxSupportCoefficient.Text = selectedCoefficient.SupportCoefficient.ToString();
|
|
|
+ TBoxTimeCoefficient.Text = selectedCoefficient.TimeCoefficient.ToString();
|
|
|
+ TBoxDifficultyCoefficient.Text = selectedCoefficient.DifficultyCoefficient.ToString();
|
|
|
+ TBoxToMoneyCoefficient.Text = selectedCoefficient.ToMoneyCoefficient.ToString();
|
|
|
+
|
|
|
+ if (selectedExecuter.Grade == "junior")
|
|
|
+ {
|
|
|
+ TBlockTotalSalary.Text = selectedCoefficient.JuniorMinimum.ToString();
|
|
|
+ }
|
|
|
+ else if (selectedExecuter.Grade == "middle")
|
|
|
+ {
|
|
|
+ TBlockTotalSalary.Text = selectedCoefficient.MiddleMinimum.ToString();
|
|
|
+ }
|
|
|
+ else if (selectedExecuter.Grade == "senior")
|
|
|
+ {
|
|
|
+ TBlockTotalSalary.Text = selectedCoefficient.SeniorMinimum.ToString();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ MessageBox.Show($"Ошибка при заполнении формы: {ex.Message}",
|
|
|
+ "Ошибка",
|
|
|
+ MessageBoxButton.OK,
|
|
|
+ MessageBoxImage.Error);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void UpdateManagerCoefficients(int managerId, int juniorMin, int middleMin, int seniorMin, double analysisCoeff, double installationCoeff, double supportCoeff, double timeCoeff, double difficultyCoeff, double toMoneyCoeff)
|
|
|
+ private void BtnSaveSalaryCoeff_Click(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- // Получаем контекст базы данных и находим менеджера по ID
|
|
|
+ // Создаем экземпляр контекста данных
|
|
|
+ ActualContext actualContext = new ActualContext();
|
|
|
var context = esoftEntities.GetContext();
|
|
|
- {
|
|
|
- Manager targetManager = context.Manager.FirstOrDefault(m => m.ID == managerId);
|
|
|
|
|
|
- if (targetManager != null)
|
|
|
- {
|
|
|
- // Обновляем значения коэффициентов менеджера
|
|
|
- targetManager.JuniorMinimum = juniorMin;
|
|
|
- targetManager.MiddleMinimum = middleMin;
|
|
|
- targetManager.SeniorMinimum = seniorMin;
|
|
|
- targetManager.AnalysisCoefficient = analysisCoeff;
|
|
|
- targetManager.InstallationCoefficient = installationCoeff;
|
|
|
- targetManager.SupportCoefficient = supportCoeff;
|
|
|
- targetManager.TimeCoefficient = timeCoeff;
|
|
|
- targetManager.DifficultyCoefficient = difficultyCoeff;
|
|
|
- targetManager.ToMoneyCoefficient = toMoneyCoeff;
|
|
|
+ // Получаем значения из элементов управления
|
|
|
+ int juniorMinimum = (int)IUDJuniorMin.Value;
|
|
|
+ int middleMinimum = (int)IUDMiddleMin.Value;
|
|
|
+ int seniorMinimum = (int)IUDSeniorMin.Value;
|
|
|
+ double analysisCoefficient = double.Parse(TBoxAnalysisCoefficient.Text);
|
|
|
+ double installationCoefficient = double.Parse(TBoxInstallationCoefficient.Text);
|
|
|
+ double supportCoefficient = double.Parse(TBoxSupportCoefficient.Text);
|
|
|
+ double timeCoefficient = double.Parse(TBoxTimeCoefficient.Text);
|
|
|
+ double difficultyCoefficient = double.Parse(TBoxDifficultyCoefficient.Text);
|
|
|
+ double toMoneyCoefficient = double.Parse(TBoxToMoneyCoefficient.Text);
|
|
|
|
|
|
- // Сохраняем изменения в базе данных
|
|
|
- context.SaveChanges();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- MessageBox.Show("Менеджер не найден!", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
|
- }
|
|
|
+ var existingCoefficient = context.Manager.FirstOrDefault(t => t.ID == selectedCoefficient.ID);
|
|
|
+
|
|
|
+ // Присваиваем свойствам объекта значения из элементов управления
|
|
|
+ existingCoefficient.JuniorMinimum = juniorMinimum;
|
|
|
+ existingCoefficient.MiddleMinimum = middleMinimum;
|
|
|
+ existingCoefficient.SeniorMinimum = seniorMinimum;
|
|
|
+ existingCoefficient.AnalysisCoefficient = analysisCoefficient;
|
|
|
+ existingCoefficient.InstallationCoefficient = installationCoefficient;
|
|
|
+ existingCoefficient.SupportCoefficient = supportCoefficient;
|
|
|
+ existingCoefficient.TimeCoefficient = timeCoefficient;
|
|
|
+ existingCoefficient.DifficultyCoefficient = difficultyCoefficient;
|
|
|
+ existingCoefficient.ToMoneyCoefficient = toMoneyCoefficient;
|
|
|
+
|
|
|
+ context.SaveChanges();
|
|
|
+
|
|
|
+ MessageBoxResult result = MessageBox.Show("Коэффициенты успешно изменены!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
|
|
|
+ if (result == MessageBoxResult.OK)
|
|
|
+ {
|
|
|
+ NavigationService.GoBack();
|
|
|
}
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|
|
|
- MessageBox.Show($"Ошибка обновления коэффициентов: {ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
|
+ MessageBox.Show($"Ошибка при сохранении данных: {ex.Message}", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
-}
|
|
|
+}
|