/// <summary> /// Конструктор формы распределения персонала, задействованного в простое сервиса /// </summary> /// <param name="selectedServiceIdle">Выбранный экземпляр простоя</param> public StaffDistributonForm(ServiceIdle selectedServiceIdle) { SelectedServiceIdle = selectedServiceIdle; InitializeComponent(); btn_OK.Image = new Bitmap(Resources.camera_test, new Size(20, 20)); btn_Cancel.Image = new Bitmap(Resources.no, new Size(20, 20)); _ctx = new Context(); BindCollections(); }
/// <summary> /// Конструктор формы расчета стоимости простоя сервиса /// </summary> /// <param name="selectedServiceIdle">Выбранный экземпляр простоя</param> public EditIdleItemForm(ServiceIdle selectedServiceIdle) { _serviceIdle = selectedServiceIdle; InitializeComponent(); _ctx = new Context(); btn_OK.Image = new Bitmap(Resources.camera_test, new Size(20, 20)); btn_Cancel.Image = new Bitmap(Resources.no, new Size(20, 20)); InitBindings(selectedServiceIdle); comboBox_DurationType.SelectedIndex = 0; }
/// <summary> /// Обработчик события нажатия клавиши мыши на элемент главного меню, /// который открывает диалоговое окно формы распределения задействованного персонала /// </summary> private void распределениеПерсоналаToolStripMenuItem_Click(object sender, EventArgs e) { var staffDistributonForm = new StaffDistributonForm(_serviceIdle); if (staffDistributonForm.ShowDialog() == DialogResult.OK) { DialogResult = DialogResult.OK; _serviceIdle = staffDistributonForm.SelectedServiceIdle; // количество администраторов, задействованных для этого _usedAdminsCount = _serviceIdle.User.Count; CalcIdleCost(); } }
/// <summary> /// Инициализация привязок /// </summary> private void InitBindings(ServiceIdle serviceIdle) { serviceIdleBindingSource.DataSource = serviceIdle; serviceIdleBindingSource.ResumeBinding(); // длительность простоя _duration = (serviceIdle.EndPeriod - serviceIdle.BeginPeriod).TotalMinutes; // количество пользователей, отключенных при этом _disabledUsersCount = serviceIdle.Service.User.Count; // количество администраторов, задействованных для этого _usedAdminsCount = serviceIdle.User.Count; // Годовой доход компанни CostIdleParams idleParams = null; try { // Попытка загрузки из файла idleParams = CostIdleParams.Load(); // При отсутсвтсвии файла данные берутся из БД if (idleParams == null) { idleParams = _ctx.GetIdleParamsFormDatabase(); } } catch { // в случае ошибки данные берутся из БД idleParams = _ctx.GetIdleParamsFormDatabase(); } finally { costIdleParamsBindingSource.DataSource = idleParams; costIdleParamsBindingSource.ResumeBinding(); } CalcIdleCost(); }
/// <summary> /// Обработчик события нажатия клавиши мыши на элемент главного меню, /// который открывает диалоговое окно формы редактирования выбранного простоя /// </summary> private void редактированиеВыбранногоПростояToolStripMenuItem_Click(object sender, EventArgs e) { if (SelectedIdleItem == null) { MessageBox.Show("Выберите простой сервиса", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } try { ServiceIdle selectedServiceIdle = _ctx.GetServiceIdleByID(SelectedIdleItem.Id); var editIdleItemForm = new EditIdleItemForm(selectedServiceIdle); if (editIdleItemForm.ShowDialog() == DialogResult.OK) { BindServiceIdle(); } } catch { MessageBox.Show("Произошла ошибка при получении информации о выбранном простое сервиса!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }