Ejemplo n.º 1
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 FuelTransferDocumentViewModel(
            IEntityUoWBuilder uoWBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IEmployeeService employeeService,
            ISubdivisionRepository subdivisionRepository,
            IFuelRepository fuelRepository,
            ICommonServices commonServices,
            IEmployeeJournalFactory employeeJournalFactory,
            ICarJournalFactory carJournalFactory,
            IReportViewOpener reportViewOpener
            ) : base(uoWBuilder, unitOfWorkFactory, 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.employeeJournalFactory = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            this.carJournalFactory      = carJournalFactory ?? throw new ArgumentNullException(nameof(carJournalFactory));
            this.reportViewOpener       = reportViewOpener ?? throw new ArgumentNullException(nameof(reportViewOpener));
            TabName = "Документ перемещения топлива";

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

            FuelBalanceViewModel = new FuelBalanceViewModel(subdivisionRepository, fuelRepository);

            UpdateCashSubdivisions();
            UpdateFuelTypes();
            UpdateBalanceCache();

            if (uoWBuilder.IsNewEntity)
            {
                Entity.CreationTime = DateTime.Now;
                Entity.Author       = CurrentEmployee;
            }

            ConfigureEntries();
        }