public override bool Save() { logger.Info("Запись документа..."); var valid = new QSValidator <Income> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window)Toplevel)) { return(false); } var ask = new GtkQuestionDialogsInteractive(); Entity.UpdateOperations(UoW, ask); if (Entity.Id == 0) { Entity.CreationDate = DateTime.Now; } UoWGeneric.Save(); if (Entity.Operation == IncomeOperations.Return) { logger.Debug("Обновляем записи о выданной одежде в карточке сотрудника..."); Entity.UpdateEmployeeWearItems(); UoWGeneric.Commit(); } logger.Info("Ok"); return(true); }
void CreateOrder() { var employee = _employeeRepository.GetEmployeeForCurrentUser(UoWGeneric); var order = Order.CreateFromServiceClaim(Entity, employee); UoWGeneric.Save(order); UoWGeneric.Commit(); var orderDlg = new OrderDlg(order); TabParent.AddTab(orderDlg, this); }
public override bool Save() { var all = _deliveryScheduleRepository.All(UoWGeneric); var notArchivedList = all.Where(ds => ds.IsArchive == false && ds.From == Entity.From && ds.To == Entity.To).ToList(); if (notArchivedList.Any() && UoWGeneric.Root.IsArchive == false) { //при архивировании интервала эти проверки не нужны //есть вероятность, что среди активных интервалов есть дубликаты, так что берем первый var active = notArchivedList.First(); MessageDialogHelper.RunWarningDialog("Уже существует интервал с таким же периодом.\n" + "Создание нового интервала невозможно.\n" + "Существующий интервал:\n" + $"Код: {active.Id}\n" + $"Название: {active.Name}\n" + $"Период: {active.DeliveryTime}\n"); return(false); // нашли активный } var archivedList = all.Where(ds => ds.IsArchive && ds.From == Entity.From && ds.To == Entity.To).ToList(); if (archivedList.Any() && UoWGeneric.Root.IsArchive == false) { //при архивировании интервала эти проверки не нужны //т.к. интервалы нельзя удалять, архивными могут быть несколько, так что берем первый var archived = archivedList.First(); if (MessageDialogHelper.RunQuestionDialog("Уже существует архивный интервал с таким же периодом.\n" + "Создание нового интервала невозможно.\n" + "Разархивировать существующий интервал?")) { //отменяем изменения текущей сущности интервала и обновляем найденный архивный UoWGeneric.Delete(UoWGeneric.Root); archived.IsArchive = false; UoWGeneric.Save(archived); UoWGeneric.Commit(); MessageDialogHelper.RunInfoDialog("Разархивирован интервал:\n" + $"Код: {archived.Id}\n" + $"Название: {archived.Name}\n" + $"Период: {archived.DeliveryTime}\n"); } return(false); // нашли/разархивировали старый } var valid = new QSValidator <DeliverySchedule> (UoWGeneric.Root); if (valid.RunDlgIfNotValid((Gtk.Window) this.Toplevel)) { return(false); } logger.Info("Сохраняем график доставки..."); UoWGeneric.Save(); return(true); }
public override bool Save() { if (!Validate()) { return(false); } if (Entity.Id == 0) { Entity.CreationDate = DateTime.Now; } logger.Info("Запись документа..."); if (Entity.Items.Any(x => x.IsWriteOff) && Entity.WriteOffDoc == null) { Entity.WriteOffDoc = new Writeoff(); Entity.WriteOffDoc.Date = Entity.Date; Entity.WriteOffDoc.CreatedbyUser = Entity.CreatedbyUser; } Entity.CleanupItems(); Entity.CleanupItemsWriteOff(); Entity.UpdateOperations(UoW, baseParameters, interactive); Entity.UpdateIssuanceSheet(); if (Entity.IssuanceSheet != null) { UoW.Save(Entity.IssuanceSheet); } Entity.UpdateIssuedWriteOffOperation(); if (Entity.WriteOffDoc != null) { UoW.Save(Entity.WriteOffDoc); } UoWGeneric.Save(); logger.Debug("Обновляем записи о выданной одежде в карточке сотрудника..."); Entity.UpdateEmployeeWearItems(); UoWGeneric.Commit(); logger.Info("Ok"); return(true); }
public override bool Save() { if (!Validate()) { return(false); } if (Entity.Id == 0) { Entity.CreationDate = DateTime.Now; } logger.Info("Запись документа..."); var progressPage = NavigationManager.OpenViewModel <ProgressWindowViewModel>(this); var progress = progressPage.ViewModel.Progress; var employeeItemGroups = Entity.Items.GroupBy(x => x.Employee); //О подсчете прогресса, метод UpdateEmployeeWearItems использует умноженное на 2 количество сотрудников, как шагов прогресса. progress.Start(maxValue: employeeItemGroups.Count() * 2 + 2, text: "Подготовка..."); Entity.CleanupItems(); Entity.UpdateOperations(UoW, baseParameters, interactive); progress.Add(text: "Обновление ведомости..."); Entity.UpdateIssuanceSheet(); if (Entity.IssuanceSheet != null) { UoW.Save(Entity.IssuanceSheet); } UoWGeneric.Save(); logger.Debug("Обновляем записи о выданной одежде в карточке сотрудника..."); Entity.UpdateEmployeeWearItems(progress); progress.Add(text: "Сохранение в базу данных..."); UoWGeneric.Commit(); progress.Close(); logger.Info("Ok"); NavigationManager.ForceClosePage(progressPage, CloseSource.FromParentPage); return(true); }