Esempio n. 1
0
 public PlanImplementationReport(bool orderById = false)
 {
     this.Build();
     UoW     = UnitOfWorkFactory.CreateWithoutRoot();
     _filter = new SelectableParametersReportFilter(UoW);
     ConfigureDlg();
 }
 public OnecCommentsReport()
 {
     this.Build();
     UoW     = UnitOfWorkFactory.CreateWithoutRoot();
     _filter = new SelectableParametersReportFilter(UoW);
     ConfigureReport();
 }
 public NomenclatureForShipment()
 {
     this.Build();
     UoW              = UnitOfWorkFactory.CreateWithoutRoot();
     _filter          = new SelectableParametersReportFilter(UoW);
     ydatepicker.Date = DateTime.Today.AddDays(1);
     ConfigureDlg();
 }
Esempio n. 4
0
 public EquipmentReport(IInteractiveService interactiveService)
 {
     this.Build();
     UoW    = UnitOfWorkFactory.CreateWithoutRoot();
     filter = new SelectableParametersReportFilter(UoW);
     ConfigureDlg();
     _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));
 }
Esempio n. 5
0
 public SalesByDiscountReport()
 {
     Build();
     UoW     = UnitOfWorkFactory.CreateWithoutRoot();
     _filter = new SelectableParametersReportFilter(UoW);
     dateperiodpicker.StartDate = dateperiodpicker.EndDate = DateTime.Today;
     ConfigureMultipleFilter();
     yenumcomboboxDateType.ItemsEnum    = typeof(OrderDateType);
     yenumcomboboxDateType.SelectedItem = OrderDateType.DeliveryDate;
 }
Esempio n. 6
0
 public StockMovements()
 {
     this.Build();
     UoW = UnitOfWorkFactory.CreateWithoutRoot();
     yentryrefWarehouse.SubjectType = typeof(Warehouse);
     filter = new SelectableParametersReportFilter(UoW);
     if (CurrentUserSettings.Settings.DefaultWarehouse != null)
     {
         yentryrefWarehouse.Subject = CurrentUserSettings.Settings.DefaultWarehouse;
     }
     ConfigureDlg();
 }
Esempio n. 7
0
        public SalesReport(IEmployeeRepository employeeRepository)
        {
            this.employeeRepository = employeeRepository;

            this.Build();
            UoW    = UnitOfWorkFactory.CreateWithoutRoot();
            filter = new SelectableParametersReportFilter(UoW);

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

            ConfigureDlg();
        }
Esempio n. 8
0
        public SalesReport(IEmployeeRepository employeeRepository, IInteractiveService interactiveService)
        {
            _employeeRepository = employeeRepository ?? throw new ArgumentNullException(nameof(employeeRepository));
            _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));

            this.Build();
            UoW     = UnitOfWorkFactory.CreateWithoutRoot();
            _filter = new SelectableParametersReportFilter(UoW);

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

            ConfigureDlg();
        }
Esempio n. 9
0
        public ReturnedTareReport(IInteractiveService interactiveService)
        {
            _interactiveService = interactiveService ?? throw new ArgumentNullException(nameof(interactiveService));

            UoW     = UnitOfWorkFactory.CreateWithoutRoot();
            _filter = new SelectableParametersReportFilter(UoW);
            Build();

            btnCreateReport.Clicked             += (sender, e) => OnUpdate(true);
            btnCreateReport.Sensitive            = false;
            daterangepicker.PeriodChangedByUser += Daterangepicker_PeriodChangedByUser;
            yenumcomboboxDateType.ItemsEnum      = typeof(OrderDateType);
            yenumcomboboxDateType.SelectedItem   = OrderDateType.CreationDate;
            buttonHelp.Clicked += OnButtonHelpClicked;

            ConfigureFilter();
        }
Esempio n. 10
0
        public StockMovements()
        {
            this.Build();
            UoW = UnitOfWorkFactory.CreateWithoutRoot();
            yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery();
            filter = new SelectableParametersReportFilter(UoW);

            if (CurrentUserSettings.Settings.DefaultWarehouse != null)
            {
                yentryrefWarehouse.Subject = CurrentUserSettings.Settings.DefaultWarehouse;
            }

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

            ConfigureDlg();
        }
        public OrdersCreationTimeReport()
        {
            this.Build();
            UoW    = UnitOfWorkFactory.CreateWithoutRoot();
            filter = new SelectableParametersReportFilter(UoW);
            buttonCreateReport.Clicked += (sender, e) => OnUpdate(true);

            datepicker.IsEditable = true;

            ytimeentryCreate1.FocusOutEvent += YtimeentryCreate1_FocusOutEvent;
            ytimeentryCreate2.FocusOutEvent += YtimeentryCreate2_FocusOutEvent;
            ytimeentryCreate3.FocusOutEvent += YtimeentryCreate3_FocusOutEvent;

            ytimeentryDeliveryInterval.Changed      += (sender, e) => UpdateButtonAddIntervalSensitive();
            ybuttonAddDeliveryInterval.Clicked      += (sender, e) => AddTime(ytimeentryDeliveryInterval.Time);
            ybuttonDeleteDeliveryInterval.Clicked   += (sender, e) => DeleteTime();
            treeviewDeliveryIntervals.KeyPressEvent += YtreeviewDeliveryIntervals_KeyPressEvent;;

            ConfigureReport();
            SetDefaultValues();
        }
Esempio n. 12
0
        void ConfigureDlg()
        {
            if (StoreDocumentHelper.CheckAllPermissions(UoW.IsNew, WarehousePermissions.InventoryEdit, Entity.Warehouse))
            {
                FailInitialize = true;
                return;
            }

            var editing = StoreDocumentHelper.CanEditDocument(WarehousePermissions.InventoryEdit, Entity.Warehouse);

            ydatepickerDocDate.Sensitive = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = editing;

            ytreeviewItems.Sensitive                   =
                buttonAdd.Sensitive                    =
                    buttonFillItems.Sensitive          =
                        buttonFine.Sensitive           =
                            buttonDeleteFine.Sensitive = editing;

            ydatepickerDocDate.Binding.AddBinding(Entity, e => e.TimeStamp, w => w.Date).InitializeFromSource();
            yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.InventoryEdit);
            yentryrefWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.Subject).InitializeFromSource();

            ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource();

            string errorMessage       = "Не установлены единицы измерения у следующих номенклатур :" + Environment.NewLine;
            int    wrongNomenclatures = 0;

            foreach (var item in UoWGeneric.Root.Items)
            {
                if (item.Nomenclature.Unit == null)
                {
                    errorMessage += string.Format("Номер: {0}. Название: {1}{2}",
                                                  item.Nomenclature.Id, item.Nomenclature.Name, Environment.NewLine);
                    wrongNomenclatures++;
                }
            }
            if (wrongNomenclatures > 0)
            {
                MessageDialogHelper.RunErrorDialog(errorMessage);
                FailInitialize = true;
                return;
            }

            var permmissionValidator =
                new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), _employeeRepository);

            Entity.CanEdit =
                permmissionValidator.Validate(
                    typeof(InventoryDocument), ServicesConfig.UserService.CurrentUserId, nameof(RetroactivelyClosePermission));

            if (!Entity.CanEdit && Entity.TimeStamp.Date != DateTime.Now.Date)
            {
                ydatepickerDocDate.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource();
                yentryrefWarehouse.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource();
                ytextviewCommnet.Binding.AddFuncBinding(Entity, e => e.CanEdit, w => w.Sensitive).InitializeFromSource();
                buttonSave.Sensitive                       = false;
                ytreeviewItems.Sensitive                   =
                    buttonAdd.Sensitive                    =
                        buttonFillItems.Sensitive          =
                            buttonFine.Sensitive           =
                                buttonDeleteFine.Sensitive = false;
            }
            else
            {
                Entity.CanEdit = true;
            }

            filter = new SelectableParametersReportFilter(UoW);

            var nomenclatureParam = filter.CreateParameterSet(
                "Номенклатуры",
                "nomenclature",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <Nomenclature> resultAlias = null;
                var query = UoW.Session.QueryOver <Nomenclature>()
                            .Where(x => !x.IsArchive);
                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        var filterCriterion = f();
                        if (filterCriterion != null)
                        {
                            query.Where(filterCriterion);
                        }
                    }
                }

                query.SelectList(list => list
                                 .Select(x => x.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(x => x.OfficialName).WithAlias(() => resultAlias.EntityTitle)
                                 );
                query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <Nomenclature> >());
                return(query.List <SelectableParameter>());
            })
                );

            var nomenclatureTypeParam = filter.CreateParameterSet(
                "Типы номенклатур",
                "nomenclature_type",
                new ParametersEnumFactory <NomenclatureCategory>()
                );

            nomenclatureParam.AddFilterOnSourceSelectionChanged(nomenclatureTypeParam,
                                                                () => {
                var selectedValues = nomenclatureTypeParam.GetSelectedValues();
                if (!selectedValues.Any())
                {
                    return(null);
                }
                return(Restrictions.On <Nomenclature>(x => x.Category).IsIn(nomenclatureTypeParam.GetSelectedValues().ToArray()));
            }
                                                                );

            //Предзагрузка. Для избежания ленивой загрузки
            UoW.Session.QueryOver <ProductGroup>().Fetch(SelectMode.Fetch, x => x.Childs).List();

            filter.CreateParameterSet(
                "Группы товаров",
                "product_group",
                new RecursiveParametersFactory <ProductGroup>(UoW,
                                                              (filters) => {
                var query = UoW.Session.QueryOver <ProductGroup>();
                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        query.Where(f());
                    }
                }
                return(query.List());
            },
                                                              x => x.Name,
                                                              x => x.Childs)
                );

            var filterViewModel = new SelectableParameterReportFilterViewModel(filter);
            var filterWidget    = new SelectableParameterReportFilterView(filterViewModel);

            vboxParameters.Add(filterWidget);
            filterWidget.Show();

            ConfigNomenclatureColumns();
        }
Esempio n. 13
0
        void ConfigureDlg()
        {
            canEdit = !UoW.IsNew && StoreDocumentHelper.CanEditDocument(WarehousePermissions.ShiftChangeEdit, Entity.Warehouse);

            if (Entity.Id != 0 && Entity.TimeStamp < DateTime.Today)
            {
                var permissionValidator = new EntityExtendedPermissionValidator(PermissionExtensionSingletonStore.GetInstance(), EmployeeSingletonRepository.GetInstance());
                canEdit &= permissionValidator.Validate(typeof(ShiftChangeWarehouseDocument), UserSingletonRepository.GetInstance().GetCurrentUser(UoW).Id, nameof(RetroactivelyClosePermission));
            }

            canCreate = UoW.IsNew && !StoreDocumentHelper.CheckCreateDocument(WarehousePermissions.ShiftChangeCreate, Entity.Warehouse);

            if (!canCreate && UoW.IsNew)
            {
                FailInitialize = true;
                return;
            }

            if (!canEdit && !UoW.IsNew)
            {
                MessageDialogHelper.RunWarningDialog("У вас нет прав на изменение этого документа.");
            }

            ydatepickerDocDate.Sensitive = yentryrefWarehouse.IsEditable = ytextviewCommnet.Editable = canEdit || canCreate;

            ytreeviewNomenclatures.Sensitive =
                buttonFillItems.Sensitive    =
                    buttonAdd.Sensitive      = canEdit || canCreate;

            ytreeviewNomenclatures.ItemsDataSource = Entity.ObservableItems;
            ytreeviewNomenclatures.YTreeModel?.EmitModelChanged();

            ydatepickerDocDate.Binding.AddBinding(Entity, e => e.TimeStamp, w => w.Date).InitializeFromSource();
            if (UoW.IsNew)
            {
                yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.ShiftChangeCreate);
            }
            if (!UoW.IsNew)
            {
                yentryrefWarehouse.ItemsQuery = StoreDocumentHelper.GetRestrictedWarehouseQuery(WarehousePermissions.ShiftChangeEdit);
            }
            yentryrefWarehouse.Binding.AddBinding(Entity, e => e.Warehouse, w => w.Subject).InitializeFromSource();
            yentryrefWarehouse.Changed += OnWarehouseChanged;

            ytextviewCommnet.Binding.AddBinding(Entity, e => e.Comment, w => w.Buffer.Text).InitializeFromSource();

            string errorMessage       = "Не установлены единицы измерения у следующих номенклатур :" + Environment.NewLine;
            int    wrongNomenclatures = 0;

            foreach (var item in Entity.Items)
            {
                if (item.Nomenclature.Unit == null)
                {
                    errorMessage += string.Format("Номер: {0}. Название: {1}{2}",
                                                  item.Nomenclature.Id, item.Nomenclature.Name, Environment.NewLine);
                    wrongNomenclatures++;
                }
            }
            if (wrongNomenclatures > 0)
            {
                MessageDialogHelper.RunErrorDialog(errorMessage);
                FailInitialize = true;
                return;
            }

            filter = new SelectableParametersReportFilter(UoW);

            var nomenclatureParam = filter.CreateParameterSet(
                "Номенклатуры",
                "nomenclature",
                new ParametersFactory(UoW, (filters) => {
                SelectableEntityParameter <Nomenclature> resultAlias = null;
                var query = UoW.Session.QueryOver <Nomenclature>()
                            .Where(x => !x.IsArchive);
                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        var filterCriterion = f();
                        if (filterCriterion != null)
                        {
                            query.Where(filterCriterion);
                        }
                    }
                }

                query.SelectList(list => list
                                 .Select(x => x.Id).WithAlias(() => resultAlias.EntityId)
                                 .Select(x => x.OfficialName).WithAlias(() => resultAlias.EntityTitle)
                                 );
                query.TransformUsing(Transformers.AliasToBean <SelectableEntityParameter <Nomenclature> >());
                return(query.List <SelectableParameter>());
            })
                );

            var nomenclatureTypeParam = filter.CreateParameterSet(
                "Типы номенклатур",
                "nomenclature_type",
                new ParametersEnumFactory <NomenclatureCategory>()
                );

            nomenclatureParam.AddFilterOnSourceSelectionChanged(nomenclatureTypeParam,
                                                                () => {
                var selectedValues = nomenclatureTypeParam.GetSelectedValues();
                if (!selectedValues.Any())
                {
                    return(null);
                }
                return(Restrictions.On <Nomenclature>(x => x.Category).IsIn(nomenclatureTypeParam.GetSelectedValues().ToArray()));
            }
                                                                );

            //Предзагрузка. Для избежания ленивой загрузки
            UoW.Session.QueryOver <ProductGroup>().Fetch(SelectMode.Fetch, x => x.Childs).List();

            filter.CreateParameterSet(
                "Группы товаров",
                "product_group",
                new RecursiveParametersFactory <ProductGroup>(UoW,
                                                              (filters) => {
                var query = UoW.Session.QueryOver <ProductGroup>();
                if (filters != null && filters.Any())
                {
                    foreach (var f in filters)
                    {
                        query.Where(f());
                    }
                }
                return(query.List());
            },
                                                              x => x.Name,
                                                              x => x.Childs)
                );

            var filterViewModel = new SelectableParameterReportFilterViewModel(filter);
            var filterWidget    = new SelectableParameterReportFilterView(filterViewModel);

            vboxParameters.Add(filterWidget);
            filterWidget.Show();

            ConfigureNomenclaturesView();
        }