Example #1
0
        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;
        }
 public EntityCommonRepresentationModel(IUnitOfWork uow, IColumnsConfig columnsConfig)
 {
     UoW = uow;
     this.columnsConfig = columnsConfig;
 }
Example #3
0
 public static void SetIgnoreColumns(IColumnsConfig columnsConfig)
 {
     _columnsConfig = columnsConfig;
 }
Example #4
0
        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;
        }
 public DataTableAjaxHelper(ILogger logger, IColumnsConfig columnsConfig)
 {
     _logger        = logger;
     _columnsConfig = columnsConfig;
 }