void YtreeviewNotLoaded_RowActivated(object o, Gtk.RowActivatedArgs args) { var notLoadedNomenclature = ytreeviewNotLoaded.GetSelectedObject() as RouteListControlNotLoadedNode; if (notLoadedNomenclature == null) { return; } var dlg = new CarLoadDocumentDlg(Entity.Id, notLoadedNomenclature.Nomenclature.Warehouse?.Id); TabParent.AddTab(dlg, this); }
private void SendToLoadingAndPrint(RouteListJournalNode selectedNode, Warehouse warehouse) { using (var localUow = UnitOfWorkFactory.CreateWithoutRoot()) { var routeList = localUow.GetById <RouteList>(selectedNode.Id); routeList.ChangeStatusAndCreateTask(RouteListStatus.InLoading, _callTaskWorker); var carLoadDocument = new CarLoadDocument(); FillCarLoadDocument(carLoadDocument, localUow, routeList.Id, warehouse.Id); var routeListFullyShipped = routeList.ShipIfCan(localUow, _callTaskWorker, out var notLoadedGoods, carLoadDocument); localUow.Save(routeList); //Не погружен остался только терминал var routeListShippedWithoutTerminal = notLoadedGoods.Count == 1 && notLoadedGoods.All(x => x.NomenclatureId == _terminalNomenclatureProvider.GetNomenclatureIdForTerminal); var valid = commonServices.ValidationService.Validate(carLoadDocument, showValidationResults: false); if ((routeListFullyShipped || routeListShippedWithoutTerminal) && valid) { carLoadDocument.ClearItemsFromZero(); carLoadDocument.UpdateOperations(localUow); if (!carLoadDocument.Items.Any()) { localUow.Commit(); return; } localUow.Save(carLoadDocument); localUow.Commit(); if (routeListShippedWithoutTerminal) { commonServices.InteractiveService.ShowMessage(ImportanceLevel.Info, "Водителю необходимо получить терминал на кассе"); } var reportInfo = new ReportInfo { Title = carLoadDocument.Title, Identifier = "Store.CarLoadDocument", Parameters = new Dictionary <string, object> { { "id", carLoadDocument.Id } }, PrintType = ReportInfo.PrintingType.MultiplePrinters }; _reportPrinter.Print(reportInfo); } else { localUow.Commit(); commonServices.InteractiveService.ShowMessage(ImportanceLevel.Warning, "Не удалось автоматически отгрузить Маршрутный лист"); var dlg = new CarLoadDocumentDlg(); FillCarLoadDocument(dlg.Entity, dlg.UoW, routeList.Id, warehouse.Id); TabParent.OpenTab(() => dlg); } } }