Пример #1
0
        public HistoryView()
        {
            this.Build();

            UoW = UnitOfWorkFactory.CreateWithoutRoot();

            datacomboObject.SetRenderTextFunc <HistoryObjectDesc> (x => x.DisplayName);
            datacomboObject.ItemsList = HistoryMain.TraceClasses.ToList();
            comboProperty.SetRenderTextFunc <HistoryFieldDesc> (x => x.DisplayName);
            comboAction.ItemsEnum = typeof(EntityChangeOperation);
            ComboWorks.ComboFillReference(comboUsers, "users", ComboWorks.ListMode.WithAll);
            selectperiod.ActiveRadio = SelectPeriod.Period.Today;

            datatreeChangesets.ColumnsConfig = Gamma.GtkWidgets.ColumnsConfigFactory.Create <ChangedEntity> ()
                                               .AddColumn("Время").AddTextRenderer(x => x.ChangeTimeText)
                                               .AddColumn("Пользователь").AddTextRenderer(x => x.ChangeSet.UserName)
                                               .AddColumn("Действие").AddTextRenderer(x => x.OperationText)
                                               .AddColumn("Тип объекта").AddTextRenderer(x => x.ObjectTitle)
                                               .AddColumn("Объект").AddTextRenderer(x => x.EntityTitle)
                                               .AddColumn("Откуда изменялось").AddTextRenderer(x => x.ChangeSet.ActionName)
                                               .Finish();
            datatreeChangesets.Selection.Changed += OnChangeSetSelectionChanged;
            GtkScrolledWindowChangesets.Vadjustment.ValueChanged += Vadjustment_ValueChanged;

            datatreeChanges.ColumnsConfig = Gamma.GtkWidgets.ColumnsConfigFactory.Create <FieldChange> ()
                                            .AddColumn("Поле").AddTextRenderer(x => x.FieldTitle)
                                            .AddColumn("Операция").AddTextRenderer(x => x.TypeText)
                                            .AddColumn("Новое значение").AddTextRenderer(x => x.NewPangoText, useMarkup: true)
                                            .AddColumn("Старое значение").AddTextRenderer(x => x.OldPangoText, useMarkup: true)
                                            .Finish();

            canUpdate = true;
            UpdateJournal();
        }
Пример #2
0
 protected void OnReferenceUpdate(object sender, QSMain.ReferenceUpdatedEventArgs e)
 {
     switch (e.ReferenceTable)
     {
     case "doc_types":
         ComboWorks.ComboFillReference(comboDocType, "doc_types", ComboWorks.ListMode.OnlyItems);
         break;
     }
 }
Пример #3
0
 private ReportInfo GetReportInfo()
 {
     return(new ReportInfo
     {
         Identifier = "WearStatement",
         Parameters = new Dictionary <string, object>
         {
             { "id", ComboWorks.GetActiveId(comboObject) },
         }
     });
 }
Пример #4
0
        public GlassOrders()
        {
            this.Build();

            QSMain.CheckConnectionAlive();
            ComboWorks.ComboFillReference(comboStatus, "status", ComboWorks.ListMode.WithNo);

            string       sql = "SELECT id, name FROM stocks";
            MySqlCommand cmd = new MySqlCommand(sql, QSMain.connectionDB);

            using (MySqlDataReader rdr = cmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    checklistStock.AddCheckButton(rdr["id"].ToString(), rdr["name"].ToString());
                }
            }
        }
Пример #5
0
        protected void OnButtonOkClicked(object sender, EventArgs e)
        {
            string param = String.Format("status={0}&start={1}&end={2}&cost1={3}",
                                         ComboWorks.GetActiveId(comboStatus),
                                         String.Format("{0:u}", selectperiod1.DateBegin).Substring(0, 10),
                                         String.Format("{0:u}", selectperiod1.DateEnd).Substring(0, 10),
                                         1);

            param += "&stock=";
            foreach (KeyValuePair <string, Gtk.CheckButton> pair in checklistStock.CheckButtons)
            {
                if (pair.Value.Active)
                {
                    param += String.Format("{0},", pair.Key);
                }
            }
            logger.Debug(String.Format("Report parameters=|{0}|", param));

            ViewReportExt.Run("glassorders", param.TrimEnd(','));
        }
Пример #6
0
        public MainWindow() : base(WindowType.Toplevel)
        {
            Build();

            QSMain.StatusBarLabel = labelStatus;
            this.Title            = QSSupportLib.MainSupport.GetTitle();
            QSMain.MakeNewStatusTargetForNlog();
            QSSupportLib.MainSupport.LoadBaseParameters();

            MainUpdater.RunCheckVersion(true, true, true);

            Reference.RunReferenceItemDlg += OnRunReferenceItemDialog;
            QSMain.ReferenceUpdated       += OnReferenceUpdate;

            if (QSMain.User.Login == "root")
            {
                string        Message = "Вы зашли в программу под администратором базы данных. У вас есть только возможность создавать других пользователей.";
                MessageDialog md      = new MessageDialog(this, DialogFlags.DestroyWithParent,
                                                          MessageType.Info,
                                                          ButtonsType.Ok,
                                                          Message);
                md.Run();
                md.Destroy();
                OnUsersActionActivated(null, null);
                return;
            }

            UsersAction.Sensitive    = QSMain.User.Admin;
            labelUser.LabelProp      = QSMain.User.Name;
            ActionDocTypes.Sensitive = QSMain.User.Permissions["edit_db"];
            buttonInput.Sensitive    = QSMain.User.Permissions["can_edit"];

            // Создаем главное окно
            ComboWorks.ComboFillReference(comboDocType, "doc_types", ComboWorks.ListMode.OnlyItems);
            selectperiodDocs.ActiveRadio = SelectPeriod.Period.Week;
        }
Пример #7
0
        void UpdateJournal(bool nextPage = false)
        {
            DateTime startTime = DateTime.Now;

            if (!nextPage)
            {
                takenRows = 0;
                takenAll  = false;
            }

            if (!canUpdate)
            {
                return;
            }

            logger.Info("Получаем журнал изменений{0}...", takenRows > 0 ? $"({takenRows}+)" : "");
            ChangeSet changeSetAlias = null;

            var query = UoW.Session.QueryOver <ChangedEntity>()
                        .JoinAlias(ce => ce.ChangeSet, () => changeSetAlias)
                        .Fetch(x => x.ChangeSet).Eager
                        .Fetch(x => x.ChangeSet.User).Eager;

            if (!selectperiod.IsAllTime)
            {
                query.Where(ce => ce.ChangeTime >= selectperiod.DateBegin && ce.ChangeTime < selectperiod.DateEnd.AddDays(1));
            }

            var selectedClassType = (datacomboObject.SelectedItem as HistoryObjectDesc);

            if (selectedClassType != null)
            {
                query.Where(ce => ce.EntityClassName == selectedClassType.ObjectName);
            }

            if (ComboWorks.GetActiveId(comboUsers) > 0)
            {
                query.Where(() => changeSetAlias.User.Id == ComboWorks.GetActiveId(comboUsers));
            }

            if (comboAction.SelectedItem is EntityChangeOperation)
            {
                query.Where(ce => ce.Operation == (EntityChangeOperation)comboAction.SelectedItem);
            }

            if (!String.IsNullOrWhiteSpace(entrySearchEntity.Text))
            {
                var pattern = $"%{entrySearchEntity.Text}%";
                query.Where(ce => ce.EntityTitle.IsLike(pattern));
            }

            if (!String.IsNullOrWhiteSpace(entrySearchValue.Text) || comboProperty.SelectedItem is HistoryFieldDesc)
            {
                FieldChange fieldChangeAlias = null;
                query.JoinAlias(ce => ce.Changes, () => fieldChangeAlias);

                var selectedProperty = comboProperty.SelectedItem as HistoryFieldDesc;
                if (selectedProperty != null)
                {
                    query.Where(() => fieldChangeAlias.Path == selectedProperty.FieldName);
                }


                if (!String.IsNullOrWhiteSpace(entrySearchValue.Text))
                {
                    var pattern = $"%{entrySearchValue.Text}%";
                    query.Where(() => fieldChangeAlias.OldValue.IsLike(pattern) ||
                                fieldChangeAlias.NewValue.IsLike(pattern));
                }
            }

            var taked = query.OrderBy(x => x.ChangeTime).Desc
                        .Skip(takenRows)
                        .Take(pageSize)
                        .List();

            if (takenRows > 0)
            {
                changedEntities.AddRange(taked);
                datatreeChangesets.YTreeModel.EmitModelChanged();
            }
            else
            {
                changedEntities = taked.ToList();
                datatreeChangesets.ItemsDataSource = changedEntities;
            }

            if (taked.Count < pageSize)
            {
                takenAll = true;
            }

            takenRows = changedEntities.Count;

            logger.Debug("Время запроса {0}", DateTime.Now - startTime);
            logger.Info(NumberToTextRus.FormatCase(changedEntities.Count, "Загружено изменение {0}{1} объекта.", "Загружено изменение {0}{1} объектов.", "Загружено изменение {0}{1} объектов.", takenAll ? "" : "+"));
        }
Пример #8
0
        public InputDocs() :
            base(Gtk.WindowType.Toplevel)
        {
            this.Build();

            FieldLables  = new Dictionary <int, Label>();
            FieldWidgets = new Dictionary <int, object>();
            FieldIcons   = new Dictionary <int, Gtk.Image>();
            ComboWorks.ComboFillReference(comboType, "doc_types", ComboWorks.ListMode.OnlyItems, false);
            ImageList = new ImageTreeStore(typeof(int),         //0 - id
                                           typeof(string),      //1 - Image Name
                                           typeof(string),      //2 - full path
                                           typeof(Document),    //3 - document
                                           typeof(Pixbuf),      //4 - thumbnails
                                           typeof(Pixbuf),      //5 - full image
                                           typeof(bool),        //6 - IsImage
                                           typeof(string),      //7 - Doc name
                                           typeof(string)       //8 - Doc Icon Name
                                           );

            TreeViewColumn ImageColumn = new TreeViewColumn();
            var            ImageCell   = new ImageListCellRenderer(Pango.FontDescription.FromString("Tahoma 10"), IconSize.Menu);

            ImageCell.Xalign = 0;
            ImageColumn.PackStart(ImageCell, true);
            ImageColumn.AddAttribute(ImageCell, "pixbuf", 4);
            ImageColumn.AddAttribute(ImageCell, "text", 7);
            ImageColumn.AddAttribute(ImageCell, "IsImageRow", 6);
            ImageColumn.AddAttribute(ImageCell, "IconName", 8);

            treeviewImages.AppendColumn(ImageColumn);
            treeviewImages.Model         = ImageList;
            treeviewImages.Reorderable   = true;
            treeviewImages.TooltipColumn = 1;
            treeviewImages.ShowAll();
            treeviewImages.Selection.Changed += OnTreeviewImagesSelectionChanged;
            NextDocNumber = 1;

            //Настраиваем сканирование
            logger.Debug("Initialaze scan");
            //scan = new ScanAuxWorks();
            try
            {
                scan                = new ScanWorks();
                scan.ScanerSetup    = ScanerSetup.Native;
                scan.Pulse         += OnScanWorksPulse;
                scan.ImageTransfer += OnScanWorksImageTransfer;

                var scanners = scan.GetScannerList();
                if (scanners.Length > 0)
                {
                    comboScaner.ItemsList = scanners;
                    comboScaner.Active    = scan.CurrentScanner;
                }
                else
                {
                    comboScaner.Sensitive = ScanAction.Sensitive = false;
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Не удалось инициализировать подсистему сканирования.");
                comboScaner.Sensitive = ScanAction.Sensitive = false;
            }
        }
Пример #9
0
 public WearStatement()
 {
     this.Build();
     ComboWorks.ComboFillReference(comboObject, "objects", ComboWorks.ListMode.OnlyItems);
     comboObject.Active = 0;
 }