Exemple #1
0
        public void CreateDefaultWageParameter_IfInstanceOfEmployeeIsNewAndCategoryOfEmployeeIsOffice_ThenCreateManualWageParameter()
        {
            //arrange
            IWageParametersProvider    wageParametersProvider    = Substitute.For <IWageParametersProvider>();
            IWageCalculationRepository wageCalculationRepository = Substitute.For <IWageCalculationRepository>();
            var employee = new Employee {
                WageCalculationRepository = wageCalculationRepository,
                Category = EmployeeCategory.office
            };
            WageDistrictLevelRates levelRates = Substitute.For <WageDistrictLevelRates>();

            wageCalculationRepository.DefaultLevelForNewEmployees(null).ReturnsForAnyArgs(levelRates);
            IInteractiveService interactiveService = Substitute.For <IInteractiveService>();

            //act
            employee.CreateDefaultWageParameter(wageCalculationRepository, wageParametersProvider, interactiveService);

            //assert
            Assert.That(employee.ObservableWageParameters.Count(), Is.EqualTo(1));
            Assert.That(
                employee.ObservableWageParameters
                .FirstOrDefault()
                .WageParameterItem
                .WageParameterItemType,
                Is.EqualTo(WageParameterItemTypes.Manual)
                );
        }
Exemple #2
0
        public void CreateDefaultWageParameter_IfInstanceOfEmployeeIsNotNew_ThenDoNothing()
        {
            //arrange
            IWageParametersProvider    wageParametersProvider    = Substitute.For <IWageParametersProvider>();
            IWageCalculationRepository wageCalculationRepository = Substitute.For <IWageCalculationRepository>();
            var employee = new Employee {
                Id = 1
            };

            employee.WageParameters.Add(
                new EmployeeWageParameter()
            {
                StartDate         = new DateTime(2000, 01, 01),
                WageParameterItem = new FixedWageParameterItem()
            }
                );
            IInteractiveService interactiveService = Substitute.For <IInteractiveService>();

            //act
            employee.CreateDefaultWageParameter(wageCalculationRepository, wageParametersProvider, interactiveService);

            //assert
            Assert.That(employee.ObservableWageParameters.Count(), Is.EqualTo(1));
            Assert.That(
                employee.ObservableWageParameters
                .FirstOrDefault()
                .StartDate,
                Is.EqualTo(new DateTime(2000, 01, 01))
                );
        }
        private void CreateNewDependencies()
        {
            _cashDistributionCommonOrganisationProvider =
                new CashDistributionCommonOrganisationProvider(new OrganizationParametersProvider(new ParametersProvider()));

            _subdivisionParametersProvider = new SubdivisionParametersProvider(new ParametersProvider());
            _wageCalculationRepository     = new WageCalculationRepository();
            _employeeRepository            = new EmployeeRepository();
            _warehouseRepository           = new WarehouseRepository();
            _routeListRepository           = new RouteListRepository(new StockRepository(), new BaseParametersProvider(new ParametersProvider()));
        }
 public SalesPlanWageParameterItemViewModel(
     IUnitOfWork uow,
     SalesPlanWageParameterItem entity,
     bool canEdit,
     ICommonServices commonServices,
     IWageCalculationRepository wageCalculationRepository) : base(entity, commonServices)
 {
     _wageCalculationRepository = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
     UoW     = uow;
     CanEdit = canEdit;
 }
 public WageDistrictLevelRatesViewModel(
     ITdiTab maserTab,
     IEntityUoWBuilder uoWBuilder,
     IUnitOfWorkFactory unitOfWorkFactory,
     ICommonServices commonServices,
     IUnitOfWork uow,
     IWageCalculationRepository wageCalculationRepository) : base(uoWBuilder, unitOfWorkFactory, commonServices)
 {
     _wageCalculationRepository = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
     ParentTab = maserTab ?? throw new ArgumentNullException(nameof(maserTab));
     UoW       = uow;
     Configure();
 }
Exemple #6
0
 public RatesLevelWageParameterItemViewModel(
     IUnitOfWork uow,
     RatesLevelWageParameterItem entity,
     bool canEdit,
     ICommonServices commonServices,
     IWageCalculationRepository wageCalculationRepository) : base(entity, commonServices)
 {
     _wageCalculationRepository = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
     UoW     = uow;
     CanEdit = canEdit;
     Configure();
     ConfigureEntityPropertyChanges();
 }
        public EmployeesJournalViewModel(
            EmployeeFilterViewModel filterViewModel,
            IAuthorizationServiceFactory authorizationServiceFactory,
            IEmployeeWageParametersFactory employeeWageParametersFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IEmployeePostsJournalFactory employeePostsJournalFactory,
            ICashDistributionCommonOrganisationProvider cashDistributionCommonOrganisationProvider,
            ISubdivisionService subdivisionService,
            IEmailServiceSettingAdapter emailServiceSettingAdapter,
            IWageCalculationRepository wageCalculationRepository,
            IEmployeeRepository employeeRepository,
            IWarehouseRepository warehouseRepository,
            IRouteListRepository routeListRepository,
            UserSettings userSettings,
            IValidationContextFactory validationContextFactory,
            IPhonesViewModelFactory phonesViewModelFactory,
            DriverApiUserRegisterEndpoint driverApiUserRegisterEndpoint,
            ICommonServices commonServices,
            IUnitOfWorkFactory unitOfWorkFactory) : base(filterViewModel, unitOfWorkFactory, commonServices)
        {
            TabName = "Журнал сотрудников";

            _authorizationServiceFactory =
                authorizationServiceFactory ?? throw new ArgumentNullException(nameof(authorizationServiceFactory));
            _authorizationService          = _authorizationServiceFactory.CreateNewAuthorizationService();
            _employeeWageParametersFactory =
                employeeWageParametersFactory ?? throw new ArgumentNullException(nameof(employeeWageParametersFactory));
            _employeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            _subdivisionJournalFactory   = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));
            _employeePostsJournalFactory =
                employeePostsJournalFactory ?? throw new ArgumentNullException(nameof(employeePostsJournalFactory));
            _cashDistributionCommonOrganisationProvider =
                cashDistributionCommonOrganisationProvider ??
                throw new ArgumentNullException(nameof(cashDistributionCommonOrganisationProvider));
            _subdivisionService            = subdivisionService ?? throw new ArgumentNullException(nameof(subdivisionService));
            _emailServiceSettingAdapter    = emailServiceSettingAdapter ?? throw new ArgumentNullException(nameof(emailServiceSettingAdapter));
            _wageCalculationRepository     = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
            _employeeRepository            = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _validationContextFactory      = validationContextFactory ?? throw new ArgumentNullException(nameof(validationContextFactory));
            _phonesViewModelFactory        = phonesViewModelFactory ?? throw new ArgumentNullException(nameof(phonesViewModelFactory));
            _driverApiUserRegisterEndpoint = driverApiUserRegisterEndpoint ?? throw new ArgumentNullException(nameof(driverApiUserRegisterEndpoint));
            _warehouseRepository           = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            _routeListRepository           = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _userSettings = userSettings ?? throw new ArgumentNullException(nameof(userSettings));

            UpdateOnChanges(typeof(Employee));
        }
        private void CreateNewDependencies()
        {
            _authorizationServiceFactory   = new AuthorizationServiceFactory();
            _employeeWageParametersFactory = new EmployeeWageParametersFactory();
            _employeeJournalFactory        = this;
            _subdivisionJournalFactory     = new SubdivisionJournalFactory();
            _employeePostsJournalFactory   = new EmployeePostsJournalFactory();

            _cashDistributionCommonOrganisationProvider =
                new CashDistributionCommonOrganisationProvider(new OrganizationParametersProvider(new ParametersProvider()));

            _subdivisionService         = SubdivisionParametersProvider.Instance;
            _emailServiceSettingAdapter = new EmailServiceSettingAdapter();
            _wageCalculationRepository  = new WageCalculationRepository();
            _employeeRepository         = new EmployeeRepository();
            _validationContextFactory   = new ValidationContextFactory();
            _phonesViewModelFactory     = new PhonesViewModelFactory(new PhoneRepository());
            _warehouseRepository        = new WarehouseRepository();
            _routeListRepository        = new RouteListRepository(new StockRepository(), new BaseParametersProvider(new ParametersProvider()));
        }
Exemple #9
0
 public EmployeeWageParametersViewModel(
     Employee entity,
     ITdiTab tab,
     IUnitOfWork uow,
     IPresetPermissionValidator permissionValidator,
     IUserRepository userRepository,
     ICommonServices commonServices,
     INavigationManager navigationManager,
     IEmployeeRepository employeeRepository,
     IWageCalculationRepository wageCalculationRepository) : base(entity, commonServices)
 {
     this.tab                   = tab ?? throw new ArgumentNullException(nameof(tab));
     this.commonServices        = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
     this.navigationManager     = navigationManager;
     _wageCalculationRepository = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
     UoW = uow ?? throw new ArgumentNullException(nameof(uow));
     Entity.ObservableWageParameters.ElementAdded   += (aList, aIdx) => WageParametersUpdated();
     Entity.ObservableWageParameters.ElementRemoved += (aList, aIdx, aObject) => WageParametersUpdated();
     canChangeWageCalculation      = permissionValidator.Validate("can_edit_wage", userRepository.GetCurrentUser(UoW).Id);
     _canEditWageBySelfSubdivision = userRepository.GetCurrentUser(UoW).IsAdmin ||
                                     (employeeRepository.GetEmployeeForCurrentUser(UoW).Subdivision == Entity.Subdivision &&
                                      permissionValidator.Validate("can_edit_wage_by_self_subdivision", userRepository.GetCurrentUser(UoW).Id)
                                     );
 }
 public WageParameterService(IWageCalculationRepository wageCalculationRepository, IWageParametersProvider wageParametersProvider)
 {
     this.wageCalculationRepository = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
     this.wageParametersProvider    = wageParametersProvider ?? throw new ArgumentNullException(nameof(wageParametersProvider));
 }
 public EmployeeWageParameterViewModel(
     IUnitOfWork uow,
     Employee employee,
     ICommonServices commonServices,
     IWageCalculationRepository wageCalculationRepository)
     : base((commonServices ?? throw new ArgumentNullException(nameof(commonServices))).InteractiveService, null)
Exemple #12
0
        public EmployeeViewModel(
            IAuthorizationService authorizationService,
            IEmployeeWageParametersFactory employeeWageParametersFactory,
            IEmployeeJournalFactory employeeJournalFactory,
            ISubdivisionJournalFactory subdivisionJournalFactory,
            IEmployeePostsJournalFactory employeePostsJournalFactory,
            ICashDistributionCommonOrganisationProvider commonOrganisationProvider,
            ISubdivisionService subdivisionService,
            IEmailServiceSettingAdapter emailServiceSettingAdapter,
            IWageCalculationRepository wageCalculationRepository,
            IEmployeeRepository employeeRepository,
            IUnitOfWorkGeneric <Employee> uowGeneric,
            ICommonServices commonServices,
            IValidationContextFactory validationContextFactory,
            IPhonesViewModelFactory phonesViewModelFactory,
            IWarehouseRepository warehouseRepository,
            IRouteListRepository routeListRepository,
            DriverApiUserRegisterEndpoint driverApiUserRegisterEndpoint,
            UserSettings userSettings,
            IUserRepository userRepository,
            BaseParametersProvider baseParametersProvider,
            bool traineeToEmployee = false,
            INavigationManager navigationManager = null
            ) : base(commonServices?.InteractiveService, navigationManager)
        {
            _authorizationService         = authorizationService ?? throw new ArgumentNullException(nameof(authorizationService));
            EmployeeWageParametersFactory =
                employeeWageParametersFactory ?? throw new ArgumentNullException(nameof(employeeWageParametersFactory));
            EmployeeJournalFactory      = employeeJournalFactory ?? throw new ArgumentNullException(nameof(employeeJournalFactory));
            EmployeePostsJournalFactory = employeePostsJournalFactory ?? throw new ArgumentNullException(nameof(employeePostsJournalFactory));
            SubdivisionJournalFactory   = subdivisionJournalFactory ?? throw new ArgumentNullException(nameof(subdivisionJournalFactory));

            if (commonOrganisationProvider == null)
            {
                throw new ArgumentNullException(nameof(commonOrganisationProvider));
            }

            _subdivisionService            = subdivisionService ?? throw new ArgumentNullException(nameof(subdivisionService));
            _emailServiceSettingAdapter    = emailServiceSettingAdapter ?? throw new ArgumentNullException(nameof(emailServiceSettingAdapter));
            _wageCalculationRepository     = wageCalculationRepository ?? throw new ArgumentNullException(nameof(wageCalculationRepository));
            _employeeRepository            = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _warehouseRepository           = warehouseRepository ?? throw new ArgumentNullException(nameof(warehouseRepository));
            _routeListRepository           = routeListRepository ?? throw new ArgumentNullException(nameof(routeListRepository));
            _driverApiUserRegisterEndpoint = driverApiUserRegisterEndpoint ?? throw new ArgumentNullException(nameof(driverApiUserRegisterEndpoint));
            _userSettings           = userSettings ?? throw new ArgumentNullException(nameof(userSettings));
            UoWGeneric              = uowGeneric ?? throw new ArgumentNullException(nameof(uowGeneric));
            _commonServices         = commonServices ?? throw new ArgumentNullException(nameof(commonServices));
            _userRepository         = userRepository ?? throw new ArgumentNullException(nameof(userRepository));
            _baseParametersProvider = baseParametersProvider ?? throw new ArgumentNullException(nameof(baseParametersProvider));

            if (validationContextFactory == null)
            {
                throw new ArgumentNullException(nameof(validationContextFactory));
            }

            ConfigureValidationContext(validationContextFactory);

            if (phonesViewModelFactory == null)
            {
                throw new ArgumentNullException(nameof(phonesViewModelFactory));
            }

            PhonesViewModel = phonesViewModelFactory.CreateNewPhonesViewModel(UoW);

            if (Entity.Id == 0)
            {
                Entity.OrganisationForSalary = commonOrganisationProvider.GetCommonOrganisation(UoW);
                TabName = "Новый сотрудник";
            }
            else
            {
                TabName = Entity.GetPersonNameWithInitials();
            }

            if (Entity.Phones == null)
            {
                Entity.Phones = new List <Phone>();
            }

            SetPermissions();

            Entity.PropertyChanged += OnEntityPropertyChanged;

            organizations = UoW.GetAll <Organization>().ToList();
            FillHiddenCategories(traineeToEmployee);

            CanRegisterMobileUser = string.IsNullOrWhiteSpace(Entity.AndroidLogin) && string.IsNullOrWhiteSpace(Entity.AndroidPassword);

            var permissionResult =
                _commonServices.PermissionService.ValidateUserPermission(typeof(Employee), _commonServices.UserService.CurrentUserId);

            if (!permissionResult.CanRead)
            {
                AbortOpening(PermissionsSettings.GetEntityReadValidateResult(typeof(Employee)));
            }
        }