public IncomingInvoiceViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IWarehousePermissionService warehousePermissionService,
            IEmployeeService employeeService,
            IEntityExtendedPermissionValidator entityExtendedPermissionValidator,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IOrderSelectorFactory orderSelectorFactory,
            IWarehouseRepository warehouseRepository,
            IRDLPreviewOpener rdlPreviewOpener,
            ICommonServices commonServices,
            IStockRepository stockRepository)
            : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            this.employeeService = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.entityExtendedPermissionValidator = entityExtendedPermissionValidator ?? throw new ArgumentNullException(nameof(entityExtendedPermissionValidator));
            this.nomenclatureSelectorFactory       = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.orderSelectorFactory    = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            this.warehouseRepository     = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            this.rdlPreviewOpener        = rdlPreviewOpener ?? throw new ArgumentNullException(nameof(rdlPreviewOpener));
            _stockRepository             = stockRepository ?? throw new ArgumentNullException(nameof(stockRepository));
            warehousePermissionValidator = warehousePermissionService.GetValidator(CommonServices.UserService.CurrentUserId);

            canEditRectroactively = entityExtendedPermissionValidator.Validate(typeof(MovementDocument), CommonServices.UserService.CurrentUserId, nameof(RetroactivelyClosePermission));
            ConfigureEntityChangingRelations();

            ValidationContext.ServiceContainer.AddService(typeof(IWarehouseRepository), warehouseRepository);
            UserHasOnlyAccessToWarehouseAndComplaints =
                CommonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_only_to_warehouse_and_complaints") &&
                !CurrentUser.IsAdmin;
        }
        public MovementDocumentViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IWarehousePermissionService warehousePermissionService,
            IEmployeeService employeeService,
            IEntityExtendedPermissionValidator entityExtendedPermissionValidator,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IOrderSelectorFactory orderSelectorFactory,
            IWarehouseRepository warehouseRepository,
            IUserRepository userRepository,
            IRDLPreviewOpener rdlPreviewOpener,
            ICommonServices commonServices)
            : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            this.unitOfWorkFactory = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this.employeeService   = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.entityExtendedPermissionValidator = entityExtendedPermissionValidator ?? throw new ArgumentNullException(nameof(entityExtendedPermissionValidator));
            this.nomenclatureSelectorFactory       = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.orderSelectorFactory    = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            this.warehouseRepository     = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            this.userRepository          = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            this.rdlPreviewOpener        = rdlPreviewOpener ?? throw new ArgumentNullException(nameof(rdlPreviewOpener));
            warehousePermissionValidator = warehousePermissionService.GetValidator(CommonServices.UserService.CurrentUserId);

            canEditRectroactively = entityExtendedPermissionValidator.Validate(typeof(MovementDocument), CommonServices.UserService.CurrentUserId, nameof(RetroactivelyClosePermission));
            ConfigureEntityChangingRelations();
            if (UoW.IsNew)
            {
                Entity.DocumentType = MovementDocumentType.Transportation;
                SetDefaultWarehouseFrom();
            }
            ValidationContext.ServiceContainer.AddService(typeof(IWarehouseRepository), warehouseRepository);
        }
        public RetailOrderJournalViewModel(
            OrderJournalFilterViewModel filterViewModel,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IEmployeeService employeeService,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository,
            IOrderSelectorFactory orderSelectorFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IGtkTabsOpener gtkDialogsOpener,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            INomenclatureSelectorFactory nomenclatureSelector,
            IUndeliveredOrdersRepository undeliveredOrdersRepository) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            _commonServices         = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _employeeService        = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _nomenclatureRepository = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            _userRepository         = userRepository ?? throw new ArgumentNullException(nameof(userRepository));

            _orderSelectorFactory        = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _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));

            _nomenclatureSelectorFactory = nomenclatureSelector?.GetDefaultNomenclatureSelectorFactory()
                                           ?? throw new ArgumentNullException(nameof(_nomenclatureSelectorFactory));
            _counterpartySelectorFactory    = counterpartyJournalFactory.CreateCounterpartyAutocompleteSelectorFactory();
            _undeliveredOrdersJournalOpener =
                undeliveredOrdersJournalOpener ?? throw new ArgumentNullException(nameof(undeliveredOrdersJournalOpener));
            _undeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));

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

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

            var threadLoader = DataLoader as ThreadDataLoader <RetailOrderJournalNode>;

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

            FinishJournalConfiguration();

            UpdateOnChanges(
                typeof(VodovozOrder),
                typeof(OrderWithoutShipmentForDebt),
                typeof(OrderWithoutShipmentForPayment),
                typeof(OrderWithoutShipmentForAdvancePayment),
                typeof(OrderWithoutShipmentForPaymentItem),
                typeof(OrderWithoutShipmentForAdvancePaymentItem),
                typeof(OrderItem)
                );
        }
        public ComplaintDiscussionsViewModel(
            Complaint entity,
            ITdiTab dialogTab,
            IUnitOfWork uow,
            IFilePickerService filePickerService,
            IEmployeeService employeeService,
            ICommonServices commonServices,
            IEntityAutocompleteSelectorFactory employeeSelectorFactory,
            ISalesPlanJournalFactory salesPlanJournalFactory,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IUserRepository userRepository
            ) : base(entity, commonServices)
        {
            _employeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
            _filePickerService       = filePickerService ?? throw new ArgumentNullException(nameof(filePickerService));
            _employeeService         = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _dialogTab = dialogTab ?? throw new ArgumentNullException(nameof(dialogTab));
            _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            _userRepository = userRepository ?? throw new ArgumentNullException(nameof(userRepository));

            UoW = uow;
            CreateCommands();
            ConfigureEntityPropertyChanges();
            FillDiscussionsViewModels();
        }
        public CreateComplaintViewModel(Order order,
                                        IEntityUoWBuilder uowBuilder,
                                        IUnitOfWorkFactory unitOfWorkFactory,
                                        IEmployeeService employeeService,
                                        IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
                                        ISubdivisionRepository subdivisionRepository,
                                        ICommonServices commonServices,
                                        INomenclatureRepository nomenclatureRepository,
                                        IUserRepository userRepository,
                                        IFilePickerService filePickerService,
                                        IOrderSelectorFactory orderSelectorFactory,
                                        IEmployeeJournalFactory employeeJournalFactory,
                                        ICounterpartyJournalFactory counterpartyJournalFactory,
                                        IDeliveryPointJournalFactory deliveryPointJournalFactory,
                                        ISubdivisionJournalFactory subdivisionJournalFactory,
                                        IGtkTabsOpener gtkDialogsOpener,
                                        IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
                                        INomenclatureSelectorFactory nomenclatureSelector,
                                        IUndeliveredOrdersRepository undeliveredOrdersRepository,
                                        string phone = null) : this(uowBuilder, unitOfWorkFactory, employeeService, counterpartySelectorFactory, subdivisionRepository,
                                                                    commonServices, nomenclatureRepository, userRepository, filePickerService, orderSelectorFactory,
                                                                    employeeJournalFactory, counterpartyJournalFactory, deliveryPointJournalFactory, subdivisionJournalFactory, gtkDialogsOpener,
                                                                    undeliveredOrdersJournalOpener, nomenclatureSelector, undeliveredOrdersRepository, phone)
        {
            var currentOrder = UoW.GetById <Order>(order.Id);

            Entity.Order        = currentOrder;
            Entity.Counterparty = currentOrder.Client;
            Entity.Phone        = phone;
        }
        public FixedPricesViewModel(IUnitOfWork uow, IFixedPricesModel fixedPricesModel, INomenclatureSelectorFactory nomenclatureSelectorFactory, ITdiTab parentTab)
        {
            UoW = uow ?? throw new ArgumentNullException(nameof(uow));
            this.fixedPricesModel            = fixedPricesModel ?? throw new ArgumentNullException(nameof(fixedPricesModel));
            this.nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.parentTab = parentTab ?? throw new ArgumentNullException(nameof(parentTab));

            fixedPricesModel.FixedPricesUpdated += (sender, args) => UpdateFixedPrices();
            UpdateFixedPrices();
        }
        public CreateComplaintViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IEmployeeService employeeService,
            IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
            ISubdivisionRepository subdivisionRepository,
            ICommonServices commonServices,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository,
            IFilePickerService filePickerService,
            IOrderSelectorFactory orderSelectorFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IGtkTabsOpener gtkDialogsOpener,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            INomenclatureSelectorFactory nomenclatureSelector,
            IUndeliveredOrdersRepository undeliveredOrdersRepository,
            string phone = null
            ) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            _filePickerService          = filePickerService ?? throw new ArgumentNullException(nameof(filePickerService));
            EmployeeService             = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            NomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            UserRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            CounterpartySelectorFactory = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));
            this.subdivisionRepository  = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));

            OrderSelectorFactory           = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            EmployeeJournalFactory         = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _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));
            NomenclatureSelector        = nomenclatureSelector ?? throw new ArgumentNullException(nameof(nomenclatureSelector));
            UndeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));

            Entity.ComplaintType = ComplaintType.Client;
            Entity.SetStatus(ComplaintStatuses.Checking);
            ConfigureEntityPropertyChanges();
            Entity.Phone = phone;

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

            UserHasOnlyAccessToWarehouseAndComplaints =
                ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_only_to_warehouse_and_complaints") &&
                !ServicesConfig.CommonServices.UserService.GetCurrentUser(UoW).IsAdmin;

            TabName = "Новая клиентская рекламация";
        }
Example #8
0
        public FuelDocumentsJournalViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IEmployeeService employeeService,
            ISubdivisionRepository subdivisionRepository,
            IFuelRepository fuelRepository,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            ICarJournalFactory carJournalFactory,
            IReportViewOpener reportViewOpener,
            IFileChooserProvider fileChooserProvider,
            ExpenseCategoryJournalFilterViewModel expenseCategoryJournalFilterViewModel
            ) :
            base(unitOfWorkFactory, commonServices)
        {
            this.commonServices                        = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            this.employeeService                       = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.subdivisionRepository                 = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            this.fuelRepository                        = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));
            this.counterpartyJournalFactory            = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            this.nomenclatureSelectorFactory           = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.employeeJournalFactory                = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _subdivisionJournalFactory                 = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            this.carJournalFactory                     = carJournalFactory ?? throw new ArgumentNullException(nameof(carJournalFactory));
            this.reportViewOpener                      = reportViewOpener ?? throw new ArgumentNullException(nameof(reportViewOpener));
            this.fileChooserProvider                   = fileChooserProvider ?? throw new ArgumentNullException(nameof(fileChooserProvider));
            this.expenseCategoryJournalFilterViewModel = expenseCategoryJournalFilterViewModel ?? throw new ArgumentNullException(nameof(expenseCategoryJournalFilterViewModel));


            TabName = "Журнал учета топлива";

            var loader = new ThreadDataLoader <FuelDocumentJournalNode>(unitOfWorkFactory);

            loader.MergeInOrderBy(x => x.CreationDate, true);
            DataLoader = loader;

            RegisterIncomeInvoice();
            RegisterTransferDocument();
            RegisterWriteoffDocument();

            FinishJournalConfiguration();

            UpdateOnChanges(
                typeof(FuelIncomeInvoice),
                typeof(FuelIncomeInvoiceItem),
                typeof(FuelTransferDocument),
                typeof(FuelWriteoffDocument),
                typeof(FuelWriteoffDocumentItem)
                );
        }
 public SubdivisionsJournalViewModel(
     SubdivisionFilterViewModel filterViewModel,
     IUnitOfWorkFactory unitOfWorkFactory,
     ICommonServices commonServices,
     IEntityAutocompleteSelectorFactory employeeSelectorFactory,
     ISalesPlanJournalFactory salesPlanJournalFactory,
     INomenclatureSelectorFactory nomenclatureSelectorFactory
     ) : base(filterViewModel, unitOfWorkFactory, commonServices)
 {
     this.employeeSelectorFactory = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
     this.unitOfWorkFactory       = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
     _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
     _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
     TabName = "Выбор подразделения";
 }
Example #10
0
        public SalesPlanJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, ICommonServices commonServices,
                                         INomenclatureSelectorFactory nomenclatureSelectorFactory) : base(unitOfWorkFactory, commonServices)
        {
            this.unitOfWorkFactory       = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));

            TabName = "Журнал планов продаж";

            var threadLoader = DataLoader as ThreadDataLoader <SalesPlanJournalNode>;

            threadLoader.MergeInOrderBy(x => x.IsArchive, false);
            threadLoader.MergeInOrderBy(x => x.Id, false);

            UpdateOnChanges(typeof(SalesPlan));
        }
        public ComplaintKindJournalViewModel(ComplaintKindJournalFilterViewModel filterViewModel, IUnitOfWorkFactory unitOfWorkFactory,
                                             ICommonServices commonServices, IEntityAutocompleteSelectorFactory employeeSelectorFactory, ISalesPlanJournalFactory salesPlanJournalFactory,
                                             INomenclatureSelectorFactory nomenclatureSelectorFactory)
            : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            _employeeSelectorFactory     = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
            _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));

            TabName = "Виды рекламаций";

            UpdateOnChanges(
                typeof(ComplaintKind),
                typeof(ComplaintObject)
                );
        }
        public ComplaintKindViewModel(IEntityUoWBuilder uowBuilder, IUnitOfWorkFactory unitOfWorkFactory, ICommonServices commonServices,
                                      IEntityAutocompleteSelectorFactory employeeSelectorFactory, Action updateJournalAction, ISalesPlanJournalFactory salesPlanJournalFactory,
                                      INomenclatureSelectorFactory nomenclatureSelectorFactory) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            _employeeSelectorFactory     = employeeSelectorFactory ?? throw new ArgumentNullException(nameof(employeeSelectorFactory));
            _unitOfWorkFactory           = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            _commonServices              = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _updateJournalAction         = updateJournalAction ?? throw new ArgumentNullException(nameof(updateJournalAction));
            _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));

            ComplaintObjects     = UoW.Session.QueryOver <ComplaintObject>().List();
            _subdivisionsOnStart = new List <Subdivision>(Entity.Subdivisions);

            TabName = "Виды рекламаций";
        }
Example #13
0
        public FlyersJournalViewModel(
            IUnitOfWorkFactory uowFactory,
            ICommonServices commonServices,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IFlyerRepository flyerRepository,
            bool hideJournalForOpenDialog   = false,
            bool hideJournalForCreateDialog = false
            ) : base(uowFactory, commonServices, hideJournalForOpenDialog, hideJournalForCreateDialog)
        {
            _nomenclatureSelectorFactory =
                nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            _flyerRepository = flyerRepository ?? throw new ArgumentNullException(nameof(flyerRepository));

            TabName = "Журнал рекламных листовок";

            UpdateOnChanges(
                typeof(Flyer),
                typeof(FlyerActionTime));
        }
Example #14
0
 public SubdivisionViewModel(
     IEntityUoWBuilder uoWBuilder,
     IUnitOfWorkFactory unitOfWorkFactory,
     ICommonServices commonServices,
     IEntityAutocompleteSelectorFactory employeeSelectorFactory,
     IPermissionRepository permissionRepository,
     ISalesPlanJournalFactory salesPlanJournalFactory,
     INomenclatureSelectorFactory 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();
 }
Example #15
0
        public FlyerViewModel(
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            IFlyerRepository flyerRepository) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            FlyerAutocompleteSelectorFactory =
                (nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory)))
                .CreateNomenclatureForFlyerJournalFactory();
            _flyerRepository = flyerRepository ?? throw new ArgumentNullException(nameof(flyerRepository));

            if (!uowBuilder.IsNewEntity)
            {
                TabName = $"{Entity.FlyerNomenclature.Name}";
            }

            SetCurrentFlyerActionTime();
            AddServiceToValidationContext();
        }
Example #16
0
        public FuelIncomeInvoiceViewModel
        (
            IEntityUoWBuilder uowBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IEmployeeService employeeService,
            INomenclatureSelectorFactory nomenclatureSelectorFactory,
            ISubdivisionRepository subdivisionRepository,
            IFuelRepository fuelRepository,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            ICommonServices commonServices
        ) : base(uowBuilder, unitOfWorkFactory, commonServices)
        {
            this.employeeService             = employeeService;
            this.nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
            this.subdivisionRepository       = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            this.fuelRepository             = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));
            this.counterpartyJournalFactory = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            TabName = "Входящая накладная по топливу";

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

            if (uowBuilder.IsNewEntity)
            {
                Entity.СreationTime = DateTime.Now;
                Entity.Author       = CurrentEmployee;
            }

            FuelBalanceViewModel = new FuelBalanceViewModel(subdivisionRepository, fuelRepository);

            CreateCommands();
            ConfigEntityUpdateSubscribes();
            ConfigureEntityPropertyChanges();
            UpdateCashSubdivisions();
            UpdateBalanceCache();
            ValidationContext.ServiceContainer.AddService(typeof(IFuelRepository), fuelRepository);

            ConfigureEntries();
        }
 public IEntityAutocompleteSelectorFactory CreateSalesPlanAutocompleteSelectorFactory(INomenclatureSelectorFactory nomenclatureSelectorFactory)
 {
     return(new EntityAutocompleteSelectorFactory <SalesPlanJournalViewModel>(typeof(SalesPlan), () =>
     {
         return new SalesPlanJournalViewModel(UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices, nomenclatureSelectorFactory);
     }));
 }
 private void CreateNewDependencies()
 {
     _employeeJournalFactory      = new EmployeeJournalFactory();
     _salesPlanJournalFactory     = new SalesPlanJournalFactory();
     _nomenclatureSelectorFactory = new NomenclatureSelectorFactory();
 }
Example #19
0
        public ComplaintsJournalViewModel(
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            IEmployeeService employeeService,
            IEntityAutocompleteSelectorFactory counterpartySelectorFactory,
            IRouteListItemRepository routeListItemRepository,
            ISubdivisionService subdivisionService,
            ComplaintFilterViewModel filterViewModel,
            IFilePickerService filePickerService,
            ISubdivisionRepository subdivisionRepository,
            IReportViewOpener reportViewOpener,
            IGtkTabsOpener gtkDialogsOpener,
            INomenclatureRepository nomenclatureRepository,
            IUserRepository userRepository,
            IOrderSelectorFactory orderSelectorFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            ISalesPlanJournalFactory salesPlanJournalFactory,
            INomenclatureSelectorFactory nomenclatureSelector,
            IUndeliveredOrdersRepository undeliveredOrdersRepository) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            this._unitOfWorkFactory         = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this._commonServices            = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _undeliveredOrdersJournalOpener = undeliveredOrdersJournalOpener ?? throw new ArgumentNullException(nameof(undeliveredOrdersJournalOpener));
            _employeeService             = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            _counterpartySelectorFactory = counterpartySelectorFactory ?? throw new ArgumentNullException(nameof(counterpartySelectorFactory));
            _filePickerService           = filePickerService ?? throw new ArgumentNullException(nameof(filePickerService));
            _subdivisionRepository       = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _routeListItemRepository     = routeListItemRepository ?? throw new ArgumentNullException(nameof(routeListItemRepository));
            _subdivisionService          = subdivisionService ?? throw new ArgumentNullException(nameof(subdivisionService));
            _reportViewOpener            = reportViewOpener ?? throw new ArgumentNullException(nameof(reportViewOpener));
            _gtkDlgOpener                = gtkDialogsOpener ?? throw new ArgumentNullException(nameof(gtkDialogsOpener));
            _nomenclatureRepository      = nomenclatureRepository ?? throw new ArgumentNullException(nameof(nomenclatureRepository));
            _userRepository              = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _orderSelectorFactory        = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _counterpartyJournalFactory  = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            _deliveryPointJournalFactory = deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory));
            _subdivisionJournalFactory   = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _salesPlanJournalFactory     = salesPlanJournalFactory ?? throw new ArgumentNullException(nameof(salesPlanJournalFactory));
            _nomenclatureSelector        = nomenclatureSelector ?? throw new ArgumentNullException(nameof(nomenclatureSelector));
            _undeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));

            TabName = "Журнал рекламаций";

            RegisterComplaints();

            var threadLoader = DataLoader as ThreadDataLoader <ComplaintJournalNode>;

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

            FinishJournalConfiguration();

            FilterViewModel.SubdivisionService = subdivisionService;
            FilterViewModel.EmployeeService    = employeeService;

            var currentUserSettings        = userRepository.GetUserSettings(UoW, commonServices.UserService.CurrentUserId);
            var defaultSubdivision         = currentUserSettings.DefaultSubdivision;
            var currentEmployeeSubdivision = employeeService.GetEmployeeForUser(UoW, commonServices.UserService.CurrentUserId).Subdivision;

            FilterViewModel.CurrentUserSubdivision = currentEmployeeSubdivision;

            if (FilterViewModel.SubdivisionService.GetOkkId() == currentEmployeeSubdivision.Id)
            {
                FilterViewModel.ComplaintStatus = ComplaintStatuses.Checking;
            }
            else
            {
                if (currentUserSettings.UseEmployeeSubdivision)
                {
                    FilterViewModel.Subdivision = currentEmployeeSubdivision;
                }
                else
                {
                    FilterViewModel.Subdivision = defaultSubdivision;
                }

                FilterViewModel.ComplaintStatus = currentUserSettings.DefaultComplaintStatus;
            }

            UpdateOnChanges(
                typeof(Complaint),
                typeof(ComplaintGuiltyItem),
                typeof(ComplaintResult),
                typeof(Subdivision),
                typeof(ComplaintDiscussion),
                typeof(DeliveryPoint),
                typeof(Fine),
                typeof(Order),
                typeof(RouteList),
                typeof(RouteListItem),
                typeof(ComplaintObject)
                );
            this.DataLoader.ItemsListUpdated += (sender, e) => CurrentObjectChanged?.Invoke(this, new CurrentObjectChangedArgs(null));

            DataLoader.PostLoadProcessingFunc = BeforeItemsUpdated;
        }
Example #20
0
 public SalesPlanViewModel(IEntityUoWBuilder uoWBuilder, IUnitOfWorkFactory unitOfWorkFactory, ICommonServices commonServices, INomenclatureSelectorFactory nomenclatureSelectorFactory) : base(uoWBuilder, unitOfWorkFactory, commonServices)
 {
     _nomenclatureSelectorFactory = nomenclatureSelectorFactory ?? throw new ArgumentNullException(nameof(nomenclatureSelectorFactory));
     _unitOfWorkFactory           = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
     _commonServices = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
 }
Example #21
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()}";
        }