Example #1
0
        public void CreateFuelCashExpenseTest__Without_ExpenseCategory__Thrown_InvalidProgrammException_and_FuelCashExpense_must_be_null()
        {
            // arrange
            // имитация того что нужной статьи не было найдено
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => { return(null); };
            var             fuelDocument       = new FuelDocument();
            FuelType        fuelTypeMock       = Substitute.For <FuelType>();
            IUnitOfWork     uowMock            = Substitute.For <IUnitOfWork>();
            Subdivision     subdivisionMock    = Substitute.For <Subdivision>();
            Organization    organisationMock   = Substitute.For <Organization>();
            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            // act, assert
            Assert.Throws(typeof(InvalidProgramException), () => fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock));

            // additional assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null, "При исключении в момент создания операций, операции оплаты топлива не должно быть создано");
        }
Example #2
0
        public void SendTest__TransferDocument_FuelExpenseOperation_already_exists__Thrown_InvalidOperationException()
        {
            // arrange
            var cashier         = Substitute.For <Employee>();
            var subdivisionFrom = Substitute.For <Subdivision>();

            subdivisionFrom.Id.Returns(1);

            var subdivisionTo = Substitute.For <Subdivision>();

            subdivisionTo.Id.Returns(2);

            FuelType        fuelTypeMock       = Substitute.For <FuelType>();
            IUnitOfWork     uowMock            = Substitute.For <IUnitOfWork>();
            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionFrom, fuelTypeMock).Returns(50);

            var document = new FuelTransferDocument();

            document.FuelType = fuelTypeMock;
            document.Author   = Substitute.For <Employee>();
            document.Driver   = Substitute.For <Employee>();
            document.Car      = Substitute.For <Car>();

            document.CashSubdivisionFrom = subdivisionFrom;
            document.CashSubdivisionTo   = subdivisionTo;
            document.Status               = FuelTransferDocumentStatuses.New;
            document.TransferedLiters     = transferedLitersForSend;
            document.FuelExpenseOperation = Substitute.For <FuelExpenseOperation>();

            // act, assert
            Assert.Throws <InvalidOperationException>(() => document.Send(cashier, fuelRepositoryMock));
        }
Example #3
0
 public HomeController(ICarRepository carRep, ICategoryRepository categoryRep, IFuelRepository fuelRep, IGearRepository gearRep)
 {
     this._carRep      = carRep;
     this._categoryRep = categoryRep;
     this._fuelRep     = fuelRep;
     this._gearRep     = gearRep;
 }
Example #4
0
        public void CreateFuelExpenseOperationTest()
        {
            // arrange

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => expenseCategoryMock;

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = null;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelDocument, Is.SameAs(fuelDocument), "Документ в операции должен совпадать с документом выдачи топлива"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelTransferDocument, Is.Null, "Документ перемещения топлива не должен быть заполнен"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.RelatedToSubdivision, Is.SameAs(fuelDocument.RouteList.ClosingSubdivision), "Подразделение в операции должно совпадать с подразделением в маршрутном листе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelExpenseOperation.FuelLiters, Is.EqualTo(fuelDocument.FuelCoupons), "Списанное топливо должно совпадать с топливом выданным талонами в документе выдачи"))
            .Release();
        }
Example #5
0
        public RouteListWorkingJournalViewModel(
            RouteListJournalFilterViewModel filterViewModel,
            IUnitOfWorkFactory unitOfWorkFactory,
            ICommonServices commonServices,
            IRouteListRepository routeListRepository,
            IFuelRepository fuelRepository,
            ICallTaskRepository callTaskRepository,
            BaseParametersProvider baseParametersProvider,
            IExpenseParametersProvider expenseParametersProvider,
            ISubdivisionRepository subdivisionRepository,
            IAccountableDebtsRepository accountableDebtsRepository,
            IGtkTabsOpener gtkTabsOpener)
            : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            TabName = "Работа кассы с МЛ";

            _routeListRepository        = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _fuelRepository             = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));
            _callTaskRepository         = callTaskRepository ?? throw new ArgumentNullException(nameof(callTaskRepository));
            _baseParametersProvider     = baseParametersProvider ?? throw new ArgumentNullException(nameof(baseParametersProvider));
            _expenseParametersProvider  = expenseParametersProvider ?? throw new ArgumentNullException(nameof(expenseParametersProvider));
            _subdivisionRepository      = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _accountableDebtsRepository = accountableDebtsRepository ?? throw new ArgumentNullException(nameof(accountableDebtsRepository));
            _gtkTabsOpener = gtkTabsOpener ?? throw new ArgumentNullException(nameof(gtkTabsOpener));

            UseSlider = false;

            NotifyConfiguration.Enable();
            NotifyConfiguration.Instance.BatchSubscribeOnEntity <RouteList>(OnRouteListChanged);

            InitPopupActions();
        }
Example #6
0
        public void CreateFuelCashExpenseTest()
        {
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            VodovozRouteList routeListMock      = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock    = Substitute.For <Subdivision>();
            IUnitOfWork      uowMock            = Substitute.For <IUnitOfWork>();
            IFuelRepository  fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            routeListMock.ClosingSubdivision = subdivisionMock;

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver          = Substitute.For <Employee>();
            fuelDocument.FuelPaymentType = FuelPaymentType.Cash;
            fuelDocument.Car             = carMock;
            fuelDocument.Date            = DateTime.Now;
            fuelDocument.LastEditDate    = DateTime.Now;
            fuelDocument.Fuel            = fuelTypeMock;
            fuelDocument.RouteList       = routeListMock;
            fuelDocument.UoW             = uowMock;
            fuelDocument.FuelCoupons     = 40;
            fuelDocument.PayedForFuel    = 500;
            fuelDocument.Subdivision     = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.Casher, Is.SameAs(fuelDocument.Author)))
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.Employee, Is.SameAs(fuelDocument.Driver)))
            .Accumulate(() => Assert.That(fuelDocument.FuelCashExpense.RelatedToSubdivision, Is.SameAs(fuelDocument.RouteList.ClosingSubdivision)))
            .Release();
        }
Example #7
0
        public void CreateFuelCashExpenseTest_Money(decimal payedForFuel, decimal result)
        {
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(false);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            var organisationParametersProviderMock = Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            organisationParametersProviderMock.CommonCashDistributionOrganisationId.Returns(2);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver          = Substitute.For <Employee>();
            fuelDocument.Car             = carMock;
            fuelDocument.FuelPaymentType = FuelPaymentType.Cash;
            fuelDocument.Date            = DateTime.Now;
            fuelDocument.LastEditDate    = DateTime.Now;
            fuelDocument.Fuel            = fuelTypeMock;
            fuelDocument.RouteList       = routeListMock;
            fuelDocument.UoW             = uowMock;
            fuelDocument.FuelCoupons     = 40;
            fuelDocument.PayedForFuel    = payedForFuel;
            fuelDocument.Subdivision     = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock);

            // assert
            Assert.That(fuelDocument.FuelCashExpense.Money, Is.EqualTo(result));
        }
Example #8
0
        public FuelBalanceViewModel(ISubdivisionRepository subdivisionRepository, IFuelRepository fuelRepository)
        {
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            this.subdivisionRepository = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            this.fuelRepository        = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));

            ConfigEntityUpdateSubscribes();
            Update();
        }
Example #9
0
 public FuelService(IFuelRepository repository, IJsonReader jsonReader, IHttpClient httpClient, int getLastDays, int chunkSize, string serviceApi)
 {
     _repository  = repository;
     _jsonReader  = jsonReader;
     _httpClient  = httpClient;
     _getLastDays = getLastDays;
     _chunkSize   = chunkSize;
     _serviceApi  = serviceApi;
 }
Example #10
0
        public void CreateFuelCashExpenseTest__Incorrect_FuelCoupons_and_PayedForFuel__Thrown_ValidationException_and_FuelCashExpense_must_be_null()
        {
            // arrange
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.PayedForFuel = 0;

            // act, assert
            Assert.Throws(typeof(ValidationException),
                          () => fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock));

            // additional assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null, "При исключении в момент создания операций, операции оплаты топлива не должно быть создано");
        }
        public void CreateFuelCashExpenseTest__With_Zero_PayedFor_Fuel__FuelCashExpense_must_be_null()
        {
            // arrange
            var categoryRepositoryMock = Substitute.For <ICategoryRepository>();

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            categoryRepositoryMock.FuelDocumentExpenseCategory(null).Returns(expenseCategoryMock);

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            CarVersion carVersionMock = Substitute.For <CarVersion>();

            carVersionMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>(_parametersProvider);

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carVersionMock.Car;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = 0;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock, categoryRepositoryMock);

            // assert
            Assert.That(fuelDocument.FuelCashExpense, Is.Null);
        }
Example #12
0
 public FuelController(IFuelRepository fuelRepository, IMapper mapper, IPropertyMappingService propertyMappingService,
                       IPropertyCheckerService propertyCheckerService)
 {
     _fuelRepository = fuelRepository ??
                       throw new ArgumentNullException(nameof(fuelRepository));
     _mapper = mapper ??
               throw new ArgumentNullException(nameof(mapper));
     _propertyMappingService = propertyMappingService ??
                               throw new ArgumentNullException(nameof(propertyMappingService));
     _propertyCheckerService = propertyCheckerService ??
                               throw new ArgumentNullException(nameof(propertyCheckerService));
 }
Example #13
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)
                );
        }
Example #14
0
 public HomeController(
     IAdvertisementRepository advertisementRepository,
     IBrandRepository brandRepository,
     IFuelRepository fuelRepository,
     ITransmissionTypeRepository transmissionRepository,
     IVehiclTypeRepository vehiclTypeRepository,
     IRegionRepository regionRepository)
 {
     _brandRepository            = brandRepository;
     _fuelRepository             = fuelRepository;
     _transmissionTypeRepository = transmissionRepository;
     _vehiclTypeRepository       = vehiclTypeRepository;
     _regionRepository           = regionRepository;
 }
Example #15
0
 public VehiclesController(IVehicleRepository vehicleRepository,
                           IBrandRepository brandRepository,
                           IFuelRepository fuelRepository,
                           IColorRepository colorRepository,
                           IConverterHelper converterHelper,
                           IUserHelper userHelper,
                           IMainWindowConverterHelper mainWindowConverterHelper
                           )
 {
     _vehicleRepository = vehicleRepository;
     _brandRepository   = brandRepository;
     _fuelRepository    = fuelRepository;
     _colorRepository   = colorRepository;
     _converterHelper   = converterHelper;
     _userHelper        = userHelper;
 }
        public FuelWriteoffDocumentViewModel(
            IEntityUoWBuilder uoWBuilder,
            IUnitOfWorkFactory unitOfWorkFactory,
            IEmployeeService employeeService,
            IFuelRepository fuelRepository,
            ISubdivisionRepository subdivisionRepository,
            ICommonServices commonServices,
            IEmployeeJournalFactory employeeJournalFactory,
            IReportViewOpener reportViewOpener,
            IFileChooserProvider fileChooserProvider,
            ExpenseCategoryJournalFilterViewModel expenseCategoryJournalFilterViewModel,
            ISubdivisionJournalFactory subdivisionJournalFactory
            )
            : base(uoWBuilder, unitOfWorkFactory, commonServices)
        {
            this.unitOfWorkFactory     = unitOfWorkFactory ?? throw new ArgumentNullException(nameof(unitOfWorkFactory));
            this.employeeService       = employeeService ?? throw new ArgumentNullException(nameof(employeeService));
            this.fuelRepository        = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));
            this.subdivisionRepository = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            this.commonServices        = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            EmployeeJournalFactory     = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            this.reportViewOpener      = reportViewOpener ?? throw new ArgumentNullException(nameof(reportViewOpener));
            this.expenseCategoryJournalFilterViewModel = expenseCategoryJournalFilterViewModel ?? throw new ArgumentNullException(nameof(expenseCategoryJournalFilterViewModel));
            this.fileChooserProvider  = fileChooserProvider ?? throw new ArgumentNullException(nameof(fileChooserProvider));
            SubdivisionJournalFactory = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));

            CreateCommands();
            UpdateCashSubdivisions();

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

            if (UoW.IsNew)
            {
                Entity.Date    = DateTime.Now;
                Entity.Cashier = CurrentEmployee;
            }

            ValidationContext.ServiceContainer.AddService(typeof(IFuelRepository), fuelRepository);
            ConfigureEntries();
        }
 public AdvertisementController(
     IContentProvider contentProvider,
     IAdvertisementRepository advertisementRepository,
     IBrandRepository brandRepository,
     IFuelRepository fuelRepository,
     ITransmissionTypeRepository transmissionRepository,
     IVehiclTypeRepository vehiclTypeRepository,
     IRegionRepository regionRepository,
     ICurrencyRepository currencyRepository)
 {
     _contentProvider         = contentProvider;
     _advertisementRepository = advertisementRepository;
     _brandRepository         = brandRepository;
     _fuelRepository          = fuelRepository;
     _transmissionRepository  = transmissionRepository;
     _vehiclTypeRepository    = vehiclTypeRepository;
     _regionRepository        = regionRepository;
     _currencyRepository      = currencyRepository;
 }
Example #18
0
        public void SendTest_CreateFuelTransferOperation()
        {
            // arrange
            var cashier         = Substitute.For <Employee>();
            var subdivisionFrom = Substitute.For <Subdivision>();

            subdivisionFrom.Id.Returns(1);

            var subdivisionTo = Substitute.For <Subdivision>();

            subdivisionTo.Id.Returns(2);

            FuelType    fuelTypeMock = Substitute.For <FuelType>();
            IUnitOfWork uowMock      = Substitute.For <IUnitOfWork>();

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionFrom, fuelTypeMock).Returns(50);

            var document = new FuelTransferDocument();

            document.FuelType = fuelTypeMock;
            document.Author   = Substitute.For <Employee>();
            document.Driver   = Substitute.For <Employee>();
            document.Car      = Substitute.For <Car>();

            document.CashSubdivisionFrom = subdivisionFrom;
            document.CashSubdivisionTo   = subdivisionTo;
            document.Status           = FuelTransferDocumentStatuses.New;
            document.TransferedLiters = transferedLitersForSend;

            // act
            document.Send(cashier, fuelRepositoryMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(document.FuelTransferOperation.ReceiveTime, Is.Null))
            .Accumulate(() => Assert.That(document.FuelTransferOperation.SendTime, Is.EqualTo(document.SendTime)))
            .Accumulate(() => Assert.That(document.FuelTransferOperation.SubdivisionFrom, Is.SameAs(document.CashSubdivisionFrom)))
            .Accumulate(() => Assert.That(document.FuelTransferOperation.SubdivisionTo, Is.SameAs(document.CashSubdivisionTo)))
            .Accumulate(() => Assert.That(document.FuelTransferOperation.TransferedLiters, Is.EqualTo(document.TransferedLiters)))
            .Release();
        }
Example #19
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();
        }
Example #21
0
        public void SendTest__TransferDocument_Without_Cashier__Thrown_ArgumentNullException()
        {
            // arrange
            var subdivisionFrom = Substitute.For <Subdivision>();

            subdivisionFrom.Id.Returns(1);

            var subdivisionTo = Substitute.For <Subdivision>();

            subdivisionTo.Id.Returns(2);

            FuelType    fuelTypeMock = Substitute.For <FuelType>();
            IUnitOfWork uowMock      = Substitute.For <IUnitOfWork>();

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionFrom, fuelTypeMock).Returns(50);

            var document = new FuelTransferDocument();

            document.FuelType = fuelTypeMock;
            document.Author   = Substitute.For <Employee>();
            document.Driver   = Substitute.For <Employee>();
            document.Car      = Substitute.For <Car>();

            document.CashSubdivisionFrom = subdivisionFrom;
            document.CashSubdivisionTo   = subdivisionTo;
            document.Status           = FuelTransferDocumentStatuses.New;
            document.TransferedLiters = transferedLitersForSend;
            var parameterName = document.GetType().GetMethod(nameof(document.Send)).GetParameters()[0].Name;

            // act
            var exception = Assert.Throws <ArgumentNullException>(() => document.Send(null, fuelRepositoryMock));

            // assert
            Assert.That(exception.ParamName, Is.EqualTo(parameterName));
        }
Example #22
0
 public ConverterHelper(IVehicleRepository vehicleRepository,
                        IBrandRepository brandRepository,
                        IFuelRepository fuelRepository,
                        IColorRepository colorRepository,
                        IUserHelper userHelper,
                        IZipCodeRepository zipCodeRepository,
                        ICountryRepository countryRepository,
                        IComboHelpers comboHelpers,
                        IServiceRepository serviceRepository,
                        IDealershipRepository dealershipRepository,
                        IDepartmentRepository departmentRepository)
 {
     _vehicleRepository    = vehicleRepository;
     _brandRepository      = brandRepository;
     _fuelRepository       = fuelRepository;
     _colorRepository      = colorRepository;
     _userHelper           = userHelper;
     _zipCodeRepository    = zipCodeRepository;
     _countryRepository    = countryRepository;
     _comboHelpers         = comboHelpers;
     _serviceRepository    = serviceRepository;
     _dealershipRepository = dealershipRepository;
     _departmentRepository = departmentRepository;
 }
Example #23
0
 public FuelController(IFuelRepository fuelRep)
 {
     this._fuelRep = fuelRep;
 }
        public RouteListJournalViewModel(
            RouteListJournalFilterViewModel filterViewModel,
            IRouteListRepository routeListRepository,
            IFuelRepository fuelRepository,
            ISubdivisionRepository subdivisionRepository,
            ICategoryRepository categoryRepository,
            ITrackRepository trackRepository,
            IUndeliveredOrdersRepository undeliveredOrdersRepository,
            IDeliveryShiftRepository deliveryShiftRepository,
            IUnitOfWorkFactory unitOfWorkFactory,
            IRouteListParametersProvider routeListParametersProvider,
            ICallTaskWorker callTaskWorker,
            IWarehouseRepository warehouseRepository,
            ICarJournalFactory carJournalFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            IEmployeeRepository employeeRepository,
            IGtkTabsOpener gtkTabsOpener,
            IOrderSelectorFactory orderSelectorFactory,
            ICounterpartyJournalFactory counterpartyJournalFactory,
            IDeliveryPointJournalFactory deliveryPointJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IUndeliveredOrdersJournalOpener undeliveredOrdersJournalOpener,
            IStockRepository stockRepository,
            IReportPrinter reportPrinter,
            ITerminalNomenclatureProvider terminalNomenclatureProvider,
            IEmployeeSettings employeeSettings,
            ICommonServices commonServices)
            : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            _routeListRepository         = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _fuelRepository              = fuelRepository ?? throw new ArgumentNullException(nameof(fuelRepository));
            _subdivisionRepository       = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _categoryRepository          = categoryRepository ?? throw new ArgumentNullException(nameof(categoryRepository));
            _trackRepository             = trackRepository ?? throw new ArgumentNullException(nameof(trackRepository));
            _undeliveredOrdersRepository =
                undeliveredOrdersRepository ?? throw new ArgumentNullException(nameof(undeliveredOrdersRepository));
            _deliveryShiftRepository     = deliveryShiftRepository ?? throw new ArgumentNullException(nameof(deliveryShiftRepository));
            _routeListParametersProvider =
                routeListParametersProvider ?? throw new ArgumentNullException(nameof(routeListParametersProvider));
            _callTaskWorker              = callTaskWorker ?? throw new ArgumentNullException(nameof(callTaskWorker));
            _warehouseRepository         = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            _carJournalFactory           = carJournalFactory ?? throw new ArgumentNullException(nameof(carJournalFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _employeeRepository          = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _gtkTabsOpener               = gtkTabsOpener ?? throw new ArgumentNullException(nameof(gtkTabsOpener));
            _orderSelectorFactory        = orderSelectorFactory ?? throw new ArgumentNullException(nameof(orderSelectorFactory));
            _counterpartyJournalFactory  = counterpartyJournalFactory ?? throw new ArgumentNullException(nameof(counterpartyJournalFactory));
            _deliveryPointJournalFactory =
                deliveryPointJournalFactory ?? throw new ArgumentNullException(nameof(deliveryPointJournalFactory));
            _subdivisionJournalFactory      = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _undeliveredOrdersJournalOpener =
                undeliveredOrdersJournalOpener ?? throw new ArgumentNullException(nameof(undeliveredOrdersJournalOpener));
            _stockRepository = stockRepository ?? throw new ArgumentNullException(nameof(stockRepository));
            _reportPrinter   = reportPrinter ?? throw new ArgumentNullException(nameof(reportPrinter));
            _terminalNomenclatureProvider = terminalNomenclatureProvider ?? throw new ArgumentNullException(nameof(terminalNomenclatureProvider));
            _employeeSettings             = employeeSettings ?? throw new ArgumentNullException(nameof(employeeSettings));
            TabName = "Журнал МЛ";

            NotifyConfiguration.Enable();
            NotifyConfiguration.Instance.BatchSubscribeOnEntity <RouteList>(changeEvents => Refresh());

            InitPopupActions();
        }
Example #25
0
 public FuelController(IFuelRepository fuelRepository)
 {
     _fuelRepository = fuelRepository;
 }
Example #26
0
        public void CreateFuelOperationTest_Car_IsCompanyHavings()
        {
            // arrange

            expenseCategoryMock = Substitute.For <ExpenseCategory>();
            CategoryRepository.FuelDocumentExpenseCategoryTestGap = (arg) => expenseCategoryMock;

            FuelType fuelTypeMock = Substitute.For <FuelType>();

            fuelTypeMock.Cost.Returns(30);

            Car carMock = Substitute.For <Car>();

            carMock.IsCompanyCar.Returns(true);

            Organization organisationMock = Substitute.For <Organization>();

            IUnitOfWork uowMock = Substitute.For <IUnitOfWork>();

            VodovozRouteList routeListMock   = Substitute.For <VodovozRouteList>();
            Subdivision      subdivisionMock = Substitute.For <Subdivision>();

            routeListMock.ClosingSubdivision = subdivisionMock;

            IFuelRepository fuelRepositoryMock = Substitute.For <IFuelRepository>();

            fuelRepositoryMock.GetFuelBalanceForSubdivision(uowMock, subdivisionMock, fuelTypeMock).Returns(50);

            OrganizationParametersProvider organisationParametersProviderMock =
                Substitute.For <OrganizationParametersProvider>();

            CashDistributionCommonOrganisationProvider commonOrganisationProviderMock =
                Substitute.For <CashDistributionCommonOrganisationProvider>(organisationParametersProviderMock);

            commonOrganisationProviderMock.GetCommonOrganisation(uowMock).Returns(organisationMock);

            var fuelDocument = new FuelDocument();

            fuelDocument.Driver       = Substitute.For <Employee>();
            fuelDocument.Car          = carMock;
            fuelDocument.Date         = DateTime.Now;
            fuelDocument.LastEditDate = DateTime.Now;
            fuelDocument.Fuel         = fuelTypeMock;
            fuelDocument.RouteList    = routeListMock;
            fuelDocument.UoW          = uowMock;
            fuelDocument.FuelCoupons  = 40;
            fuelDocument.PayedForFuel = null;
            fuelDocument.Subdivision  = subdivisionMock;

            // act
            fuelDocument.CreateOperations(fuelRepositoryMock, commonOrganisationProviderMock);

            // assert
            AssertsAccumulator.Create
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.LitersGived, Is.EqualTo(fuelDocument.FuelCoupons), "Количество топлива в операции не совпадает с количеством в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.PayedLiters, Is.EqualTo(fuelDocument.PayedLiters), "Количество топлива оплаченного деньгами не совпадает с количеством топлива оплаченного деньгами в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Car, Is.SameAs(fuelDocument.Car), "Автомобиль в операции не совпадает с автомобилем в документе"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Driver, Is.Null, "Водитель не должен быть заполнен"))
            .Accumulate(() => Assert.That(fuelDocument.FuelOperation.Fuel, Is.SameAs(fuelDocument.Fuel), "Тип топлива в операции не совпадает с типом топлива в документе"))
            .Release();
        }
 public CarFiltersService(ITransmissionRepository transmissionRepository, ICarBodyRepository carBodyRepository, IFuelRepository fuelRepository)
 {
     _transmissionRepository = transmissionRepository;
     _carBodyRepository      = carBodyRepository;
     _fuelRepository         = fuelRepository;
 }