void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.SelfDeliveryEdit, Entity.Warehouse)) { FailInitialize = true; return; } var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.SelfDeliveryEdit, Entity.Warehouse); yentryrefOrder.IsEditable = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = editing; selfdeliverydocumentitemsview1.Sensitive = vBoxBottles.Sensitive = editing; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.SelfDeliveryEdit); 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 OrdersFilter(UoW); filter.SetAndRefilterAtOnce( x => x.RestrictSelfDelivery = true, x => x.RestrictStatus = OrderStatus.Accepted ); yentryrefOrder.RepresentationModel = new ViewModel.OrdersVM(filter); yentryrefOrder.Binding.AddBinding(Entity, e => e.Order, w => w.Subject).InitializeFromSource(); yentryrefOrder.CanEditReference = QSMain.User.Permissions["can_delete"]; UpdateOrderInfo(); Entity.UpdateStockAmount(UoW); Entity.UpdateAlreadyUnloaded(UoW); selfdeliverydocumentitemsview1.DocumentUoW = UoWGeneric; //bottlereceptionview1.UoW = UoW; UpdateWidgets(); IColumnsConfig bottlesColumnsConfig = FluentColumnsConfig <GoodsReceptionVMNode> .Create() .AddColumn("Номенклатура").AddTextRenderer(node => node.Name) .AddColumn("Кол-во").AddNumericRenderer(node => node.Amount).WidthChars(3) .Adjustment(new Gtk.Adjustment(0, 0, 9999, 1, 100, 0)) .Editing(true) .AddColumn("") .Finish(); yTreeBottles.ColumnsConfig = bottlesColumnsConfig; FillTrees(); IColumnsConfig goodsColumnsConfig = FluentColumnsConfig <GoodsReceptionVMNode> .Create() .AddColumn("Номенклатура").AddTextRenderer(node => node.Name) .AddColumn("Кол-во").AddNumericRenderer(node => node.Amount) .Adjustment(new Gtk.Adjustment(0, 0, 9999, 1, 100, 0)) .Editing(true) .AddColumn("Категория").AddTextRenderer(node => node.Category.GetEnumTitle()) .AddColumn("") .Finish(); yTreeOtherGoods.ColumnsConfig = goodsColumnsConfig; yTreeOtherGoods.ItemsDataSource = GoodsReceptionList; }
void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.SelfDeliveryEdit, Entity.Warehouse)) { FailInitialize = true; return; } Entity.InitializeDefaultValues(UoW, _nomenclatureRepository); vbxMain.Sensitive = canEditDocument; buttonCancel.Sensitive = true; var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.SelfDeliveryEdit, Entity.Warehouse); yentryrefOrder.IsEditable = lstWarehouse.Sensitive = ytextviewCommnet.Editable = editing && canEditDocument; selfdeliverydocumentitemsview1.Sensitive = hbxTareToReturn.Sensitive = editing && canEditDocument; ylabelDate.Binding.AddFuncBinding(Entity, e => e.TimeStamp.ToString("g"), w => w.LabelProp).InitializeFromSource(); lstWarehouse.ItemsList = StoreDocumentHelper.GetRestrictedWarehousesList(UoW, WarehousePermissions.SelfDeliveryEdit); lstWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.SelectedItem).InitializeFromSource(); lstWarehouse.ItemSelected += OnWarehouseSelected; ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); var filter = new OrdersFilter(UoW); filter.SetAndRefilterAtOnce( x => x.RestrictSelfDelivery = true, x => x.RestrictStatus = OrderStatus.OnLoading ); yentryrefOrder.RepresentationModel = new ViewModel.OrdersVM(filter); yentryrefOrder.Binding.AddBinding(Entity, e => e.Order, w => w.Subject).InitializeFromSource(); yentryrefOrder.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); yentryrefOrder.ChangedByUser += (sender, e) => { FillTrees(); }; UpdateOrderInfo(); Entity.UpdateStockAmount(UoW, _stockRepository); Entity.UpdateAlreadyUnloaded(UoW, _nomenclatureRepository, _bottlesRepository); selfdeliverydocumentitemsview1.DocumentUoW = UoWGeneric; //bottlereceptionview1.UoW = UoW; UpdateWidgets(); lblTareReturnedBefore.Binding.AddFuncBinding(Entity, e => e.ReturnedTareBeforeText, w => w.Text).InitializeFromSource(); spnTareToReturn.Binding.AddBinding(Entity, e => e.TareToReturn, w => w.ValueAsInt).InitializeFromSource(); IColumnsConfig goodsColumnsConfig = FluentColumnsConfig <GoodsReceptionVMNode> .Create() .AddColumn("Номенклатура").AddTextRenderer(node => node.Name) .AddColumn("Кол-во").AddNumericRenderer(node => node.Amount) .Adjustment(new Gtk.Adjustment(0, 0, 9999, 1, 100, 0)) .Editing(true) .AddColumn("Ожидаемое кол-во").AddNumericRenderer(node => node.ExpectedAmount) .AddColumn("Категория").AddTextRenderer(node => node.Category.GetEnumTitle()) .AddColumn("Направление").AddTextRenderer(node => node.Direction != null ? node.Direction.GetEnumTitle() : "") .AddColumn("Принадлежность").AddEnumRenderer(node => node.OwnType, true, new Enum[] { OwnTypes.None }) .AddSetter((c, n) => { c.Editable = false; c.Editable = n.Category == NomenclatureCategory.equipment; }) .AddColumn("Причина").AddEnumRenderer( node => node.DirectionReason , true ).AddSetter((c, n) => { switch (n.DirectionReason) { case DirectionReason.Rent: c.Text = "Закрытие аренды"; break; case DirectionReason.Repair: c.Text = "В ремонт"; break; case DirectionReason.Cleaning: c.Text = "На санобработку"; break; case DirectionReason.RepairAndCleaning: c.Text = "В ремонт и санобработку"; break; default: break; } c.Editable = false; c.Editable = n.Category == NomenclatureCategory.equipment; }) .AddColumn("") .Finish(); yTreeOtherGoods.ColumnsConfig = goodsColumnsConfig; yTreeOtherGoods.ItemsDataSource = GoodsReceptionList; var permmissionValidator = new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), _employeeRepository); Entity.CanEdit = permmissionValidator.Validate( typeof(SelfDeliveryDocument), ServicesConfig.UserService.CurrentUserId, nameof(RetroactivelyClosePermission)); if (!Entity.CanEdit && Entity.TimeStamp.Date != DateTime.Now.Date) { yTreeOtherGoods.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); yentryrefOrder.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ytextviewCommnet.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); ytextviewOrderInfo.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); lstWarehouse.Sensitive = false; selfdeliverydocumentitemsview1.Sensitive = false; spnTareToReturn.Sensitive = false; btnAddOtherGoods.Sensitive = false; buttonSave.Sensitive = false; } else { Entity.CanEdit = true; } FillTrees(); spnTareToReturn.ValueChanged += (sender, e) => HasChanges = true; GoodsReceptionList.ListContentChanged += (sender, e) => HasChanges = true; }