/// <summary>Список работников</summary>
        public static Worker[] GetWorkers(data.ETypeTemplate type, bool Positions, string list = null)
        {
            var ratios = LogicHelper.RatioSignerLogic.Find(DateControl_Class.SelectMonth, type, list);

            var workers = ratios.Select(x => new Worker(x.WorkerID)).ToArray();

            return(workers);
        }
        /// <summary>Получить работников согласно таблице подписантов</summary>
        public static Worker[] GetWorkers(data.ETypeTemplate type)
        {
            //var workers = LogicHelper.RatioSignerLogic.Find(DateControl_Class.SelectMonth, type);

            //return workers.Select(x => x.Worker).ToArray();

            return(LogicHelper.WorkerLogic.Find().ToArray());
        }
Esempio n. 3
0
        public static TP Get(data.ETypeTemplate type)
        {
            G.TemplatePrint.QUERRY()
            .SHOW
            .WHERE
            .C(C.TemplatePrint.TypeTemplate, (uint)type)
            .AND
            .OB()
            .AC(C.TemplatePrint.YM).Less.BV(DateControl_Class.SelectMonth)
            .OR
            .C(C.TemplatePrint.YM, 0)
            .CB()
            .DO();

            TP[] list = new TP[G.TemplatePrint.Rows.Count];

            for (int i = 0; i < list.Length; i++)
            {
                list[i] = new TP(G.TemplatePrint.Rows.GetID(i));
            }

            if (list.Length == 0)
            {
                MessageBox.Show("В базе не найдены ссылки на шаблоны!", "ВНИМАНИЕ!", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(null);
            }

            var result = list.OrderBy(x => x.YM).Last();

            if (CheckTemplateExist(result.Path))
            {
                G.TextFromTemplate.QUERRY()
                .SHOW
                .WHERE
                .C(C.TextFromTemplate.TemplatePrint, result.ID)
                .DO();

                result.textFromTP = new TextFromTP[G.TextFromTemplate.Rows.Count];

                for (int i = 0; i < result.textFromTP.Length; i++)
                {
                    result.textFromTP[i] = new TextFromTP(G.TextFromTemplate.Rows.GetID(i));
                }

                return(result);
            }

            return(null);
        }
        /// <summary>Получить таблицу работников соглассно таблице подписантов</summary>
        public static DataTable GetWorkerDT(data.ETypeTemplate type)
        {
            DataTable result = new DataTable();

            result.Columns.Add("ID");
            result.Columns.Add("ФИО");
            result.Columns.Add("Должность");
            var worker = GetWorkers(type);

            foreach (var one in worker)
            {
                result.Rows.Add(one.ID, one.FIO, one.Post);
            }
            return(result);
        }
        /// <summary>Получить подписывающего соглассно таблице подписантов</summary>
        public static Worker GetSigner(data.ETypeTemplate type, string list)
        {
            if (list == null)
            {
                list = "";
            }

            var ratioSigner = LogicHelper.RatioSignerLogic.Find(DateControl_Class.SelectMonth, type, list);

            if (!ratioSigner.Any())
            {
                throw new Exception($"Не выбран подписывающий для данного документа! {G.TypeTemplate.Rows.Get<string>((uint)type, C.TypeTemplate.Name)}");
            }
            else if (ratioSigner.Count() > 1)
            {
                throw new Exception($"Подписывающих не может быть больше одного! {G.TypeTemplate.Rows.Get<string>((uint)type, C.TypeTemplate.Name)}");
            }
            return(ratioSigner.First().Worker);
        }
Esempio n. 6
0
        public IEnumerable <RatioSigner> Find(int ym, data.ETypeTemplate type, string list = null)
        {
            return(getQuerryResult($"int ym={ym}|type={type}|List={(list ?? "null")}", (table) =>
            {
                var query = makeRangePeriod(table.QUERRY().SHOW.WHERE, ym,
                                            C.RatioSigner.Worker, new int[] { C.Worker.YMFrom },
                                            C.RatioSigner.Worker, new int[] { C.Worker.YMTo });

                query.AND.C(C.RatioSigner.TypeTemplate, (uint)type);

                if (list != null)
                {
                    query.AND.C(C.RatioSigner.List, list);
                }

                query.DO();

                table.Sort(C.RatioSigner.Position);

                var result = getModels(table);

                result = result.OrderBy(x => x.Position).ToArray();

                return result;
            },
                                   (result) =>
            {
                var workers = LogicHelper.WorkerLogic.Find(ym);
                var dictionary = LogicHelper.WorkerLogic.GetDictionary(workers);

                foreach (var ratioSigner in result)
                {
                    if (dictionary.ContainsKey(ratioSigner.WorkerID))
                    {
                        var worker = dictionary[ratioSigner.WorkerID];

                        ratioSigner.Add(worker);
                    }
                }
            }));
        }
Esempio n. 7
0
 public BasePrint(data.ETypeTemplate typeTemplate)
 {
     TemplateStorage = Template_Class.Get(typeTemplate);
 }