コード例 #1
0
 public GuiltyItemViewModel(
     ComplaintGuiltyItem entity,
     ICommonServices commonServices,
     ISubdivisionRepository subdivisionRepository,
     IEntityAutocompleteSelectorFactory employeeSelectorFactory,
     IUnitOfWork uow,
     bool fromComplaintsJournalFilter = false
     ) : base(entity, commonServices)
 {
     UoW = uow ?? throw new ArgumentNullException(nameof(uow));
     EmployeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
     if (subdivisionRepository == null)
     {
         throw new ArgumentNullException(nameof(subdivisionRepository));
     }
     ConfigureEntityPropertyChanges();
     AllDepartments       = subdivisionRepository.GetAllDepartmentsOrderedByName(UoW);
     HideClientFromGuilty = !fromComplaintsJournalFilter;
 }
コード例 #2
0
 public SubdivisionViewModel(
     IEntityUoWBuilder uoWBuilder,
     IUnitOfWorkFactory unitOfWorkFactory,
     ICommonServices commonServices,
     IEntityAutocompleteSelectorFactory employeeSelectorFactory,
     IPermissionRepository permissionRepository,
     ISalesPlanJournalFactory salesPlanJournalFactory,
     INomenclatureJournalFactory nomenclatureSelectorFactory,
     ISubdivisionRepository subdivisionRepository
     ) : base(uoWBuilder, unitOfWorkFactory, commonServices)
 {
     SubdivisionRepository         = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
     PresetSubdivisionPermissionVM = new PresetSubdivisionPermissionsViewModel(UoW, permissionRepository, Entity);
     EmployeeSelectorFactory       = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
     SalesPlanSelectorFactory      = (salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory)))
                                     .CreateSalesPlanAutocompleteSelectorFactory(nomenclatureSelectorFactory);
     ConfigureEntityChangingRelations();
     CreateCommands();
 }
コード例 #3
0
        public CreateComplaintViewModel(Order order,
                                        IEntityUoWBuilder uowBuilder,
                                        IUnitOfWorkFactory unitOfWorkFactory,
                                        IEmployeeService employeeService,
                                        IEntityAutocompleteSelectorFactory employeeSelectorFactory,
                                        IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
                                        ISubdivisionRepository subdivisionRepository,
                                        ICommonServices commonServices,
                                        IEntityAutocompleteSelectorFactory nomenclatureSelectorFactory,
                                        INomenclatureRepository nomenclatureRepository,
                                        IUserRepository userRepository,
                                        string phone = null) : this(uowBuilder, unitOfWorkFactory, employeeService, employeeSelectorFactory, counterpartySelectorFactory, subdivisionRepository, commonServices, nomenclatureSelectorFactory, nomenclatureRepository, userRepository, phone)
        {
            Order _order = UoW.GetById <Order>(order.Id);

            Entity.Order        = _order;
            Entity.Counterparty = _order.Client;
            Entity.Phone        = phone;
        }
コード例 #4
0
        public OrderJournalViewModel(
            OrderJournalFilterViewModel filterViewModel,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IEmployeeService employeeService,
            IEntityAutocompleteSelectorFactory nomenclatureSelectorFactory,
            IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            this.commonServices              = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            this.employeeService             = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.nomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            this.userRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            this.nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.counterpartySelectorFactory = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));

            TabName = "Журнал заказов";

            userHaveAccessToRetail = commonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_to_retail");

            RegisterOrders();
            RegisterOrdersWithoutShipmentForDebt();
            RegisterOrdersWithoutShipmentForPayment();
            RegisterOrdersWithoutShipmentForAdvancePayment();

            var threadLoader = DataLoader as ThreadDataLoader <OrderJournalNode>;

            threadLoader.MergeInOrderBy(x => x.CreateDate, true);

            FinishJournalConfiguration();

            UpdateOnChanges(
                typeof(VodovozOrder),
                typeof(OrderWithoutShipmentForDebt),
                typeof(OrderWithoutShipmentForPayment),
                typeof(OrderWithoutShipmentForAdvancePayment),
                typeof(OrderWithoutShipmentForPaymentItem),
                typeof(OrderWithoutShipmentForAdvancePaymentItem),
                typeof(OrderItem)
                );
        }
コード例 #5
0
        public ComplaintDiscussionsViewModel(
            Complaint entity,
            ITdiTab dialogTab,
            IUnitOfWork uow,
            IFilePickerService filePickerService,
            IEmployeeService employeeService,
            ICommonServices commonServices,
            IEntityAutocompleteSelectorFactory employeeSelectorFactory
            ) : base(entity, commonServices)
        {
            this.employeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
            this.filePickerService       = filePickerService ?? throw new ArgumentNullException(nameof(filePickerService));
            this.employeeService         = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.dialogTab = dialogTab ?? throw new ArgumentNullException(nameof(dialogTab));

            UoW = uow;
            CreateCommands();
            ConfigureEntityPropertyChanges();
            FillDiscussionsViewModels();
        }
コード例 #6
0
ファイル: SetBillsReport.cs プロジェクト: Art8m/Vodovozfork
        public SetBillsReport(
            IUnitOfWorkFactory unitOfWorkFactory,
            IEntityAutocompleteSelectorFactory subdivisionSelectorFactory)
        {
            if (subdivisionSelectorFactory == null)
            {
                throw new ArgumentNullException(nameof(subdivisionSelectorFactory));
            }

            Build();

            UoW = unitOfWorkFactory.CreateWithoutRoot();

            daterangepickerOrderCreation.StartDate = DateTime.Now;
            daterangepickerOrderCreation.EndDate   = DateTime.Now;
            ybuttonCreateReport.Clicked           += (sender, e) => { OnUpdate(true); };
            ybuttonCreateReport.TooltipText        = $"Формирует отчет по заказам в статусе '{OrderStatus.WaitForPayment.GetEnumTitle()}'";

            entrySubdivision.SetEntityAutocompleteSelectorFactory(subdivisionSelectorFactory);
        }
コード例 #7
0
        public ComplaintFilterViewModel(
            ICommonServices commonServices,
            ISubdivisionRepository subdivisionRepository,
            IEntityAutocompleteSelectorFactory employeeSelectorFactory
            )
        {
            this.commonServices = commonServices ?? throw new ArgumentNullException(nameof(commonServices));

            GuiltyItemVM = new GuiltyItemViewModel(
                new ComplaintGuiltyItem(),
                commonServices,
                subdivisionRepository,
                employeeSelectorFactory,
                UoW
                );

            GuiltyItemVM.Entity.OnGuiltyTypeChange = () => {
                if (GuiltyItemVM.Entity.GuiltyType != ComplaintGuiltyTypes.Employee)
                {
                    GuiltyItemVM.Entity.Employee = null;
                }
                if (GuiltyItemVM.Entity.GuiltyType != ComplaintGuiltyTypes.Subdivision)
                {
                    GuiltyItemVM.Entity.Subdivision = null;
                }
            };
            GuiltyItemVM.OnGuiltyItemReady += (sender, e) => Update();

            UpdateWith(
                x => x.ComplaintType,
                x => x.ComplaintStatus,
                x => x.Employee,
                x => x.StartDate,
                x => x.EndDate,
                x => x.Subdivision,
                x => x.FilterDateType,
                x => x.ComplaintKind,
                x => x.ComplaintDiscussionStatus
                );
        }
コード例 #8
0
        public ProducedProductionReport(
            IEntityAutocompleteSelectorFactory nomenclatureSelectorFactory,
            IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
            INomenclatureRepository nomenclatureRepository)
        {
            this.Build();

            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            yenumcomboboxMonths.ItemsEnum    = typeof(Month);
            yenumcomboboxMonths.SelectedItem = (Month)(DateTime.Now.AddMonths(-1).Month);

            ylistcomboboxYear.ItemsList    = Enumerable.Range(DateTime.Now.AddYears(-10).Year, 21).Reverse();
            ylistcomboboxYear.SelectedItem = DateTime.Today.Year;

            ycomboboxProduction.SetRenderTextFunc <Warehouse>(x => x.Name);
            ycomboboxProduction.ItemsList = UoW.Session.QueryOver <Warehouse>().Where(x => x.TypeOfUse == WarehouseUsing.Production).List();

            entryreferenceNomenclature.SetEntityAutocompleteSelectorFactory(
                new EntityAutocompleteSelectorFactory <NomenclaturesJournalViewModel>(typeof(Nomenclature),
                                                                                      () =>
            {
                var nomenclatureFilter = new NomenclatureFilterViewModel();
                return(new NomenclaturesJournalViewModel(
                           nomenclatureFilter,
                           UnitOfWorkFactory.GetDefaultFactory,
                           ServicesConfig.CommonServices,
                           new EmployeeService(),
                           nomenclatureSelectorFactory,
                           counterpartySelectorFactory,
                           nomenclatureRepository,
                           UserSingletonRepository.GetInstance()
                           ));
            })
                );
            buttonCreateReport.Sensitive = true;
            buttonCreateReport.Clicked  += OnButtonCreateReportClicked;
        }
コード例 #9
0
        public ResidueViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory uowFactory,
            IEmployeeService employeeService,
            IRepresentationEntityPicker entityPicker,
            IBottlesRepository bottlesRepository,
            IDepositRepository depositRepository,
            IMoneyRepository moneyRepository,
            ICommonServices commonServices,
            IEntityAutocompleteSelectorFactory employeeSelectorFactory
            )
            : base(uowBuilder, uowFactory, commonServices)
        {
            this.employeeService   = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.entityPicker      = entityPicker ?? throw new ArgumentNullException(nameof(entityPicker));
            this.bottlesRepository = bottlesRepository ?? throw new ArgumentNullException(nameof(bottlesRepository));
            this.depositRepository = depositRepository ?? throw new ArgumentNullException(nameof(depositRepository));
            this.moneyRepository   = moneyRepository ?? throw new ArgumentNullException(nameof(moneyRepository));
            TabName = "Ввод остатков";
            if (CurrentEmployee == null)
            {
                AbortOpening("Ваш пользователь не привязан к действующему сотруднику, вы не можете создавать складские документы, " +
                             "так как некого указывать в качестве кладовщика.", "Невозможно открыть ввод остатков");
            }
            if (UoW.IsNew)
            {
                Entity.Author = CurrentEmployee;
                Entity.Date   = new DateTime(2017, 4, 23);
            }
            CreateCommands();
            ConfigureEntityPropertyChanges();
            UpdateResidue();
            GuiltyItemsVM = new GuiltyItemsViewModel(
                new Complaint(), UoW, commonServices, new SubdivisionRepository(new ParametersProvider()), employeeSelectorFactory);

            Entity.ObservableEquipmentDepositItems.PropertyOfElementChanged += OnObservableEquipmentItemsPropertyOfElementChanged;
        }
コード例 #10
0
        public PromotionalSetViewModel(IEntityUoWBuilder uowBuilder,
                                       IUnitOfWorkFactory unitOfWorkFactory,
                                       ICommonServices commonServices,
                                       IEmployeeService employeeService,
                                       IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
                                       IEntityAutocompleteSelectorFactory nomenclatureSelectorFactory,
                                       INomenclatureRepository nomenclatureRepository,
                                       IUserRepository userRepository) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            this.employeeService             = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.nomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            this.userRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            this.counterpartySelectorFactory = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));
            this.nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));

            if (!CanRead)
            {
                AbortOpening("У вас недостаточно прав для просмотра");
            }

            TabName = "Рекламные наборы";
            UoW     = uowBuilder.CreateUoW <PromotionalSet>(unitOfWorkFactory);
            CreateCommands();
        }
コード例 #11
0
        public ComplaintViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory uowFactory,
            ICommonServices commonServices,
            IUndeliveredOrdersJournalOpener undeliveryViewOpener,
            IEmployeeService employeeService,
            IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
            IFilePickerService filePickerService,
            ISubdivisionRepository subdivisionRepository,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository,
            IOrderSelectorFactory orderSelectorFactory,
            IEmployeeJournalFactory driverJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IGtkTabsOpener gtkDialogsOpener,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            ISalesPlanJournalFactory salesPlanJournalFactory,
            INomenclatureSelectorFactory nomenclatureSelector,
            IUndeliveredOrdersRepository undeliveredOrdersRepository) : base(uowBuilder, uowFactory, commonServices)
        {
            _filePickerService          = filePickerService ?? throw new ArgumentNullException(nameof(filePickerService));
            _subdivisionRepository      = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            CounterpartySelectorFactory = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));
            _undeliveryViewOpener       = undeliveryViewOpener ?? throw new ArgumentNullException(nameof(undeliveryViewOpener));
            EmployeeService             = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            NomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            UserRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _salesPlanJournalFactory    = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            NomenclatureSelector        = nomenclatureSelector ?? throw new ArgumentNullException(nameof(nomenclatureSelector));
            UndeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));

            OrderSelectorFactory           = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            EmployeeJournalFactory         = driverJournalFactory ?? throw new ArgumentNullException(nameof(driverJournalFactory));
            _employeeSelectorFactory       = EmployeeJournalFactory.CreateEmployeeAutocompleteSelectorFactory();
            CounterpartyJournalFactory     = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            DeliveryPointJournalFactory    = deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory));
            SubdivisionJournalFactory      = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            GtkDialogsOpener               = gtkDialogsOpener ?? throw new ArgumentNullException(nameof(gtkDialogsOpener));
            UndeliveredOrdersJournalOpener = undeliveredOrdersJournalOpener ?? throw new ArgumentNullException(nameof(undeliveredOrdersJournalOpener));

            Entity.ObservableComplaintDiscussions.ElementChanged     += ObservableComplaintDiscussions_ElementChanged;
            Entity.ObservableComplaintDiscussions.ListContentChanged += ObservableComplaintDiscussions_ListContentChanged;
            Entity.ObservableFines.ListContentChanged += ObservableFines_ListContentChanged;

            if (uowBuilder.IsNewEntity)
            {
                AbortOpening("Невозможно создать новую рекламацию из текущего диалога, необходимо использовать диалоги создания");
            }

            if (CurrentEmployee == null)
            {
                AbortOpening("Невозможно открыть рекламацию так как к вашему пользователю не привязан сотрудник");
            }

            ConfigureEntityChangingRelations();

            CreateCommands();

            _complaintKinds = complaintKindSource = UoW.GetAll <ComplaintKind>().Where(k => !k.IsArchive).ToList();

            ComplaintObject = Entity.ComplaintKind?.ComplaintObject;

            TabName = $"Рекламация №{Entity.Id} от {Entity.CreationDate.ToShortDateString()}";
        }