private void ConfigureDlg() { var filterFrom = new RouteListsFilter(UoW); filterFrom.SetAndRefilterAtOnce( f => f.OnlyStatuses = new[] { RouteListStatus.EnRoute, RouteListStatus.OnClosing }, f => f.SetFilterDates( DateTime.Today.AddDays(-3), DateTime.Today.AddDays(1) ) ); var vmFrom = new RouteListsVM(filterFrom); GC.KeepAlive(vmFrom); yentryreferenceRLFrom.RepresentationModel = vmFrom; yentryreferenceRLFrom.JournalButtons = QS.Project.Dialogs.GtkUI.Buttons.Add | QS.Project.Dialogs.GtkUI.Buttons.Edit; yentryreferenceRLFrom.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); var filterTo = new RouteListsFilter(UoW); filterTo.SetAndRefilterAtOnce( f => f.OnlyStatuses = new[] { RouteListStatus.New, RouteListStatus.InLoading, RouteListStatus.EnRoute, RouteListStatus.OnClosing }, f => f.SetFilterDates( DateTime.Today.AddDays(-3), DateTime.Today.AddDays(1) ) ); var vmTo = new RouteListsVM(filterTo); yentryreferenceRLTo.RepresentationModel = vmTo; yentryreferenceRLTo.JournalButtons = QS.Project.Dialogs.GtkUI.Buttons.Add | QS.Project.Dialogs.GtkUI.Buttons.Edit; yentryreferenceRLTo.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); yentryreferenceRLFrom.Changed += YentryreferenceRLFrom_Changed; yentryreferenceRLTo.Changed += YentryreferenceRLTo_Changed; //Для каждой TreeView нужен свой экземпляр ColumnsConfig ytreeviewRLFrom.ColumnsConfig = GetColumnsConfig(false); ytreeviewRLTo.ColumnsConfig = GetColumnsConfig(true); ytreeviewRLFrom.Selection.Mode = Gtk.SelectionMode.Multiple; ytreeviewRLTo.Selection.Mode = Gtk.SelectionMode.Multiple; ytreeviewRLFrom.Selection.Changed += YtreeviewRLFrom_OnSelectionChanged; ytreeviewRLTo.Selection.Changed += YtreeviewRLTo_OnSelectionChanged; ConfigureTreeViewsDriverBalance(); ybtnTransferTerminal.Clicked += (sender, e) => TransferTerminal.Execute(); ybtnRevertTerminal.Clicked += (sender, e) => RevertTerminal.Execute(); }
void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.CarUnloadEdit, Entity.Warehouse)) { FailInitialize = true; return; } var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.CarUnloadEdit, Entity.Warehouse); yentryrefRouteList.IsEditable = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = editing; returnsreceptionview1.Sensitive = bottlereceptionview1.Sensitive = nonserialequipmentreceptionview1.Sensitive = defectiveitemsreceptionview1.Sensitive = editing; bottlereceptionview1.UoW = defectiveitemsreceptionview1.UoW = returnsreceptionview1.UoW = UoW; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.CarUnloadEdit); yentryrefWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.Subject).InitializeFromSource(); ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); var filter = new RouteListsFilter(UoW); filter.SetAndRefilterAtOnce(x => x.RestrictStatus = RouteListStatus.EnRoute); yentryrefRouteList.RepresentationModel = new ViewModel.RouteListsVM(filter); yentryrefRouteList.Binding.AddBinding(Entity, e => e.RouteList, w => w.Subject).InitializeFromSource(); yentryrefRouteList.CanEditReference = QSMain.User.Permissions["can_delete"]; defectiveitemsreceptionview1.Warehouse = returnsreceptionview1.Warehouse = Entity.Warehouse; UpdateWidgetsVisible(); if (!UoW.IsNew) { LoadReception(); } }
void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.CarLoadEdit, Entity.Warehouse)) { FailInitialize = true; return; } editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.CarLoadEdit, Entity.Warehouse); yentryrefRouteList.IsEditable = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = editing; carloaddocumentview1.Sensitive = editing; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.CarLoadEdit); yentryrefWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.Subject).InitializeFromSource(); ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); var filter = new RouteListsFilter(UoW); filter.SetAndRefilterAtOnce(x => x.RestrictStatus = RouteListStatus.InLoading); yentryrefRouteList.RepresentationModel = new ViewModel.RouteListsVM(filter); yentryrefRouteList.Binding.AddBinding(Entity, e => e.RouteList, w => w.Subject).InitializeFromSource(); yentryrefRouteList.CanEditReference = QSMain.User.Permissions["can_delete"]; enumPrint.ItemsEnum = typeof(CarLoadPrintableDocuments); UpdateRouteListInfo(); Entity.UpdateStockAmount(UoW); Entity.UpdateAlreadyLoaded(UoW); Entity.UpdateInRouteListAmount(UoW); carloaddocumentview1.DocumentUoW = UoWGeneric; carloaddocumentview1.SetButtonEditing(editing); if (UoW.IsNew && Entity.Warehouse != null) { carloaddocumentview1.FillItemsByWarehouse(); } }
void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.CarLoadEdit, Entity.Warehouse)) { FailInitialize = true; return; } var currentUserId = ServicesConfig.CommonServices.UserService.CurrentUserId; var hasPermitionToEditDocWithClosedRL = ServicesConfig.CommonServices.PermissionService.ValidateUserPresetPermission( "can_change_car_load_and_unload_docs", currentUserId); var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.CarLoadEdit, Entity.Warehouse); editing &= Entity.RouteList?.Status != RouteListStatus.Closed || hasPermitionToEditDocWithClosedRL; yentryrefRouteList.IsEditable = ySpecCmbWarehouses.Sensitive = ytextviewCommnet.Editable = editing; carloaddocumentview1.Sensitive = editing; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); ySpecCmbWarehouses.ItemsList = StoreDocumentHelper.GetRestrictedWarehousesList(UoW, WarehousePermissions.CarLoadEdit); ySpecCmbWarehouses.Binding.AddBinding(Entity, e => e.Warehouse, w => w.SelectedItem).InitializeFromSource(); ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); var filter = new RouteListsFilter(UoW); filter.SetAndRefilterAtOnce(x => x.RestrictedStatuses = new[] { RouteListStatus.InLoading }); yentryrefRouteList.RepresentationModel = new ViewModel.RouteListsVM(filter); yentryrefRouteList.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); yentryrefRouteList.Binding.AddBinding(Entity, e => e.RouteList, w => w.Subject).InitializeFromSource(); enumPrint.ItemsEnum = typeof(CarLoadPrintableDocuments); UpdateRouteListInfo(); Entity.UpdateStockAmount(UoW, _stockRepository); Entity.UpdateAlreadyLoaded(UoW, _routeListRepository); Entity.UpdateInRouteListAmount(UoW, _routeListRepository); carloaddocumentview1.DocumentUoW = UoWGeneric; carloaddocumentview1.SetButtonEditing(editing); buttonSave.Sensitive = editing; if (!editing) { HasChanges = false; } if (UoW.IsNew && Entity.Warehouse != null) { carloaddocumentview1.FillItemsByWarehouse(); } ySpecCmbWarehouses.ItemSelected += OnYSpecCmbWarehousesItemSelected; var permmissionValidator = new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), _employeeRepository); Entity.CanEdit = permmissionValidator.Validate(typeof(CarLoadDocument), currentUserId, nameof(RetroactivelyClosePermission)); if (!Entity.CanEdit && Entity.TimeStamp.Date != DateTime.Now.Date) { ytextviewCommnet.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); yentryrefRouteList.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ySpecCmbWarehouses.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ytextviewRouteListInfo.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); carloaddocumentview1.Sensitive = false; buttonSave.Sensitive = false; } else { Entity.CanEdit = true; } }
void ConfigureDlg() { callTaskWorker = new CallTaskWorker( CallTaskSingletonFactory.GetInstance(), new CallTaskRepository(), OrderSingletonRepository.GetInstance(), EmployeeSingletonRepository.GetInstance(), new BaseParametersProvider(), ServicesConfig.CommonServices.UserService, SingletonErrorReporter.Instance); if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.CarUnloadEdit, Entity.Warehouse)) { FailInitialize = true; return; } var currentUserId = QS.Project.Services.ServicesConfig.CommonServices.UserService.CurrentUserId; var hasPermitionToEditDocWithClosedRL = QS.Project.Services.ServicesConfig.CommonServices.PermissionService.ValidateUserPresetPermission("can_change_car_load_and_unload_docs", currentUserId); var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.CarUnloadEdit, Entity.Warehouse); editing &= Entity.RouteList?.Status != RouteListStatus.Closed || hasPermitionToEditDocWithClosedRL; Entity.InitializeDefaultValues(UoW, new NomenclatureRepository(new NomenclatureParametersProvider())); yentryrefRouteList.IsEditable = ySpecCmbWarehouses.Sensitive = ytextviewCommnet.Editable = editing; returnsreceptionview.Sensitive = hbxTareToReturn.Sensitive = nonserialequipmentreceptionview1.Sensitive = defectiveitemsreceptionview1.Sensitive = editing; defectiveitemsreceptionview1.UoW = returnsreceptionview.UoW = UoW; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); ySpecCmbWarehouses.ItemsList = StoreDocumentHelper.GetRestrictedWarehousesList(UoW, WarehousePermissions.CarUnloadEdit); ySpecCmbWarehouses.Binding.AddBinding(Entity, e => e.Warehouse, w => w.SelectedItem).InitializeFromSource(); ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); var filter = new RouteListsFilter(UoW); filter.SetAndRefilterAtOnce(x => x.RestrictedStatuses = new[] { RouteListStatus.EnRoute }); yentryrefRouteList.RepresentationModel = new ViewModel.RouteListsVM(filter); yentryrefRouteList.Binding.AddBinding(Entity, e => e.RouteList, w => w.Subject).InitializeFromSource(); yentryrefRouteList.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); Entity.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(Entity.Warehouse)) { OnWarehouseChanged(); } if (e.PropertyName == nameof(Entity.RouteList)) { UpdateWidgetsVisible(); } }; lblTareReturnedBefore.Binding.AddFuncBinding(Entity, e => e.ReturnedTareBeforeText, w => w.Text).InitializeFromSource(); spnTareToReturn.Binding.AddBinding(Entity, e => e.TareToReturn, w => w.ValueAsInt).InitializeFromSource(); defectiveitemsreceptionview1.Warehouse = returnsreceptionview.Warehouse = Entity.Warehouse; UpdateWidgetsVisible(); buttonSave.Sensitive = editing; if (!editing) { HasChanges = false; } if (!UoW.IsNew) { LoadReception(); } var permmissionValidator = new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), EmployeeRepository); Entity.CanEdit = permmissionValidator.Validate(typeof(CarUnloadDocument), UserSingletonRepository.GetInstance().GetCurrentUser(UoW).Id, nameof(RetroactivelyClosePermission)); if (!Entity.CanEdit && Entity.TimeStamp.Date != DateTime.Now.Date) { ytextviewCommnet.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); yentryrefRouteList.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ySpecCmbWarehouses.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ytextviewRouteListInfo.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); spnTareToReturn.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); defectiveitemsreceptionview1.Sensitive = false; nonserialequipmentreceptionview1.Sensitive = false; returnsreceptionview.Sensitive = false; buttonSave.Sensitive = false; } else { Entity.CanEdit = true; } }