public FuelReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var filterDriver = new EmployeeFilterViewModel(); filterDriver.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.driver, x => x.Status = EmployeeStatus.IsWorking ); var driverFactory = new EmployeeJournalFactory(filterDriver); evmeDriver.SetEntityAutocompleteSelectorFactory(driverFactory.CreateEmployeeAutocompleteSelectorFactory()); entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(new CarJournalFactory(MainClass.MainWin.NavigationManager).CreateCarAutocompleteSelectorFactory()); entityviewmodelentryCar.CompletionPopupSetWidth(false); var officeFilter = new EmployeeFilterViewModel(); officeFilter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.office, x => x.Status = EmployeeStatus.IsWorking ); var officeFactory = new EmployeeJournalFactory(officeFilter); evmeAuthor.SetEntityAutocompleteSelectorFactory(officeFactory.CreateEmployeeAutocompleteSelectorFactory()); dateperiodpicker.StartDate = dateperiodpicker.EndDate = DateTime.Today; buttonCreateReport.Clicked += OnButtonCreateReportClicked; }
public CashExpenseFilterView() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); Filter = new ExpenseFilter(); ydateperiodPicker.Binding.AddBinding(Filter, x => x.StartDate, w => w.StartDate).InitializeFromSource(); ydateperiodPicker.Binding.AddBinding(Filter, x => x.EndDate, w => w.EndDate).InitializeFromSource(); ydateperiodPicker.PeriodChanged += (sender, e) => Refilter(); var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Filter, x => x.Employee, w => w.Subject).InitializeFromSource(); evmeEmployee.ChangedByUser += (sender, e) => Refilter(); var expenseCategoryVM = new EntityCommonRepresentationModelConstructor <ExpenseCategory>(UoW) .AddColumn("Имя", x => x.Name).AddSearch(x => x.Name) .AddColumn("Тип документа", x => x.ExpenseDocumentType.GetEnumTitle()) .OrderBy(x => x.Name) .Finish(); entryExpenseCategory.RepresentationModel = expenseCategoryVM; entryExpenseCategory.Binding.AddBinding(Filter, x => x.ExpenseCategory, w => w.Subject).InitializeFromSource(); entryExpenseCategory.ChangedByUser += (sender, e) => Refilter(); }
protected override void ConfigureWithUow() { enumcomboDocumentType.ItemsEnum = typeof(DocumentType); enumcomboDocumentType.HiddenItems = new[] { DocumentType.DeliveryDocument as object }; evmeWarehouse.SetEntityAutocompleteSelectorFactory(new WarehouseSelectorFactory()); if (ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_only_to_warehouse_and_complaints") && !ServicesConfig.CommonServices.UserService.GetCurrentUser(UoW).IsAdmin) { evmeWarehouse.Sensitive = evmeWarehouse.CanEditReference = false; } if (CurrentUserSettings.Settings.DefaultWarehouse != null) { evmeWarehouse.Subject = UoW.GetById <Warehouse>(CurrentUserSettings.Settings.DefaultWarehouse.Id); } var filter = new EmployeeFilterViewModel(); filter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.driver, x => x.Status = EmployeeStatus.IsWorking ); var driverFactory = new EmployeeJournalFactory(filter); evmeDriver.SetEntityAutocompleteSelectorFactory(driverFactory.CreateEmployeeAutocompleteSelectorFactory()); dateperiodDocs.StartDate = DateTime.Today.AddDays(-7); dateperiodDocs.EndDate = DateTime.Today.AddDays(1); comboMovementStatus.ItemsEnum = typeof(MovementDocumentStatus); evmeDriver.Changed += (sender, args) => OnRefiltered(); evmeWarehouse.Changed += (sender, args) => OnRefiltered(); }
void ConfigureDlg() { ySpecCmbDeliveryPointFrom.SetSizeRequest(250, 30); ySpecCmbDeliveryPointTo.SetSizeRequest(250, 30); textComment.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); datepickerDate.Binding.AddBinding(Entity, e => e.TimeStamp, w => w.Date).InitializeFromSource(); var clientFactory = new CounterpartyJournalFactory(); referenceCounterpartyFrom.SetEntitySelectorFactory(clientFactory.CreateCounterpartyAutocompleteSelectorFactory()); referenceCounterpartyFrom.Binding.AddBinding(Entity, e => e.FromClient, w => w.Subject).InitializeFromSource(); referenceCounterpartyTo.SetEntitySelectorFactory(clientFactory.CreateCounterpartyAutocompleteSelectorFactory()); referenceCounterpartyTo.Binding.AddBinding(Entity, e => e.ToClient, w => w.Subject).InitializeFromSource(); var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Entity, e => e.ResponsiblePerson, w => w.Subject).InitializeFromSource(); transferoperationdocumentitemview1.DocumentUoW = UoWGeneric; if (Entity.FromClient != null) { RefreshSpinButtons(new BottlesRepository(), new DepositRepository()); } }
public CashFlow( ISubdivisionRepository subdivisionRepository, ICommonServices commonServices, ICategoryRepository categoryRepository) { _subdivisionRepository = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository)); _commonServices = commonServices ?? throw new ArgumentNullException(nameof(commonServices)); if (categoryRepository == null) { throw new ArgumentNullException(nameof(categoryRepository)); } Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); comboPart.ItemsEnum = typeof(ReportParts); comboIncomeCategory.ItemsList = categoryRepository.IncomeCategories(UoW); comboExpenseCategory.Sensitive = comboIncomeCategory.Sensitive = false; var now = DateTime.Now; dateStart.Date = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0); dateEnd.Date = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59); var officeFilter = new EmployeeFilterViewModel(); officeFilter.SetAndRefilterAtOnce( x => x.Status = EmployeeStatus.IsWorking, x => x.RestrictCategory = EmployeeCategory.office); var employeeFactory = new EmployeeJournalFactory(officeFilter); evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingOfficeEmployeeAutocompleteSelectorFactory()); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); var recurciveConfig = OrmMain.GetObjectDescription <ExpenseCategory>().TableView.RecursiveTreeConfig; var list = categoryRepository.ExpenseCategories(UoW); list.Insert(0, allItem); var model = recurciveConfig.CreateModel((IList)list); comboExpenseCategory.Model = model.Adapter; comboExpenseCategory.PackStart(new CellRendererText(), true); comboExpenseCategory.SetCellDataFunc(comboExpenseCategory.Cells[0], HandleCellLayoutDataFunc); comboExpenseCategory.SetActiveIter(model.IterFromNode(allItem)); UserSubdivisions = GetSubdivisionsForUser(); specialListCmbCashSubdivisions.SetRenderTextFunc <Subdivision>(s => s.Name); specialListCmbCashSubdivisions.ItemsList = UserSubdivisions; ylblOrganisations.Visible = specialListCmbOrganisations.Visible = false; Organisations = UoW.GetAll <Organization>(); specialListCmbOrganisations.SetRenderTextFunc <Organization>(s => s.Name); specialListCmbOrganisations.ItemsList = Organisations; int currentUserId = commonServices.UserService.CurrentUserId; bool canCreateCashReportsForOrganisations = commonServices.PermissionService.ValidateUserPresetPermission("can_create_cash_reports_for_organisations", currentUserId); checkOrganisations.Visible = canCreateCashReportsForOrganisations; checkOrganisations.Toggled += CheckOrganisationsToggled; }
public DriverWagesReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var driverFilter = new EmployeeFilterViewModel(); driverFilter.SetAndRefilterAtOnce( x => x.Status = EmployeeStatus.IsWorking, x => x.RestrictCategory = EmployeeCategory.driver); var employeeFactory = new EmployeeJournalFactory(driverFilter); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeDriver.Changed += (sender, args) => { if (dateperiodpicker.StartDateOrNull.HasValue && evmeDriver.Subject is Employee) { OnUpdate(true); } }; dateperiodpicker.PeriodChanged += (sender, args) => { if (evmeDriver.Subject is Employee && dateperiodpicker.StartDateOrNull.HasValue) { OnUpdate(true); } }; buttonCreateReport.Clicked += OnButtonCreateReportClicked; }
void ActionFuelTransferDocuments_Activated(object sender, System.EventArgs e) { ISubdivisionRepository subdivisionRepository = new SubdivisionRepository(); IFuelRepository fuelRepository = new FuelRepository(); ICounterpartyJournalFactory counterpartyJournalFactory = new CounterpartyJournalFactory(); INomenclatureSelectorFactory nomenclatureSelectorFactory = new NomenclatureSelectorFactory(); IEmployeeJournalFactory employeeJournalFactory = new EmployeeJournalFactory(); ICarJournalFactory carJournalFactory = new CarJournalFactory(); IFileChooserProvider fileChooserProvider = new Vodovoz.FileChooser("Категория Расхода.csv"); var expenseCategoryJournalFilterViewModel = new ExpenseCategoryJournalFilterViewModel(); var fuelDocumentsJournalViewModel = new FuelDocumentsJournalViewModel( UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices, VodovozGtkServicesConfig.EmployeeService, subdivisionRepository, fuelRepository, counterpartyJournalFactory, nomenclatureSelectorFactory, employeeJournalFactory, carJournalFactory, new GtkReportViewOpener(), fileChooserProvider, expenseCategoryJournalFilterViewModel ); tdiMain.AddTab(fuelDocumentsJournalViewModel); }
void ConfigureDlg() { if (Entity.EmployeeDocument == null && Entity.Employee != null) { GetDocument(); } ylabelNumber.Binding.AddBinding(Entity, x => x.Title, x => x.LabelProp).InitializeFromSource(); var orderFactory = new OrderSelectorFactory(); evmeOrder.SetEntityAutocompleteSelectorFactory(orderFactory.CreateOrderAutocompleteSelectorFactory()); evmeOrder.Binding.AddBinding(Entity, x => x.Order, x => x.Subject).InitializeFromSource(); evmeOrder.Changed += (sender, e) => { FillForOrder(); }; evmeOrder.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); var orgFactory = new OrganizationJournalFactory(); evmeOrganization.SetEntityAutocompleteSelectorFactory(orgFactory.CreateOrganizationAutocompleteSelectorFactory()); evmeOrganization.Binding.AddBinding(Entity, x => x.Organization, x => x.Subject).InitializeFromSource(); evmeOrganization.Changed += (sender, e) => UpdateStates(); FillForOrder(); yDPDatesRange.Binding.AddBinding(Entity, x => x.Date, x => x.StartDate).InitializeFromSource(); yDPDatesRange.Binding.AddBinding(Entity, x => x.ExpirationDate, x => x.EndDate).InitializeFromSource(); var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Entity, x => x.Employee, x => x.Subject).InitializeFromSource(); var supplierFactory = new CounterpartyJournalFactory(); evmeSupplier.SetEntityAutocompleteSelectorFactory(supplierFactory.CreateCounterpartyAutocompleteSelectorFactory()); evmeSupplier.Binding.AddBinding(Entity, x => x.Supplier, x => x.Subject).InitializeFromSource(); yETicketNr.Binding.AddBinding(Entity, x => x.TicketNumber, w => w.Text).InitializeFromSource(); yDTicketDate.Binding.AddBinding(Entity, x => x.TicketDate, x => x.DateOrNull).InitializeFromSource(); RefreshParserRootObject(); templatewidget.CanRevertCommon = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_set_common_additionalagreement"); templatewidget.Binding.AddBinding(Entity, e => e.DocumentTemplate, w => w.Template).InitializeFromSource(); templatewidget.Binding.AddBinding(Entity, e => e.ChangedTemplateFile, w => w.ChangedDoc).InitializeFromSource(); templatewidget.BeforeOpen += Templatewidget_BeforeOpen; yTWEquipment.ColumnsConfig = ColumnsConfigFactory.Create <OrderEquipment>() .AddColumn("Наименование").SetDataProperty(node => node.FullNameString) .AddColumn("Направление").SetDataProperty(node => node.DirectionString) .AddColumn("Кол-во").AddNumericRenderer(node => node.Count).WidthChars(10) .Adjustment(new Adjustment(0, 0, 1000000, 1, 100, 0)) .AddColumn("") .Finish(); UpdateStates(); }
public EmployeesPremiums() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var employeeFactory = new EmployeeJournalFactory(); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeDriver.Changed += (sender, args) => ValidateParameters(); }
public WagesOperationsReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); }
protected override void ConfigureWithUow() { var employeeFactory = new EmployeeJournalFactory(); evmeAccountable.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeAccountable.Changed += (sender, e) => OnRefiltered(); yAdvancePeriod.PeriodChanged += (sender, e) => OnRefiltered(); yentryExpense.Changed += (sender, e) => OnRefiltered(); yentryExpense.ItemsQuery = new CategoryRepository(new ParametersProvider()).ExpenseCategoriesQuery(); }
private void ConfigureDlg() { if (!UoW.IsNew) { enumcomboOperation.Sensitive = false; specialListCmbOrganisation.Sensitive = false; } accessfilteredsubdivisionselectorwidget.OnSelected += Accessfilteredsubdivisionselectorwidget_OnSelected; if (Entity.RelatedToSubdivision != null) { accessfilteredsubdivisionselectorwidget.SelectIfPossible(Entity.RelatedToSubdivision); } enumcomboOperation.ItemsEnum = typeof(ExpenseType); enumcomboOperation.Binding.AddBinding(Entity, s => s.TypeOperation, w => w.SelectedItem).InitializeFromSource(); var employeeFactory = new EmployeeJournalFactory(); evmeCashier.Binding.AddBinding(Entity, s => s.Casher, w => w.Subject).InitializeFromSource(); evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Entity, s => s.Employee, w => w.Subject).InitializeFromSource(); evmeEmployee.ChangedByUser += (sender, e) => UpdateEmployeeBalaceInfo(); ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource(); ydateDocument.Sensitive = _canEditDate; var expenseFactory = new ExpenseCategorySelectorFactory(); entityVMEntryExpenseCategory .SetEntityAutocompleteSelectorFactory(expenseFactory.CreateSimpleExpenseCategoryAutocompleteSelectorFactory()); entityVMEntryExpenseCategory.Binding.AddBinding(Entity, e => e.ExpenseCategory, w => w.Subject).InitializeFromSource(); specialListCmbOrganisation.ShowSpecialStateNot = true; specialListCmbOrganisation.ItemsList = UoW.GetAll <Organization>(); specialListCmbOrganisation.Binding.AddBinding(Entity, e => e.Organisation, w => w.SelectedItem).InitializeFromSource(); yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource(); ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource(); UpdateEmployeeBalanceVisibility(); UpdateEmployeeBalaceInfo(); UpdateSubdivision(); if (!CanEdit) { table1.Sensitive = false; accessfilteredsubdivisionselectorwidget.Sensitive = false; buttonSave.Sensitive = false; ytextviewDescription.Editable = false; } }
private void ConfigureDlg() { var employeeFactory = new EmployeeJournalFactory(); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); datePickerFrom.IsEditable = true; datePickerTo.IsEditable = true; buttonRecalculate.Clicked += ButtonRecalculate_Clicked; buttonRecalculateForwarder.Clicked += ButtonRecalculateForwarder_Clicked;; }
public EmployeesFines() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var employeeFactory = new EmployeeJournalFactory(_employeeFilter); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); buttonRun.Clicked += (sender, e) => OnUpdate(true); dateperiodpicker1.PeriodChanged += (sender, e) => ValidateParameters(); evmeDriver.Changed += (sender, e) => ValidateParameters(); }
protected override void ConfigureWithUow() { yEnumCMBGuilty.ItemsEnum = typeof(GuiltyTypes); enumCMBUndeliveryStatus.ItemsEnum = typeof(UndeliveryStatus); enumCMBUndeliveryStatus.SelectedItem = UndeliveryStatus.InProcess; yEnumCMBActionWithInvoice.ItemsEnum = typeof(ActionsWithInvoice); ySpecCMBinProcessAt.ItemsList = ySpecCMBGuiltyDep.ItemsList = new SubdivisionRepository(new ParametersProvider()).GetAllDepartmentsOrderedByName(UoW); refOldOrder.RepresentationModel = new OrdersVM(new OrdersFilter(UoW)); refOldOrder.CanEditReference = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_delete"); var driversFilter = new EmployeeRepresentationFilterViewModel(); driversFilter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.driver, x => x.Status = EmployeeStatus.IsWorking ); refDriver.RepresentationModel = new EmployeesVM(driversFilter); refClient.RepresentationModel = new CounterpartyVM(new CounterpartyFilter(UoW)); entityVMEntryDeliveryPoint.SetEntityAutocompleteSelectorFactory( new DefaultEntityAutocompleteSelectorFactory <DeliveryPoint, DeliveryPointJournalViewModel, DeliveryPointJournalFilterViewModel>(ServicesConfig.CommonServices)); var authorsFilter = new EmployeeRepresentationFilterViewModel(); authorsFilter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.office, x => x.Status = EmployeeStatus.IsWorking ); refOldOrderAuthor.RepresentationModel = refUndeliveryAuthor.RepresentationModel = new EmployeesVM(authorsFilter); dateperiodOldOrderDate.StartDateOrNull = DateTime.Today.AddMonths(-1); dateperiodOldOrderDate.EndDateOrNull = DateTime.Today.AddMonths(1); chkProblematicCases.Toggled += (sender, e) => { if (chkProblematicCases.Active) { yEnumCMBGuilty.SelectedItemOrNull = null; ySpecCMBGuiltyDep.Visible = lblGuiltyDep.Visible = false; } yEnumCMBGuilty.Sensitive = !chkProblematicCases.Active; OnRefiltered(); }; //Подразделение var employeeSelectorFactory = new EmployeeJournalFactory().CreateEmployeeAutocompleteSelectorFactory(); var subdivisionSelectorFactory = new SubdivisionJournalFactory().CreateDefaultSubdivisionAutocompleteSelectorFactory(employeeSelectorFactory); AuthorSubdivisionEntityviewmodelentry.SetEntityAutocompleteSelectorFactory(subdivisionSelectorFactory); AuthorSubdivisionEntityviewmodelentry.Changed += AuthorSubdivisionEntityviewmodelentryOnChanged; }
void ConfigureDlg() { TabName = "Приходный кассовый ордер самовывоза"; Entity.TypeDocument = IncomeInvoiceDocumentType.IncomeInvoiceSelfDelivery; permissioncommentview.UoW = UoW; permissioncommentview.Title = "Комментарий по проверке закрытия МЛ: "; permissioncommentview.Comment = Entity.CashierReviewComment; permissioncommentview.PermissionName = "can_edit_cashier_review_comment"; permissioncommentview.Comment = Entity.CashierReviewComment; permissioncommentview.CommentChanged += (comment) => Entity.CashierReviewComment = comment; enumcomboOperation.ItemsEnum = typeof(IncomeType); enumcomboOperation.Binding.AddBinding(Entity, s => s.TypeOperation, w => w.SelectedItem).InitializeFromSource(); enumcomboOperation.Sensitive = false; Entity.TypeOperation = IncomeType.Payment; var employeeFactory = new EmployeeJournalFactory(); evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeCashier.Binding.AddBinding(Entity, s => s.Casher, w => w.Subject).InitializeFromSource(); evmeCashier.Sensitive = false; var orderFactory = new OrderSelectorFactory(); evmeOrder.SetEntityAutocompleteSelectorFactory(orderFactory.CreateCashSelfDeliveryOrderAutocompleteSelector()); evmeOrder.Binding.AddBinding(Entity, x => x.Order, x => x.Subject).InitializeFromSource(); evmeOrder.Changed += OnYentryOrderChanged; ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource(); NotifyConfiguration.Instance.BatchSubscribeOnEntity <IncomeCategory>( s => comboCategory.ItemsList = _categoryRepository.SelfDeliveryIncomeCategories(UoW) ); comboCategory.ItemsList = incomeCategoryList; comboCategory.Binding.AddBinding(Entity, s => s.IncomeCategory, w => w.SelectedItem).InitializeFromSource(); yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource(); ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource(); if (!CanEdit) { table1.Sensitive = false; ytextviewDescription.Editable = false; buttonSave.Sensitive = false; accessfilteredsubdivisionselectorwidget.Sensitive = false; } UpdateSubdivision(); }
void ConfigureDlg() { accessfilteredsubdivisionselectorwidget.OnSelected += Accessfilteredsubdivisionselectorwidget_OnSelected; if (Entity.RelatedToSubdivision != null) { accessfilteredsubdivisionselectorwidget.SelectIfPossible(Entity.RelatedToSubdivision); } var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Entity, e => e.Accountable, w => w.Subject).InitializeFromSource(); evmeEmployee.Changed += (sender, e) => FillDebt(); evmeCashier.Binding.AddBinding(Entity, e => e.Casher, w => w.Subject).InitializeFromSource(); evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource(); NotifyConfiguration.Instance.BatchSubscribeOnEntity <ExpenseCategory>(HandleBatchEntityChangeHandler); UpdateExpenseCategories(); comboExpense.Binding.AddBinding(Entity, s => s.ExpenseCategory, w => w.SelectedItem).InitializeFromSource(); yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource(); specialListCmbOrganisation.ShowSpecialStateNot = true; specialListCmbOrganisation.ItemsList = UoW.GetAll <Organization>(); specialListCmbOrganisation.Binding.AddBinding(Entity, e => e.Organisation, w => w.SelectedItem).InitializeFromSource(); ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource(); ytreeviewDebts.ColumnsConfig = ColumnsConfigFactory.Create <RecivedAdvance>() .AddColumn("Закрыть").AddToggleRenderer(a => a.Selected).Editing() .AddColumn("Дата").AddTextRenderer(a => a.Advance.Date.ToString()) .AddColumn("Получено").AddTextRenderer(a => a.Advance.Money.ToString("C")) .AddColumn("Непогашено").AddTextRenderer(a => a.Advance.UnclosedMoney.ToString("C")) .AddColumn("Статья").AddTextRenderer(a => a.Advance.ExpenseCategory.Name) .AddColumn("Основание").AddTextRenderer(a => a.Advance.Description) .Finish(); UpdateSubdivision(); if (!CanEdit) { table1.Sensitive = false; accessfilteredsubdivisionselectorwidget.Sensitive = false; buttonSave.Sensitive = false; ytreeviewDebts.Sensitive = false; ytextviewDescription.Editable = false; } }
protected override void ConfigureWithUow() { enumcomboDocumentType.ItemsEnum = typeof(CashDocumentType); var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Changed += (sender, args) => OnRefiltered(); ConfigureEntityViewModelEntry(); //Последние 30 дней. dateperiodDocs.StartDateOrNull = DateTime.Today.AddDays(-30); dateperiodDocs.EndDateOrNull = DateTime.Today.AddDays(1); }
public OrderCreationDateReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var officeFilter = new EmployeeFilterViewModel(); officeFilter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.office, x => x.Status = EmployeeStatus.IsWorking); var employeeFactory = new EmployeeJournalFactory(officeFilter); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); datePeriodPicker.PeriodChanged += (sender, e) => CanRun(); buttonCreateReport.Clicked += (sender, e) => OnUpdate(true); }
public MastersReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var driverFilter = new EmployeeFilterViewModel(); driverFilter.SetAndRefilterAtOnce( x => x.Status = EmployeeStatus.IsWorking, x => x.RestrictCategory = EmployeeCategory.driver); var employeeFactory = new EmployeeJournalFactory(driverFilter); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeDriver.Changed += (sender, e) => CanRun(); dateperiodpicker.PeriodChanged += (sender, e) => CanRun(); buttonCreateReport.Clicked += (sender, e) => OnUpdate(true); }
void ConfigureDlg() { TabName = "Расходный кассовый ордер самовывоза"; Entity.TypeDocument = ExpenseInvoiceDocumentType.ExpenseInvoiceSelfDelivery; enumcomboOperation.ItemsEnum = typeof(ExpenseType); enumcomboOperation.Binding.AddBinding(Entity, s => s.TypeOperation, w => w.SelectedItem).InitializeFromSource(); enumcomboOperation.Sensitive = false; Entity.TypeOperation = ExpenseType.ExpenseSelfDelivery; var orderFactory = new OrderSelectorFactory(); evmeOrder.SetEntityAutocompleteSelectorFactory(orderFactory.CreateCashSelfDeliveryOrderAutocompleteSelector()); evmeOrder.Binding.AddBinding(Entity, x => x.Order, x => x.Subject).InitializeFromSource(); evmeOrder.Changed += OnYentryOrderChanged; var employeeFactory = new EmployeeJournalFactory(); evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeCashier.Binding.AddBinding(Entity, s => s.Casher, w => w.Subject).InitializeFromSource(); evmeCashier.Sensitive = false; ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource(); NotifyConfiguration.Instance.BatchSubscribeOnEntity <ExpenseCategory>( s => comboExpense.ItemsList = _categoryRepository.ExpenseSelfDeliveryCategories(UoW) ); comboExpense.ItemsList = expenseCategoryList; comboExpense.Binding.AddBinding(Entity, s => s.ExpenseCategory, w => w.SelectedItem).InitializeFromSource(); yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource(); ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource(); UpdateSubdivision(); if (!CanEdit) { table1.Sensitive = false; accessfilteredsubdivisionselectorwidget.Sensitive = false; buttonSave.Sensitive = false; ytextviewDescription.Editable = false; } }
private void Initialize() { CounterpartySelectorFactory = new DefaultEntityAutocompleteSelectorFactory <Counterparty, CounterpartyJournalViewModel, CounterpartyJournalFilterViewModel>(CommonServices); EmployeeSelectorFactory = new EmployeeJournalFactory().CreateWorkingOfficeEmployeeAutocompleteSelectorFactory(); OrderSelectorFactory = new DefaultEntityAutocompleteSelectorFactory <Order, OrderJournalViewModel, OrderJournalFilterViewModel>(CommonServices); /* * SubdivisionSelectorFactory = new DefaultEntityAutocompleteSelectorFactory<Subdivision, * SubdivisionsJournalViewModel, * SubdivisionFilterViewModel>(CommonServices); */ }
private void ConfigureDlg() { DateTime now = DateTime.Now; var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Changed += YentryEmployee_Changed; yenumcomboMonth.ItemsEnum = typeof(Month); yenumcomboMonth.SelectedItem = (Month)now.Month; yenumcomboMonth.EnumItemSelected += YenumcomboMonth_EnumItemSelected; yspinYear.Value = (double)now.Year; yspinYear.ValueChanged += YspinYear_ValueChanged; workcharttable.Date = now; }
public ShortfallBattlesReport() { this.Build(); ydatepicker.Date = DateTime.Now.Date; comboboxDriver.ItemsEnum = typeof(Drivers); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var filter = new EmployeeFilterViewModel(); filter.SetAndRefilterAtOnce( x => x.RestrictCategory = EmployeeCategory.driver, x => x.Status = EmployeeStatus.IsWorking ); var driverFactory = new EmployeeJournalFactory(filter); evmeDriver.SetEntityAutocompleteSelectorFactory(driverFactory.CreateEmployeeAutocompleteSelectorFactory()); ySpecCmbNonReturnReason.ItemsList = UoW.Session.QueryOver <NonReturnReason>().List(); buttonCreateRepot.Clicked += (s, a) => OnUpdate(true); checkOneDriver.Toggled += OnCheckOneDriverToggled; }
public FirstSecondClientReport(IDiscountReasonRepository discountReasonRepository) { if (discountReasonRepository == null) { throw new ArgumentNullException(nameof(discountReasonRepository)); } Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var reasons = discountReasonRepository.GetDiscountReasons(UoW); yCpecCmbDiscountReason.ItemsList = reasons; daterangepicker.StartDate = DateTime.Now.AddDays(-7); daterangepicker.EndDate = DateTime.Now.AddDays(1); var employeeFactory = new EmployeeJournalFactory(); evmeAuthor.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingOfficeEmployeeAutocompleteSelectorFactory()); buttonCreateReport.Clicked += (sender, e) => OnUpdate(true); }
public DefectiveItemsReport() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); yEnumCmbSource.ItemsEnum = typeof(DefectSource); yEnumCmbSource.AddEnumToHideList(new Enum[] { DefectSource.None }); var driverFilter = new EmployeeFilterViewModel(); driverFilter.SetAndRefilterAtOnce( x => x.Status = EmployeeStatus.IsWorking, x => x.RestrictCategory = EmployeeCategory.driver); var employeeFactory = new EmployeeJournalFactory(driverFilter); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); datePeriod.StartDate = datePeriod.EndDate = DateTime.Today; buttonRun.Clicked += (sender, e) => OnUpdate(true); datePeriod.PeriodChanged += (sender, e) => ValidateParameters(); }
void ConfigureDlg() { if (Entity.EmployeeDocument == null && Entity.Driver != null) { GetDocument(); } ylabelNumber.Binding.AddBinding(Entity, x => x.Title, x => x.LabelProp).InitializeFromSource(); var orgFactory = new OrganizationJournalFactory(); evmeOrganisation.SetEntityAutocompleteSelectorFactory(orgFactory.CreateOrganizationAutocompleteSelectorFactory()); evmeOrganisation.Binding.AddBinding(Entity, x => x.Organization, x => x.Subject).InitializeFromSource(); evmeOrganisation.Changed += (sender, e) => UpdateStates(); var driverFilter = new EmployeeFilterViewModel(); driverFilter.SetAndRefilterAtOnce( x => x.Status = EmployeeStatus.IsWorking, x => x.RestrictCategory = EmployeeCategory.driver); var employeeFactory = new EmployeeJournalFactory(driverFilter); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory()); evmeDriver.Binding.AddBinding(Entity, x => x.Driver, x => x.Subject).InitializeFromSource(); evmeDriver.Changed += (sender, e) => UpdateStates(); entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(new CarJournalFactory(MainClass.MainWin.NavigationManager).CreateCarAutocompleteSelectorFactory()); entityviewmodelentryCar.Binding.AddBinding(Entity, x => x.Car, x => x.Subject).InitializeFromSource(); entityviewmodelentryCar.CompletionPopupSetWidth(false); entityviewmodelentryCar.Changed += (sender, e) => UpdateStates(); RefreshParserRootObject(); templatewidget.CanRevertCommon = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("can_set_common_additionalagreement"); templatewidget.Binding.AddBinding(Entity, e => e.DocumentTemplate, w => w.Template).InitializeFromSource(); templatewidget.Binding.AddBinding(Entity, e => e.ChangedTemplateFile, w => w.ChangedDoc).InitializeFromSource(); templatewidget.BeforeOpen += Templatewidget_BeforeOpen; UpdateStates(); }
private void ConfigureDlg() { if (!_canEdit) { MessageDialogHelper.RunWarningDialog("Не достаточно прав. Обратитесь к руководителю."); UpdateSensitivity(); } if (_canEdit && Entity.Status != RouteListStatus.Closed) { if (!Entity.RecountMileage()) { FailInitialize = true; return; } } buttonAcceptFine.Clicked += ButtonAcceptFineOnClicked; entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(new CarJournalFactory(MainClass.MainWin.NavigationManager).CreateCarAutocompleteSelectorFactory()); entityviewmodelentryCar.Binding.AddBinding(Entity, e => e.Car, w => w.Subject).InitializeFromSource(); entityviewmodelentryCar.CompletionPopupSetWidth(false); var employeeFactory = new EmployeeJournalFactory(); evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeDriver.Binding.AddBinding(Entity, rl => rl.Driver, widget => widget.Subject).InitializeFromSource(); evmeForwarder.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeForwarder.Binding .AddBinding(Entity, rl => rl.Forwarder, widget => widget.Subject) .AddBinding(Entity, rl => rl.CanAddForwarder, widget => widget.Sensitive) .InitializeFromSource(); evmeLogistician.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeLogistician.Binding.AddBinding(Entity, rl => rl.Logistician, widget => widget.Subject).InitializeFromSource(); speccomboShift.ItemsList = _deliveryShiftRepository.ActiveShifts(UoWGeneric); speccomboShift.Binding.AddBinding(Entity, rl => rl.Shift, widget => widget.SelectedItem).InitializeFromSource(); datePickerDate.Binding.AddBinding(Entity, rl => rl.Date, widget => widget.Date).InitializeFromSource(); yspinConfirmedDistance.Binding.AddBinding(Entity, rl => rl.ConfirmedDistance, widget => widget.ValueAsDecimal).InitializeFromSource(); yentryRecalculatedDistance.Binding.AddBinding(Entity, rl => rl.RecalculatedDistance, widget => widget.Text, new DecimalToStringConverter()).InitializeFromSource(); ytreeviewAddresses.ColumnsConfig = ColumnsConfigFactory.Create <RouteListKeepingItemNode>() .AddColumn("Заказ") .AddTextRenderer(node => node.RouteListItem.Order.Id.ToString()) .AddColumn("Адрес") .AddTextRenderer(node => String.Format("{0} д.{1}", node.RouteListItem.Order.DeliveryPoint.Street, node.RouteListItem.Order.DeliveryPoint.Building)) .AddColumn("Время") .AddTextRenderer(node => node.RouteListItem.Order.DeliverySchedule == null ? "" : node.RouteListItem.Order.DeliverySchedule.Name) .AddColumn("Статус") .AddEnumRenderer(node => node.Status).Editing(false) .AddColumn("Доставка за час") .AddToggleRenderer(x => x.RouteListItem.Order.IsFastDelivery).Editing(false) .AddColumn("Последнее редактирование") .AddTextRenderer(node => node.LastUpdate) .RowCells() .AddSetter <CellRenderer>((cell, node) => cell.CellBackgroundGdk = node.RowColor) .Finish(); items = new List <RouteListKeepingItemNode>(); foreach (var item in Entity.Addresses) { items.Add(new RouteListKeepingItemNode { RouteListItem = item }); } items.Sort((x, y) => { if (x.RouteListItem.StatusLastUpdate.HasValue && y.RouteListItem.StatusLastUpdate.HasValue) { if (x.RouteListItem.StatusLastUpdate > y.RouteListItem.StatusLastUpdate) { return(1); } if (x.RouteListItem.StatusLastUpdate < y.RouteListItem.StatusLastUpdate) { return(-1); } } return(0); }); ytreeviewAddresses.ItemsDataSource = items; ytextviewMileageComment.Binding.AddBinding(Entity, x => x.MileageComment, w => w.Buffer.Text).InitializeFromSource(); //Телефон phoneLogistican.MangoManager = phoneDriver.MangoManager = phoneForwarder.MangoManager = MainClass.MainWin.MangoManager; phoneLogistican.Binding.AddBinding(Entity, e => e.Logistician, w => w.Employee).InitializeFromSource(); phoneDriver.Binding.AddBinding(Entity, e => e.Driver, w => w.Employee).InitializeFromSource(); phoneForwarder.Binding.AddBinding(Entity, e => e.Forwarder, w => w.Employee).InitializeFromSource(); }
private void ConfigureEntityViewModelEntry() { var incomeCategoryFilter = new IncomeCategoryJournalFilterViewModel(); var expenseCategoryFilter = new ExpenseCategoryJournalFilterViewModel { ExcludedIds = new CategoryRepository(new ParametersProvider()).ExpenseSelfDeliveryCategories(UoW).Select(x => x.Id), HidenByDefault = true }; var commonServices = ServicesConfig.CommonServices; IFileChooserProvider chooserIncomeProvider = new FileChooser("Приход " + DateTime.Now + ".csv"); IFileChooserProvider chooserExpenseProvider = new FileChooser("Расход " + DateTime.Now + ".csv"); var employeeJournalFactory = new EmployeeJournalFactory(); var subdivisionJournalFactory = new SubdivisionJournalFactory(); var incomeCategoryAutocompleteSelectorFactory = new SimpleEntitySelectorFactory <IncomeCategory, IncomeCategoryViewModel>( () => { var incomeCategoryJournalViewModel = new SimpleEntityJournalViewModel <IncomeCategory, IncomeCategoryViewModel>( x => x.Name, () => new IncomeCategoryViewModel( EntityUoWBuilder.ForCreate(), UnitOfWorkFactory.GetDefaultFactory, commonServices, chooserIncomeProvider, incomeCategoryFilter, employeeJournalFactory, subdivisionJournalFactory ), node => new IncomeCategoryViewModel( EntityUoWBuilder.ForOpen(node.Id), UnitOfWorkFactory.GetDefaultFactory, commonServices, chooserIncomeProvider, incomeCategoryFilter, employeeJournalFactory, subdivisionJournalFactory ), UnitOfWorkFactory.GetDefaultFactory, commonServices ) { SelectionMode = JournalSelectionMode.Single }; return(incomeCategoryJournalViewModel); }); var expenseCategoryAutocompleteSelectorFactory = new SimpleEntitySelectorFactory <ExpenseCategory, ExpenseCategoryViewModel>( () => { var expenseCategoryJournalViewModel = new SimpleEntityJournalViewModel <ExpenseCategory, ExpenseCategoryViewModel>( x => x.Name, () => new ExpenseCategoryViewModel( EntityUoWBuilder.ForCreate(), UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices, chooserExpenseProvider, expenseCategoryFilter, employeeJournalFactory, subdivisionJournalFactory ), node => new ExpenseCategoryViewModel( EntityUoWBuilder.ForOpen(node.Id), UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices, chooserExpenseProvider, expenseCategoryFilter, employeeJournalFactory, subdivisionJournalFactory ), UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices ) { SelectionMode = JournalSelectionMode.Single }; expenseCategoryJournalViewModel.SetFilter(expenseCategoryFilter, filter => Restrictions.Not(Restrictions.In("Id", filter.ExcludedIds.ToArray()))); return(expenseCategoryJournalViewModel); }); entityVMEntryCashIncomeCategory.SetEntityAutocompleteSelectorFactory(incomeCategoryAutocompleteSelectorFactory); entityVMEntryCashExpenseCategory.SetEntityAutocompleteSelectorFactory(expenseCategoryAutocompleteSelectorFactory); }
void ConfigureDlg() { if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.WriteoffEdit, Entity.WriteoffWarehouse)) { FailInitialize = true; return; } var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.WriteoffEdit, Entity.WriteoffWarehouse); evmeEmployee.IsEditable = textComment.Editable = editing; writeoffdocumentitemsview1.Sensitive = editing && (Entity.WriteoffWarehouse != null || Entity.Client != null); textComment.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource(); labelTimeStamp.Binding.AddBinding(Entity, e => e.DateString, w => w.LabelProp).InitializeFromSource(); var clientFactory = new CounterpartyJournalFactory(); evmeCounterparty.SetEntityAutocompleteSelectorFactory(clientFactory.CreateCounterpartyAutocompleteSelectorFactory()); evmeCounterparty.Binding.AddBinding(Entity, e => e.Client, w => w.Subject).InitializeFromSource(); evmeCounterparty.Changed += OnReferenceCounterpartyChanged; ySpecCmbWarehouses.ItemsList = StoreDocumentHelper.GetRestrictedWarehousesList(UoW, WarehousePermissions.WriteoffEdit); ySpecCmbWarehouses.Binding.AddBinding(Entity, e => e.WriteoffWarehouse, w => w.SelectedItem).InitializeFromSource(); ySpecCmbWarehouses.ItemSelected += (sender, e) => { writeoffdocumentitemsview1.Sensitive = editing && (Entity.WriteoffWarehouse != null || Entity.Client != null); }; var dpFactory = new DeliveryPointJournalFactory(_deliveryPointJournalFilterViewModel); evmeDeliveryPoint.SetEntityAutocompleteSelectorFactory(dpFactory.CreateDeliveryPointByClientAutocompleteSelectorFactory()); evmeDeliveryPoint.CanEditReference = false; evmeDeliveryPoint.Binding.AddBinding(Entity, e => e.DeliveryPoint, w => w.Subject).InitializeFromSource(); var userHasOnlyAccessToWarehouseAndComplaints = ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_only_to_warehouse_and_complaints") && !ServicesConfig.CommonServices.UserService.GetCurrentUser(UoW).IsAdmin; if (userHasOnlyAccessToWarehouseAndComplaints) { evmeEmployee.CanEditReference = false; } var employeeFactory = new EmployeeJournalFactory(); evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory()); evmeEmployee.Binding.AddBinding(Entity, e => e.ResponsibleEmployee, w => w.Subject).InitializeFromSource(); comboType.ItemsEnum = typeof(WriteoffType); evmeDeliveryPoint.Sensitive = evmeCounterparty.Sensitive = (UoWGeneric.Root.Client != null); comboType.EnumItemSelected += (object sender, Gamma.Widgets.ItemSelectedEventArgs e) => { ySpecCmbWarehouses.Sensitive = WriteoffType.warehouse.Equals(comboType.SelectedItem); evmeDeliveryPoint.Sensitive = WriteoffType.counterparty.Equals(comboType.SelectedItem) && UoWGeneric.Root.Client != null; evmeCounterparty.Sensitive = WriteoffType.counterparty.Equals(comboType.SelectedItem); }; //FIXME Списание с контрагента не реализовано. Поэтому блокирует выбор типа списания. comboType.Sensitive = false; comboType.SelectedItem = UoWGeneric.Root.Client != null ? WriteoffType.counterparty : WriteoffType.warehouse; writeoffdocumentitemsview1.DocumentUoW = UoWGeneric; Entity.ObservableItems.ElementAdded += (aList, aIdx) => ySpecCmbWarehouses.Sensitive = !Entity.ObservableItems.Any(); Entity.ObservableItems.ElementRemoved += (aList, aIdx, aObject) => ySpecCmbWarehouses.Sensitive = !Entity.ObservableItems.Any(); ySpecCmbWarehouses.Sensitive = editing && !Entity.Items.Any(); var permmissionValidator = new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), _employeeRepository); Entity.CanEdit = permmissionValidator.Validate( typeof(WriteoffDocument), ServicesConfig.UserService.CurrentUserId, nameof(RetroactivelyClosePermission)); if (!Entity.CanEdit && Entity.TimeStamp.Date != DateTime.Now.Date) { ySpecCmbWarehouses.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource(); evmeCounterparty.Sensitive = false; evmeDeliveryPoint.Sensitive = false; comboType.Sensitive = false; evmeEmployee.Sensitive = false; textComment.Sensitive = false; writeoffdocumentitemsview1.Sensitive = false; buttonSave.Sensitive = false; } else { Entity.CanEdit = true; } }