Beispiel #1
0
        public EmployeeProcessingJournalViewModel(IUnitOfWorkFactory unitOfWorkFactory, IInteractiveService interactiveService, INavigationManager navigationManager,
                                                  IDeleteEntityService deleteEntityService, ILifetimeScope autofacScope,
                                                  NormRepository normRepository, BaseParameters baseParameters, IDataBaseInfo dataBaseInfo,
                                                  ICurrentPermissionService currentPermissionService = null)
            : base(unitOfWorkFactory, interactiveService, navigationManager, deleteEntityService, currentPermissionService)
        {
            UseSlider           = false;
            Title               = "Корректировка сотрудников";
            this.interactive    = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
            this.normRepository = normRepository ?? throw new ArgumentNullException(nameof(normRepository));
            this.baseParameters = baseParameters ?? throw new ArgumentNullException(nameof(baseParameters));
            this.dataBaseInfo   = dataBaseInfo ?? throw new ArgumentNullException(nameof(dataBaseInfo));
            AutofacScope        = autofacScope;
            JournalFilter       = Filter = AutofacScope.Resolve <EmployeeFilterViewModel>(new TypedParameter(typeof(JournalViewModelBase), this));

            //Обход проблемы с тем что SelectionMode одновременно управляет и выбором в журнале, и самим режимом журнала.
            //То есть создает действие выбора. Удалить после того как появится рефакторинг действий журнала.
            SelectionMode = JournalSelectionMode.Multiple;
            NodeActionsList.Clear();
            CreateActions();

            (DataLoader as ThreadDataLoader <EmployeeProcessingJournalNode>).PostLoadProcessingFunc = delegate(System.Collections.IList items, uint addedSince) {
                foreach (EmployeeProcessingJournalNode item in items)
                {
                    if (Results.ContainsKey(item.Id))
                    {
                        item.Result = Results[item.Id];
                    }
                }
            };
        }
Beispiel #2
0
        public CashExpenseFilterView()
        {
            this.Build();
            UoW    = UnitOfWorkFactory.CreateWithoutRoot();
            Filter = new ExpenseFilter();

            ydateperiodPicker.Binding.AddBinding(Filter, x => x.StartDate, w => w.StartDate).InitializeFromSource();
            ydateperiodPicker.Binding.AddBinding(Filter, x => x.EndDate, w => w.EndDate).InitializeFromSource();
            ydateperiodPicker.PeriodChanged += (sender, e) => Refilter();

            var employeeFilter = new EmployeeFilterViewModel();

            employeeFilter.Status             = Domain.Employees.EmployeeStatus.IsWorking;
            entryEmployee.RepresentationModel = new EmployeesVM(employeeFilter);
            entryEmployee.Binding.AddBinding(Filter, x => x.Employee, w => w.Subject).InitializeFromSource();
            entryEmployee.ChangedByUser += (sender, e) => Refilter();

            var expenseCategoryVM = new EntityCommonRepresentationModelConstructor <ExpenseCategory>(UoW)
                                    .AddColumn("Имя", x => x.Name).AddSearch(x => x.Name)
                                    .AddColumn("Тип документа", x => x.ExpenseDocumentType.GetEnumTitle())
                                    .OrderBy(x => x.Name)
                                    .Finish();

            entryExpenseCategory.RepresentationModel = expenseCategoryVM;
            entryExpenseCategory.Binding.AddBinding(Filter, x => x.ExpenseCategory, w => w.Subject).InitializeFromSource();
            entryExpenseCategory.ChangedByUser += (sender, e) => Refilter();
        }
Beispiel #3
0
        private void Initialize()
        {
            CounterpartySelectorFactory = new DefaultEntityAutocompleteSelectorFactory <Counterparty,
                                                                                        CounterpartyJournalViewModel,
                                                                                        CounterpartyJournalFilterViewModel>(CommonServices);

            EmployeeSelectorFactory =
                new EntityAutocompleteSelectorFactory <EmployeesJournalViewModel>(typeof(Employee),
                                                                                  () => {
                var filter = new EmployeeFilterViewModel {
                    Status = EmployeeStatus.IsWorking, RestrictCategory = EmployeeCategory.office
                };
                return(new EmployeesJournalViewModel(filter, UnitOfWorkFactory, CommonServices));
            });

            OrderSelectorFactory = new DefaultEntityAutocompleteSelectorFactory <Order,
                                                                                 OrderJournalViewModel,
                                                                                 OrderJournalFilterViewModel>(CommonServices);

            /*
             * SubdivisionSelectorFactory = new DefaultEntityAutocompleteSelectorFactory<Subdivision,
             *                                                                                                                                                      SubdivisionsJournalViewModel,
             *                                                                                                                                                      SubdivisionFilterViewModel>(CommonServices);
             */
        }
        protected override void ConfigureWithUow()
        {
            enumcomboDocumentType.ItemsEnum   = typeof(DocumentType);
            enumcomboDocumentType.HiddenItems = new[] { DocumentType.DeliveryDocument as object };

            evmeWarehouse.SetEntityAutocompleteSelectorFactory(new WarehouseSelectorFactory());

            if (ServicesConfig.CommonServices.CurrentPermissionService.ValidatePresetPermission("user_have_access_only_to_warehouse_and_complaints") &&
                !ServicesConfig.CommonServices.UserService.GetCurrentUser(UoW).IsAdmin)
            {
                evmeWarehouse.Sensitive = evmeWarehouse.CanEditReference = false;
            }

            if (CurrentUserSettings.Settings.DefaultWarehouse != null)
            {
                evmeWarehouse.Subject = UoW.GetById <Warehouse>(CurrentUserSettings.Settings.DefaultWarehouse.Id);
            }

            var filter = new EmployeeFilterViewModel();

            filter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.driver,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            var driverFactory = new EmployeeJournalFactory(filter);

            evmeDriver.SetEntityAutocompleteSelectorFactory(driverFactory.CreateEmployeeAutocompleteSelectorFactory());
            dateperiodDocs.StartDate = DateTime.Today.AddDays(-7);
            dateperiodDocs.EndDate   = DateTime.Today.AddDays(1);

            comboMovementStatus.ItemsEnum = typeof(MovementDocumentStatus);
            evmeDriver.Changed           += (sender, args) => OnRefiltered();
            evmeWarehouse.Changed        += (sender, args) => OnRefiltered();
        }
        public EmployeesJournalViewModel CreateWorkingForwarderEmployeeJournal()
        {
            CreateNewDependencies();

            var forwarderFilter = new EmployeeFilterViewModel
            {
                HidenByDefault = true,
            };

            forwarderFilter.SetAndRefilterAtOnce(
                x => x.Status   = EmployeeStatus.IsWorking,
                x => x.Category = EmployeeCategory.forwarder);

            return(new EmployeesJournalViewModel(
                       forwarderFilter,
                       _authorizationServiceFactory,
                       _employeeWageParametersFactory,
                       _employeeJournalFactory,
                       _subdivisionJournalFactory,
                       _employeePostsJournalFactory,
                       _cashDistributionCommonOrganisationProvider,
                       _subdivisionService,
                       _emailServiceSettingAdapter,
                       _wageCalculationRepository,
                       _employeeRepository,
                       _warehouseRepository,
                       _routeListRepository,
                       CurrentUserSettings.Settings,
                       _validationContextFactory,
                       _phonesViewModelFactory,
                       _driverApiUserRegisterEndpoint,
                       ServicesConfig.CommonServices,
                       UnitOfWorkFactory.GetDefaultFactory
                       ));
        }
        public IActionResult Index(EmployeeFilterViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            if (model == null)
            {
                return(NotFound());
            }

            if (string.IsNullOrEmpty(model.keyword))
            {
                model.keyword = string.Empty;
            }

            //List<EmployeeViewModel> employeeList = GetEmployees()
            //    .Where(x=>x.PositionEnum == model.employeePosition
            //    && x.Name.Contains(model.keyword)
            //    ).ToList();

            List <EmployeeViewModel> employeeList = GetEmployeeFromDbWithWhereClause(model.employeePosition, model.keyword);

            ViewBag.PositionOption = new SelectList(new List <EmployeePosition> {
                EmployeePosition.WEB, EmployeePosition.ANDROID
            }, model.employeePosition);
            ViewBag.Keyword = model.keyword;

            ViewData["EmployeeList"] = employeeList;

            return(View(employeeList));
        }
        private void ConfigureBindings()
        {
            ylabelCreationDate.Binding.AddFuncBinding(ViewModel.Entity, e => e.CreationDate.ToString("g"), w => w.LabelProp).InitializeFromSource();
            ylabelAuthor.Binding.AddFuncBinding(ViewModel.Entity, e => e.Author != null ? e.Author.GetPersonNameWithInitials() : "", w => w.LabelProp).InitializeFromSource();
            ylabelStatus.Binding.AddFuncBinding(ViewModel.Entity, e => e.Status.GetEnumTitle(), w => w.LabelProp).InitializeFromSource();
            yspinMoney.Binding.AddBinding(ViewModel.Entity, e => e.TransferedSum, w => w.ValueAsDecimal).InitializeFromSource();
            yspinMoney.Binding.AddBinding(ViewModel, e => e.CanEdit, w => w.Sensitive).InitializeFromSource();

            var filterDriver = new EmployeeFilterViewModel();

            filterDriver.SetAndRefilterAtOnce(
                x => x.Status = EmployeeStatus.IsWorking
                );
            entryDriver.RepresentationModel = new EmployeesVM(filterDriver);
            entryDriver.Binding.AddBinding(ViewModel.Entity, e => e.Driver, w => w.Subject).InitializeFromSource();
            entryDriver.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(
                new DefaultEntityAutocompleteSelectorFactory <Car, CarJournalViewModel, CarJournalFilterViewModel>(ServicesConfig.CommonServices));
            entityviewmodelentryCar.Binding.AddBinding(ViewModel.Entity, x => x.Car, x => x.Subject).InitializeFromSource();
            entityviewmodelentryCar.CompletionPopupSetWidth(false);

            comboboxCashSubdivisionFrom.SetRenderTextFunc <Subdivision>(s => s.Name);
            comboboxCashSubdivisionFrom.Binding.AddBinding(ViewModel, vm => vm.SubdivisionsFrom, w => w.ItemsList).InitializeFromSource();
            comboboxCashSubdivisionFrom.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            comboboxCashSubdivisionFrom.Binding.AddBinding(ViewModel.Entity, e => e.CashSubdivisionFrom, w => w.SelectedItem).InitializeFromSource();

            comboboxCashSubdivisionTo.SetRenderTextFunc <Subdivision>(s => s.Name);
            comboboxCashSubdivisionTo.Binding.AddBinding(ViewModel, vm => vm.SubdivisionsTo, w => w.ItemsList).InitializeFromSource();
            comboboxCashSubdivisionTo.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();
            comboboxCashSubdivisionTo.Binding.AddBinding(ViewModel.Entity, e => e.CashSubdivisionTo, w => w.SelectedItem).InitializeFromSource();

            comboExpenseCategory.SetRenderTextFunc <ExpenseCategory>(s => s.Name);
            comboExpenseCategory.Binding.AddBinding(ViewModel, vm => vm.ExpenseCategories, w => w.ItemsList).InitializeFromSource();
            comboExpenseCategory.Binding.AddBinding(ViewModel.Entity, e => e.ExpenseCategory, w => w.SelectedItem).InitializeFromSource();
            comboExpenseCategory.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            comboIncomeCategory.SetRenderTextFunc <IncomeCategory>(s => s.Name);
            comboIncomeCategory.Binding.AddBinding(ViewModel, vm => vm.IncomeCategories, w => w.ItemsList).InitializeFromSource();
            comboIncomeCategory.Binding.AddBinding(ViewModel.Entity, e => e.IncomeCategory, w => w.SelectedItem).InitializeFromSource();
            comboIncomeCategory.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            ylabelCashierSender.Binding.AddFuncBinding(ViewModel.Entity, e => e.CashierSender != null ? e.CashierSender.GetPersonNameWithInitials() : "", w => w.LabelProp).InitializeFromSource();
            ylabelCashierReceiver.Binding.AddFuncBinding(ViewModel.Entity, e => e.CashierReceiver != null ? e.CashierReceiver.GetPersonNameWithInitials() : "", w => w.LabelProp).InitializeFromSource();
            ylabelSendTime.Binding.AddFuncBinding(ViewModel.Entity, e => e.SendTime.HasValue ? e.SendTime.Value.ToString("g") : "", w => w.LabelProp).InitializeFromSource();
            ylabelReceiveTime.Binding.AddFuncBinding(ViewModel.Entity, e => e.ReceiveTime.HasValue ? e.ReceiveTime.Value.ToString("g") : "", w => w.LabelProp).InitializeFromSource();

            ytextviewComment.Binding.AddBinding(ViewModel.Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource();
            ytextviewComment.Binding.AddBinding(ViewModel, vm => vm.CanEdit, w => w.Sensitive).InitializeFromSource();

            ViewModel.SendCommand.CanExecuteChanged += (sender, e) => {
                buttonSend.Sensitive = ViewModel.SendCommand.CanExecute();
            };

            ViewModel.ReceiveCommand.CanExecuteChanged += (sender, e) => {
                buttonReceive.Sensitive = ViewModel.ReceiveCommand.CanExecute();
            };

            buttonPrint.Sensitive = ViewModel.PrintCommand.CanExecute();
        }
Beispiel #8
0
        public ChainStoreDelayReport()
        {
            this.Build();

            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            ydatepicker.Date = DateTime.Now.Date;
            entityviewmodelentryCounterparty.SetEntityAutocompleteSelectorFactory(new DefaultEntityAutocompleteSelectorFactory <Counterparty,
                                                                                                                                CounterpartyJournalViewModel, CounterpartyJournalFilterViewModel>(ServicesConfig.CommonServices));
            entityviewmodelentrySellManager.SetEntityAutocompleteSelectorFactory(
                new EntityAutocompleteSelectorFactory <EmployeesJournalViewModel>(typeof(Employee),
                                                                                  () =>
            {
                var employeeFilter = new EmployeeFilterViewModel {
                    Status   = EmployeeStatus.IsWorking,
                    Category = EmployeeCategory.office
                };
                return(new EmployeesJournalViewModel(employeeFilter, UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices));
            })
                );

            entityviewmodelentryOrderAuthor.SetEntityAutocompleteSelectorFactory(
                new EntityAutocompleteSelectorFactory <EmployeesJournalViewModel>(typeof(Employee),
                                                                                  () =>
            {
                var employeeFilter = new EmployeeFilterViewModel {
                    Status   = EmployeeStatus.IsWorking,
                    Category = EmployeeCategory.office
                };
                return(new EmployeesJournalViewModel(employeeFilter, UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices));
            })
                );
            ydatepicker.Date    = DateTime.Now;
            buttonRun.Sensitive = true;
            buttonRun.Clicked  += OnButtonCreateReportClicked;
        }
Beispiel #9
0
        public DriverWagesReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var driverFilter = new EmployeeFilterViewModel();

            driverFilter.SetAndRefilterAtOnce(
                x => x.Status           = EmployeeStatus.IsWorking,
                x => x.RestrictCategory = EmployeeCategory.driver);
            var employeeFactory = new EmployeeJournalFactory(driverFilter);

            evmeDriver.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory());
            evmeDriver.Changed += (sender, args) =>
            {
                if (dateperiodpicker.StartDateOrNull.HasValue && evmeDriver.Subject is Employee)
                {
                    OnUpdate(true);
                }
            };

            dateperiodpicker.PeriodChanged += (sender, args) =>
            {
                if (evmeDriver.Subject is Employee && dateperiodpicker.StartDateOrNull.HasValue)
                {
                    OnUpdate(true);
                }
            };
            buttonCreateReport.Clicked += OnButtonCreateReportClicked;
        }
        public EmployeesJournalViewModel CreateEmployeesJournal(EmployeeFilterViewModel filterViewModel = null)
        {
            CreateNewDependencies();

            return(new EmployeesJournalViewModel(
                       filterViewModel ?? _employeeJournalFilter ?? new EmployeeFilterViewModel(),
                       _authorizationServiceFactory,
                       _employeeWageParametersFactory,
                       _employeeJournalFactory,
                       _subdivisionJournalFactory,
                       _employeePostsJournalFactory,
                       _cashDistributionCommonOrganisationProvider,
                       _subdivisionParametersProvider,
                       _wageCalculationRepository,
                       _employeeRepository,
                       _warehouseRepository,
                       _routeListRepository,
                       CurrentUserSettings.Settings,
                       _validationContextFactory,
                       _phonesViewModelFactory,
                       _driverApiUserRegisterEndpoint,
                       ServicesConfig.CommonServices,
                       UnitOfWorkFactory.GetDefaultFactory,
                       _attachmentsViewModelFactory
                       ));
        }
        public EmployeeJournalFactory(
            EmployeeFilterViewModel employeeJournalFilter = null)
        {
            var cs = new ConfigurationSection(new ConfigurationRoot(new List <IConfigurationProvider> {
                new MemoryConfigurationProvider(new MemoryConfigurationSource())
            }), "");

            cs["BaseUri"] = "https://driverapi.vod.qsolution.ru:7090/api/";

            var apiHelper = new ApiClientProvider.ApiClientProvider(cs);

            var driverApiRegisterEndpoint = new DriverApiUserRegisterEndpoint(apiHelper);

            _driverApiUserRegisterEndpoint = driverApiRegisterEndpoint;
            _employeeJournalFilter         = employeeJournalFilter;

            _authorizationServiceFactory   = new AuthorizationServiceFactory();
            _employeeWageParametersFactory = new EmployeeWageParametersFactory();
            _employeeJournalFactory        = this;
            _subdivisionJournalFactory     = new SubdivisionJournalFactory();
            _employeePostsJournalFactory   = new EmployeePostsJournalFactory();
            _validationContextFactory      = new ValidationContextFactory();
            _phonesViewModelFactory        = new PhonesViewModelFactory(new PhoneRepository());
            _attachmentsViewModelFactory   = new AttachmentsViewModelFactory();
        }
Beispiel #12
0
        public MileageReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            entityviewmodelentryEmployee.SetEntityAutocompleteSelectorFactory(
                new EntityAutocompleteSelectorFactory <EmployeesJournalViewModel>(typeof(Employee),
                                                                                  () =>
            {
                var employeeFilter = new EmployeeFilterViewModel {
                    Status   = EmployeeStatus.IsWorking,
                    Category = EmployeeCategory.driver
                };
                return(new EmployeesJournalViewModel(employeeFilter, UnitOfWorkFactory.GetDefaultFactory, ServicesConfig.CommonServices));
            })
                );
            entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(
                new DefaultEntityAutocompleteSelectorFactory <Car, CarJournalViewModel, CarJournalFilterViewModel>(ServicesConfig.CommonServices));

            ycheckbutton1.Toggled += (sender, args) =>
            {
                entityviewmodelentryCar.Sensitive      = !ycheckbutton1.Active;
                entityviewmodelentryEmployee.Sensitive = !ycheckbutton1.Active;
                entityviewmodelentryCar.Subject        = null;
                entityviewmodelentryEmployee.Subject   = null;
            };

            validatedentryDifference.ValidationMode = ValidationType.Numeric;
        }
        public FuelReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var filterDriver = new EmployeeFilterViewModel();

            filterDriver.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.driver,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            var driverFactory = new EmployeeJournalFactory(filterDriver);

            evmeDriver.SetEntityAutocompleteSelectorFactory(driverFactory.CreateEmployeeAutocompleteSelectorFactory());
            entityviewmodelentryCar.SetEntityAutocompleteSelectorFactory(new CarJournalFactory(MainClass.MainWin.NavigationManager).CreateCarAutocompleteSelectorFactory());
            entityviewmodelentryCar.CompletionPopupSetWidth(false);

            var officeFilter = new EmployeeFilterViewModel();

            officeFilter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.office,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            var officeFactory = new EmployeeJournalFactory(officeFilter);

            evmeAuthor.SetEntityAutocompleteSelectorFactory(officeFactory.CreateEmployeeAutocompleteSelectorFactory());
            dateperiodpicker.StartDate  = dateperiodpicker.EndDate = DateTime.Today;
            buttonCreateReport.Clicked += OnButtonCreateReportClicked;
        }
Beispiel #14
0
        public IEntityAutocompleteSelectorFactory CreateDefaultExpenseCategoryAutocompleteSelectorFactory()
        {
            var expenceCategoryfilterViewModel = new ExpenseCategoryJournalFilterViewModel();

            expenceCategoryfilterViewModel.ExcludedIds    = _excludedIds;
            expenceCategoryfilterViewModel.HidenByDefault = true;

            IFileChooserProvider chooserProvider = new FileChooser();
            var employeeFilter = new EmployeeFilterViewModel
            {
                Status = EmployeeStatus.IsWorking
            };
            var commonServices = ServicesConfig.CommonServices;

            var employeeJournalFactory    = new EmployeeJournalFactory(employeeFilter);
            var subdivisionJournalFactory = new SubdivisionJournalFactory();
            var expenseFactory            = new ExpenseCategorySelectorFactory();

            return(new ExpenseCategoryAutoCompleteSelectorFactory(
                       commonServices,
                       expenceCategoryfilterViewModel,
                       chooserProvider,
                       employeeJournalFactory,
                       subdivisionJournalFactory,
                       expenseFactory));
        }
        void ConfigureDlg()
        {
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            dateperiodpicker.StartDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
            dateperiodpicker.EndDate   = dateperiodpicker.StartDate.AddMonths(1).AddTicks(-1);

            filter = new EmployeeFilterViewModel();

            var availablePlansToUse = new[] { WageParameterItemTypes.SalesPlan };

            lstCmbPlanType.SetRenderTextFunc <WageParameterItemTypes>(t => t.GetEnumTitle());
            lstCmbPlanType.ItemsList    = availablePlansToUse;
            lstCmbPlanType.SelectedItem = availablePlansToUse.FirstOrDefault();
            lstCmbPlanType.Changed     += LstCmbPlanType_Changed;
            LstCmbPlanType_Changed(this, new EventArgs());
            yEntRefEmployee.RepresentationModel = new EmployeesVM(filter);
            yEntRefEmployee.ChangedByUser      += (sender, e) => {
                var actualWageParameter = (yEntRefEmployee.Subject as Employee)?.GetActualWageParameter(DateTime.Now);
                if (actualWageParameter == null || actualWageParameter.WageParameterItem.WageParameterItemType != WageParameterItemTypes.SalesPlan)
                {
                    return;
                }

                lblEmployeePlan.Markup = actualWageParameter.Title;
            };
        }
Beispiel #16
0
        public CashFlow(
            ISubdivisionRepository subdivisionRepository, ICommonServices commonServices, ICategoryRepository categoryRepository)
        {
            _subdivisionRepository = subdivisionRepository ?? throw new ArgumentNullException(nameof(subdivisionRepository));
            _commonServices        = commonServices ?? throw new ArgumentNullException(nameof(commonServices));

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

            Build();

            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            comboPart.ItemsEnum            = typeof(ReportParts);
            comboIncomeCategory.ItemsList  = categoryRepository.IncomeCategories(UoW);
            comboExpenseCategory.Sensitive = comboIncomeCategory.Sensitive = false;
            var now = DateTime.Now;

            dateStart.Date = new DateTime(now.Year, now.Month, now.Day, 0, 0, 0);
            dateEnd.Date   = new DateTime(now.Year, now.Month, now.Day, 23, 59, 59);

            var officeFilter = new EmployeeFilterViewModel();

            officeFilter.SetAndRefilterAtOnce(
                x => x.Status           = EmployeeStatus.IsWorking,
                x => x.RestrictCategory = EmployeeCategory.office);
            var employeeFactory = new EmployeeJournalFactory(officeFilter);

            evmeCashier.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingOfficeEmployeeAutocompleteSelectorFactory());

            evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateWorkingEmployeeAutocompleteSelectorFactory());

            var recurciveConfig = OrmMain.GetObjectDescription <ExpenseCategory>().TableView.RecursiveTreeConfig;
            var list            = categoryRepository.ExpenseCategories(UoW);

            list.Insert(0, allItem);
            var model = recurciveConfig.CreateModel((IList)list);

            comboExpenseCategory.Model = model.Adapter;
            comboExpenseCategory.PackStart(new CellRendererText(), true);
            comboExpenseCategory.SetCellDataFunc(comboExpenseCategory.Cells[0], HandleCellLayoutDataFunc);
            comboExpenseCategory.SetActiveIter(model.IterFromNode(allItem));

            UserSubdivisions = GetSubdivisionsForUser();
            specialListCmbCashSubdivisions.SetRenderTextFunc <Subdivision>(s => s.Name);
            specialListCmbCashSubdivisions.ItemsList = UserSubdivisions;

            ylblOrganisations.Visible = specialListCmbOrganisations.Visible = false;
            Organisations             = UoW.GetAll <Organization>();
            specialListCmbOrganisations.SetRenderTextFunc <Organization>(s => s.Name);
            specialListCmbOrganisations.ItemsList = Organisations;

            int  currentUserId = commonServices.UserService.CurrentUserId;
            bool canCreateCashReportsForOrganisations =
                commonServices.PermissionService.ValidateUserPresetPermission("can_create_cash_reports_for_organisations", currentUserId);

            checkOrganisations.Visible  = canCreateCashReportsForOrganisations;
            checkOrganisations.Toggled += CheckOrganisationsToggled;
        }
        void ConfigureDlg()
        {
            TabName = "Приходный кассовый ордер самовывоза";

            Entity.TypeDocument = IncomeInvoiceDocumentType.IncomeInvoiceSelfDelivery;

            permissioncommentview.UoW             = UoW;
            permissioncommentview.Title           = "Комментарий по проверке закрытия МЛ: ";
            permissioncommentview.Comment         = Entity.CashierReviewComment;
            permissioncommentview.PermissionName  = "can_edit_cashier_review_comment";
            permissioncommentview.Comment         = Entity.CashierReviewComment;
            permissioncommentview.CommentChanged += (comment) => Entity.CashierReviewComment = comment;

            enumcomboOperation.ItemsEnum = typeof(IncomeType);
            enumcomboOperation.Binding.AddBinding(Entity, s => s.TypeOperation, w => w.SelectedItem).InitializeFromSource();
            enumcomboOperation.Sensitive = false;
            Entity.TypeOperation         = IncomeType.Payment;

            var filterCasher = new EmployeeFilterViewModel();

            filterCasher.Status = Domain.Employees.EmployeeStatus.IsWorking;
            yentryCasher.RepresentationModel = new EmployeesVM(filterCasher);
            yentryCasher.Binding.AddBinding(Entity, s => s.Casher, w => w.Subject).InitializeFromSource();
            yentryCasher.Sensitive = false;

            var filterOrders = new OrdersFilter(UoW);

            filterOrders.SetAndRefilterAtOnce(
                x => x.RestrictStatus              = OrderStatus.WaitForPayment,
                x => x.AllowPaymentTypes           = new PaymentType[] { PaymentType.cash, PaymentType.BeveragesWorld },
                x => x.RestrictSelfDelivery        = true,
                x => x.RestrictWithoutSelfDelivery = false,
                x => x.RestrictHideService         = true,
                x => x.RestrictOnlyService         = false
                );
            yentryOrder.RepresentationModel = new OrdersVM(filterOrders);
            yentryOrder.Binding.AddBinding(Entity, x => x.Order, x => x.Subject).InitializeFromSource();

            ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource();

            NotifyConfiguration.Instance.BatchSubscribeOnEntity <IncomeCategory>(
                s => comboCategory.ItemsList = CategoryRepository.SelfDeliveryIncomeCategories(UoW)
                );
            comboCategory.ItemsList = CategoryRepository.SelfDeliveryIncomeCategories(UoW);
            comboCategory.Binding.AddBinding(Entity, s => s.IncomeCategory, w => w.SelectedItem).InitializeFromSource();

            yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource();

            ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource();

            if (!CanEdit)
            {
                table1.Sensitive = false;
                ytextviewDescription.Editable = false;
                buttonSave.Sensitive          = false;
                accessfilteredsubdivisionselectorwidget.Sensitive = false;
            }

            UpdateSubdivision();
        }
Beispiel #18
0
        public EmployeesFines()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var filter = new EmployeeFilterViewModel();

            filter.Status = EmployeeStatus.IsWorking;
            yentryDriver.RepresentationModel = new EmployeesVM(filter);
        }
        protected override void ConfigureWithUow()
        {
            yentryExpense.ItemsQuery = Repository.Cash.CategoryRepository.ExpenseCategoriesQuery();

            var filter = new EmployeeFilterViewModel();

            filter.SetAndRefilterAtOnce(x => x.Status = EmployeeStatus.IsWorking);
            repEntryAccountable.RepresentationModel   = new EmployeesVM(filter);
        }
Beispiel #20
0
        public IEntityAutocompleteSelectorFactory CreateSimpleExpenseCategoryAutocompleteSelectorFactory()
        {
            var expenceCategoryfilterViewModel = new ExpenseCategoryJournalFilterViewModel();

            expenceCategoryfilterViewModel.ExcludedIds    = _excludedIds;
            expenceCategoryfilterViewModel.HidenByDefault = true;

            var employeeFilter = new EmployeeFilterViewModel
            {
                Status = EmployeeStatus.IsWorking
            };

            var employeeJournalFactory    = new EmployeeJournalFactory(employeeFilter);
            var subdivisionJournalFactory = new SubdivisionJournalFactory();
            var expenseFactory            = new ExpenseCategorySelectorFactory();

            return(new SimpleEntitySelectorFactory <ExpenseCategory, ExpenseCategoryViewModel>(() =>
            {
                var journal = new SimpleEntityJournalViewModel <ExpenseCategory, ExpenseCategoryViewModel>(
                    x => x.Name,
                    () => new ExpenseCategoryViewModel(
                        EntityUoWBuilder.ForCreate(),
                        UnitOfWorkFactory.GetDefaultFactory,
                        ServicesConfig.CommonServices,
                        employeeJournalFactory,
                        subdivisionJournalFactory,
                        expenseFactory
                        ),
                    node => new ExpenseCategoryViewModel(
                        EntityUoWBuilder.ForOpen(node.Id),
                        UnitOfWorkFactory.GetDefaultFactory,
                        ServicesConfig.CommonServices,
                        employeeJournalFactory,
                        subdivisionJournalFactory,
                        expenseFactory
                        ),
                    UnitOfWorkFactory.GetDefaultFactory,
                    ServicesConfig.CommonServices
                    );
                journal.SelectionMode = JournalSelectionMode.Single;
                journal.SetFilter(expenceCategoryfilterViewModel,
                                  filter =>
                {
                    if (filter.ShowArchive)
                    {
                        return Restrictions.Not(Restrictions.In("Id", filter.ExcludedIds.ToArray()));
                    }

                    return Restrictions.Conjunction()
                    .Add(Restrictions.Not(Restrictions.In("Id", filter.ExcludedIds.ToArray())))
                    .Add(Restrictions.Eq(
                             Projections.Property <ExpenseCategory>(c => c.IsArchive), filter.ShowArchive));
                });
                return journal;
            }));
        }
Beispiel #21
0
        void ConfigureDlg()
        {
            accessfilteredsubdivisionselectorwidget.OnSelected += Accessfilteredsubdivisionselectorwidget_OnSelected;
            if (Entity.RelatedToSubdivision != null)
            {
                accessfilteredsubdivisionselectorwidget.SelectIfPossible(Entity.RelatedToSubdivision);
            }

            var filterEmployee = new EmployeeFilterViewModel();

            filterEmployee.Status = EmployeeStatus.IsWorking;
            yentryEmployee.RepresentationModel = new ViewModel.EmployeesVM(filterEmployee);
            yentryEmployee.Binding.AddBinding(Entity, e => e.Accountable, w => w.Subject).InitializeFromSource();

            var filterCasher = new EmployeeFilterViewModel();

            filterCasher.Status = EmployeeStatus.IsWorking;
            yentryCasher.RepresentationModel = new ViewModel.EmployeesVM(filterCasher);
            yentryCasher.Binding.AddBinding(Entity, e => e.Casher, w => w.Subject).InitializeFromSource();

            ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource();

            NotifyConfiguration.Instance.BatchSubscribeOnEntity <ExpenseCategory>(HandleBatchEntityChangeHandler);
            UpdateExpenseCategories();

            comboExpense.Binding.AddBinding(Entity, s => s.ExpenseCategory, w => w.SelectedItem).InitializeFromSource();

            yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource();

            specialListCmbOrganisation.ShowSpecialStateNot = true;
            specialListCmbOrganisation.ItemsList           = UoW.GetAll <Organization>();
            specialListCmbOrganisation.Binding.AddBinding(Entity, e => e.Organisation, w => w.SelectedItem).InitializeFromSource();

            ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource();

            ytreeviewDebts.ColumnsConfig = ColumnsConfigFactory.Create <RecivedAdvance>()
                                           .AddColumn("Закрыть").AddToggleRenderer(a => a.Selected).Editing()
                                           .AddColumn("Дата").AddTextRenderer(a => a.Advance.Date.ToString())
                                           .AddColumn("Получено").AddTextRenderer(a => a.Advance.Money.ToString("C"))
                                           .AddColumn("Непогашено").AddTextRenderer(a => a.Advance.UnclosedMoney.ToString("C"))
                                           .AddColumn("Статья").AddTextRenderer(a => a.Advance.ExpenseCategory.Name)
                                           .AddColumn("Основание").AddTextRenderer(a => a.Advance.Description)
                                           .Finish();
            UpdateSubdivision();

            if (!CanEdit)
            {
                table1.Sensitive = false;
                accessfilteredsubdivisionselectorwidget.Sensitive = false;
                buttonSave.Sensitive          = false;
                ytreeviewDebts.Sensitive      = false;
                ytextviewDescription.Editable = false;
            }
        }
Beispiel #22
0
        private void BindControls(EmployeeFilterViewModel model)
        {
            if (model == null)
            {
                model = new EmployeeFilterViewModel();
            }

            model.Departments = _cache.GetDepartmentSelectList(1);
            model.JobTitles   = _cache.GetJobTitleSelectList(null, 1);
            model.Branchs     = _cache.GetBranchSelectList(1);
        }
        // GET: Employee
        public async Task <ActionResult> Index()
        {
            var allEmployees = await GetTangentEmployeeService().FetchEmployeesAsync();

            var modelEmployee = Mapper.Map <List <EmployeeViewModel> >(allEmployees);
            var model         = new EmployeeFilterViewModel {
                Employees = modelEmployee, Users = BuildUserSelectList(allEmployees),
            };

            return(View(model));
        }
Beispiel #24
0
        public MastersReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var filter = new EmployeeFilterViewModel();

            filter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.driver,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            yentryreferenceDriver.RepresentationModel = new EmployeesVM(filter);
        }
Beispiel #25
0
        public OrderCreationDateReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var filter = new EmployeeFilterViewModel();

            filter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.office,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            yEntRefEmployee.RepresentationModel = new EmployeesVM(filter);
        }
        void ConfigureDlg()
        {
            TabName = "Расходный кассовый ордер самовывоза";

            Entity.TypeDocument = ExpenseInvoiceDocumentType.ExpenseInvoiceSelfDelivery;

            enumcomboOperation.ItemsEnum = typeof(ExpenseType);
            enumcomboOperation.Binding.AddBinding(Entity, s => s.TypeOperation, w => w.SelectedItem).InitializeFromSource();
            enumcomboOperation.Sensitive = false;
            Entity.TypeOperation         = ExpenseType.ExpenseSelfDelivery;

            var filterOrders = new OrdersFilter(UoW);

            filterOrders.SetAndRefilterAtOnce(
                x => x.RestrictStatus              = OrderStatus.WaitForPayment,
                x => x.AllowPaymentTypes           = new PaymentType[] { PaymentType.cash, PaymentType.BeveragesWorld },
                x => x.RestrictSelfDelivery        = true,
                x => x.RestrictWithoutSelfDelivery = false,
                x => x.RestrictHideService         = true,
                x => x.RestrictOnlyService         = false
                );
            yentryOrder.RepresentationModel = new OrdersVM(filterOrders);
            yentryOrder.Binding.AddBinding(Entity, x => x.Order, x => x.Subject).InitializeFromSource();

            var filterCasher = new EmployeeFilterViewModel();

            filterCasher.Status = Domain.Employees.EmployeeStatus.IsWorking;
            yentryCasher.RepresentationModel = new EmployeesVM(filterCasher);
            yentryCasher.Binding.AddBinding(Entity, s => s.Casher, w => w.Subject).InitializeFromSource();
            yentryCasher.Sensitive = false;

            ydateDocument.Binding.AddBinding(Entity, s => s.Date, w => w.Date).InitializeFromSource();

            NotifyConfiguration.Instance.BatchSubscribeOnEntity <ExpenseCategory>(
                s => comboExpense.ItemsList = CategoryRepository.ExpenseSelfDeliveryCategories(UoW)
                );
            comboExpense.ItemsList = CategoryRepository.ExpenseSelfDeliveryCategories(UoW);
            comboExpense.Binding.AddBinding(Entity, s => s.ExpenseCategory, w => w.SelectedItem).InitializeFromSource();

            yspinMoney.Binding.AddBinding(Entity, s => s.Money, w => w.ValueAsDecimal).InitializeFromSource();

            ytextviewDescription.Binding.AddBinding(Entity, s => s.Description, w => w.Buffer.Text).InitializeFromSource();

            UpdateSubdivision();

            if (!CanEdit)
            {
                table1.Sensitive = false;
                accessfilteredsubdivisionselectorwidget.Sensitive = false;
                buttonSave.Sensitive          = false;
                ytextviewDescription.Editable = false;
            }
        }
        public async Task <ActionResult> Index(EmployeeFilterViewModel model)
        {
            var taskAll    = GetTangentEmployeeService().FetchEmployeesAsync();
            var taskSearch = GetTangentEmployeeService().SearchEmployeesAsync(model);
            await Task.WhenAll(taskAll, taskSearch);

            var allEmployees  = await taskAll;
            var employees     = await taskSearch;
            var modelEmployee = Mapper.Map <List <EmployeeViewModel> >(employees);

            model.Employees = modelEmployee;
            model.Users     = BuildUserSelectList(allEmployees);
            return(View(model));
        }
        public OrderCreationDateReport()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var officeFilter = new EmployeeFilterViewModel();

            officeFilter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.office,
                x => x.Status           = EmployeeStatus.IsWorking);
            var employeeFactory = new EmployeeJournalFactory(officeFilter);

            evmeEmployee.SetEntityAutocompleteSelectorFactory(employeeFactory.CreateEmployeeAutocompleteSelectorFactory());
            datePeriodPicker.PeriodChanged += (sender, e) => CanRun();
            buttonCreateReport.Clicked     += (sender, e) => OnUpdate(true);
        }
        public EmployeesJournalViewModel CreateWorkingForwarderEmployeeJournal()
        {
            CreateNewDependencies();

            var forwarderFilter = new EmployeeFilterViewModel
            {
                HidenByDefault = true,
            };

            forwarderFilter.SetAndRefilterAtOnce(
                x => x.Status   = EmployeeStatus.IsWorking,
                x => x.Category = EmployeeCategory.forwarder);

            return(CreateEmployeesJournal(forwarderFilter));
        }
        public ShortfallBattlesReport()
        {
            this.Build();
            ydatepicker.Date         = DateTime.Now.Date;
            comboboxDriver.ItemsEnum = typeof(Drivers);
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            var filter = new EmployeeFilterViewModel();

            filter.SetAndRefilterAtOnce(
                x => x.RestrictCategory = EmployeeCategory.driver,
                x => x.Status           = EmployeeStatus.IsWorking
                );
            yentryDriver.RepresentationModel  = new EmployeesVM(filter);
            ySpecCmbNonReturnReason.ItemsList = UoW.Session.QueryOver <NonReturnReason>().List();
        }