private WrapPanel MidMonthVolume(Objecte obj) { WrapPanel result = new WrapPanel(); result.Orientation = Orientation.Vertical; result.Background = Brushes.LightCyan; TextBlock text = new TextBlock(); result.Children.Add(text); text.Text = "Среднемесячный объём"; text.FontSize = 20; G.MidMonthVolume.QUERRY() .SHOW .WHERE .C(C.MidMonthVolume.Objecte, obj.ID) .DO(); for (int i = 0; i < G.MidMonthVolume.Rows.Count; i++) { var mmv = new MidMonthVolume(G.MidMonthVolume.Rows.GetID(i), G.MidMonthVolume.Rows.Get <int>(i, C.MidMonthVolume.Year) >= DateTime.Now.Year - 1); result.Children.Add(mmv.GetEditor(SFE, WH, Column.MidMonthVolume)); } AdderMenu(text, G.MidMonthVolume, new KeyValuePair <int, object>(C.MidMonthVolume.Objecte, obj.ID), new KeyValuePair <int, object>(C.MidMonthVolume.Year, DateControl_Class.SelectYear)); return(result); }
/// <summary>Колодцы</summary> private Grid WellObj(Objecte obj) { TabControl TC = new TabControl(); TC.Margin = new Thickness(2); Grid result = new Grid(); result.Background = Brushes.LightSkyBlue; TextBlock text = new TextBlock(); text.Text = "Колодцы"; text.FontSize = 20; AdderMenu(text, G.Well, new KeyValuePair <int, object>(C.Well.Object, obj.ID), new KeyValuePair <int, object>(C.Well.YMFrom, DateControl_Class.SelectMonth - 1)); result.SetRowFromGrid(); result.SetFromGrid(text); foreach (var one in obj.Wells) { TabItem Ti = new TabItem(); CopyRow(Ti, one, new KeyValuePair <int, object>(C.Well.YMFrom, DateControl_Class.SelectMonth - 1)); DeleteRow(Ti, G.Well, one.ID); Ti.Header = $"№ {one.Number}"; WrapPanel wpwell = new WrapPanel(); wpwell.Orientation = Orientation.Vertical; Ti.Content = wpwell; wpwell.Children.Add(one.GetEditor(SFE, WH, Column.Well)); TC.Items.Add(Ti); wpwell.Children.Add(DeclairWell(one)); } result.SetRowFromGrid(); result.SetFromGrid(TC); return(result); }
public ObjectItem(Objecte obj) { this.Objecte = obj; result = new Dictionary <string, string>(); result.Add("Наименование", Name); result.Add("Адрес", Adres); }
public ThisShow(Objecte obj) { this.obj = obj; result = new Dictionary <string, string>(); result.Add("Наименование", Name); result.Add("Адрес", Adres); }
public void SetClient(SelectionWell sw, Objecte obj = null) { if (sw == null) { return; } client = Helpers.LogicHelper.ClientsLogic.FirstModel(sw.GetIDValue(C.SelectionWell.Well, C.Well.Object, C.Objecte.Client)); if (obj == null) { objecte = client.Objects.FirstOrDefault(x => AdresHelper.ComparisonAdres(x.Adres, Adres) || Acount.Split(',').FirstOrDefault(y => x.Accounts.Contains(y)) != null); } else { objecte = obj; } if (objecte != null) { List <string> ac = new List <string>(); foreach (var one in Acount.Split(',')) { if (!objecte.Accounts.Contains(one)) { ac.Add(one); } } if (ac.Count > 0) { objecte.SetAccounts(ac.ToArray()); } sample = Helpers.LogicHelper.SampleLogic.FirstModel(sw.SampleID); } }
public BaseCalc_Class(Sample sample, Objecte objecte, Resolution Norm) { this._sample = sample; this.Objecte = objecte; this.Norm = Norm; init(); }
public BaseCalc_Class(ValueSelection[] Values, Objecte _Object, Resolution Norm) { this._values = Values; this.Objecte = _Object; this.Norm = Norm; init(); }
/// <summary>Заполнить лист хранилище</summary> private void DRAW_THIS() { PollutionBase_Class.LoadSelectedWells(DateControl_Class.SelectMonth); var actualSelectionWells = PollutionBase_Class.ListSelectionWell.Where(x => x.Number > 0).OrderBy(x => x.Number).ToArray(); foreach (var actialSelectionWell in actualSelectionWells) { List <KeyValuePair <string, decimal> > Summs = new List <KeyValuePair <string, decimal> >(); //расчеты if (!ColumnOff.Contains(ThisColumn.Summn)) { Sample samp = actialSelectionWell.Sample; Objecte obj = actialSelectionWell.Well.Objecte; KeyValuePair <uint, BaseCalc_Class.Summs>[] summs; Resolution resolution; #region 644 resolution = PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains("644")); if (obj.CanResolution(resolution.ID)) { calc = new Calc_644(samp, obj, resolution); summs = calc.Calc(); Summs.AddRange(summs.Select(x => new KeyValuePair <string, decimal>("644:", x.Value.SummNDS))); } #endregion #region 621 resolution = PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains("621")); if (obj.CanResolution(resolution.ID)) { calc = new Calc_621(samp, obj, resolution); summs = calc.Calc(); Summs.AddRange(summs.Select(x => new KeyValuePair <string, decimal>("621:", x.Value.SummNDS))); } #endregion } Dictionary <string, ValueWork> values = new Dictionary <string, ValueWork>(); //концентрации if (!ColumnOff.Contains(ThisColumn.Pollution)) { foreach (var pollution in PollutionBase_Class.AllPolutions) { values.Add(pollution.BindName, new ValueWork(pollution.ID, actialSelectionWell.ID)); } foreach (var selectionValue in actialSelectionWell.ValueSelections) { values[selectionValue.Pollution.BindName] = new ValueWork(selectionValue.ID); } } Values.Add(new SHOW(actialSelectionWell, Summs.ToArray(), values.Values.ToArray())); } }
/// <summary>Адрес по объекту</summary> protected void ObjectAdres(Objecte objecte, bool full) { CP = new Control_Print(); if (objecte.Separate) { DetailsObject details = objecte.Detail; if (details.MailAdres.Length > 0) { Substitute.AddExchange(StaticMark.adres_abonent, details.MailAdres.CutAdres(full), 0); } else if (details.LegalAdres.Length > 0) { Substitute.AddExchange(StaticMark.adres_abonent, details.LegalAdres.CutAdres(full), 0); } else { MessageBox.Show("Объект имеет индикатор абособленный, но адрес не задан!"); } } else { DetailsClient Details = objecte.Client.Detail; string Storege = string.Empty; bool PostAdres = Details.AdresPostID != 0; if (PostAdres) { Substitute.AddExchange(StaticMark.adres_abonent, Helpers.LogicHelper.AdresLogic.FirstModel(Details.AdresPostID).Adr.CutAdres(full), 0); } else { CP.Elems.SetRowFromGrid(MyTools.GL_Auto); WrapPanel wp = new WrapPanel(); wp.Orientation = Orientation.Vertical; if (Details.AdresLegalID > 0) { RadioButton AdresLegal = new RadioButton(); AdresLegal.Content = Helpers.LogicHelper.AdresLogic.FirstModel(Details.AdresLegalID).Adr; AdresLegal.Checked += (sender, e) => { Storege = AdresLegal.Content.ToString(); }; wp.Children.Add(AdresLegal); } RadioButton AdresObj = new RadioButton(); AdresObj.Content = objecte.Adres; AdresObj.Checked += (sender, e) => { Storege = objecte.Adres; }; wp.Children.Add(AdresObj); CP.Elems.SetFromGrid(wp); CP.ShowDialog(); } if (!PostAdres) { Substitute.AddExchange(StaticMark.adres_abonent, Storege.CutAdres(full), 0); } } }
private bool Loader() { selections = sample.SelectionWells.ToArray(); obj = selections.FirstOrDefault().Objecte; client = obj.Client; if (obj.GetMidMonthVolume(DateControl_Class.SelectYear - 1).Volume == 0) { MessageBox.Show("Среднемесячный объём отсутствует!"); return(false); } return(true); }
/// <summary>Реквизиты объекта</summary> private WrapPanel DetailObj(Objecte obj) { TabControl TC = new TabControl(); TC.Margin = new Thickness(2); WrapPanel result = new WrapPanel(); result.Orientation = Orientation.Vertical; result.VerticalAlignment = VerticalAlignment.Top; result.Background = Brushes.LightSalmon; TextBlock text = new TextBlock(); text.Text = "Реквизиты объекта"; text.FontSize = 20; result.Children.Add(text); foreach (var one in obj.Details) { TabItem Ti = new TabItem(); CopyRow(Ti, one, new KeyValuePair <int, object>(C.DetailsObject.YM, DateControl_Class.SelectMonth - 1)); DeleteRow(Ti, G.DetailsObject, one.ID); Ti.Header = $"Действует с - {(one.YM > 0 ? MyTools.YearMonth_From_YM(one.YM) : "Начала программы")}"; WrapPanel wp = new WrapPanel(); wp.Orientation = Orientation.Vertical; wp.Children.Add(one.GetEditor(SFE, WH, Column.DetailsObject)); if (obj.Separate) { wp.Children.Add(one.GetEditor(SFE, WH, new MyTools.C_DefColumn(C.DetailsObject.LegalAdresReference), new MyTools.C_DefColumn(C.DetailsObject.MailAdresReference))); } Ti.Content = wp; TC.Items.Add(Ti); } TC.SelectedIndex = TC.Items.Count - 1; AdderMenu(text, G.DetailsObject, new KeyValuePair <int, object>(C.DetailsObject.Object, obj.ID), new KeyValuePair <int, object>(C.DetailsObject.YM, DateControl_Class.SelectMonth - 1)); result.Children.Add(TC); return(result); }
protected override void internalStart() { { CP = new Control_Print(); CP.Elems.SetRowFromGrid(MyTools.GL_Auto); var DateSelect = new DateSelector(_negotiationAssistant.YMD); CP.Elems.SetFromGrid(DateSelect.View); CP.ShowDialog(); if (_negotiationAssistant.WorkerID == 0) { MessageBox.Show("Не выбран пробоотборщик!"); return; } _negotiationAssistant.YMD = MyTools.YMD_From_DateTime(DateSelect.dateTime); } Objecte obj = _negotiationAssistant.Objecte; Accredit acc = AdditionnTable.GetAccredit(); string sampler = _negotiationAssistant.Worker.Post_FIO; foreach (var one in obj.Wells) { book = TemplateStorage.WorkBook; Substitute = new CellExchange_Class(book.GetSheetAt(0)); var Details = obj.Client.Detail; Substitute.AddExchange("{абонент}", Details.FullName, 0); if (obj.Separate) { Substitute.AddExchange("{юридический адрес}", obj.Detail.LegalAdres, 0); } else { Substitute.AddExchange("{юридический адрес}", Helpers.LogicHelper.AdresLogic.FirstModel(Details.AdresLegalID).Adr, 0); } Substitute.AddExchange("{тип колодца}", new TypeWell(one.TypeWellID).FullName + " " + new TypeWell(one.TypeWellID).CurtName + '-' + one.Number, 0); Substitute.AddExchange("{место отбора}", obj.Adres.CutAdres(false), 0); Substitute.AddExchange("{аккредитация}", acc.Text, 0); Substitute.AddExchange("{дата аккредитации}", acc.YMDFrom, 0); Substitute.AddExchange("{пробоотборщик}", sampler, 0); //Substitute.AddExchange("{представитель абонента}", sample == null ? string.empty : sample.IDRepresentative > 0 ? new Representative(sample.IDRepresentative).Post_FIO : string.empty, 0); Substitute.Exchange(); Print("Акты", "акт отбора пробы " + new TypeWell(one.TypeWellID).FullName + ' ' + one.Number, EPathPrint.Documents); } }
private WrapPanel ObjFromRes(Objecte obj) { WrapPanel result = new WrapPanel(); result.Orientation = Orientation.Vertical; result.Background = Brushes.LightYellow; TextBlock text = new TextBlock(); result.Children.Add(text); text.Text = "Отношение к постановлениям"; text.FontSize = 20; //if (obj.OFR == null) //{ obj.OFR = AdditionnTable.LoadOFRAtObjecte(obj.ID).ToList(); } foreach (var one in obj.OFR) { result.Children.Add(one.GetEditor(SFE, WH, Column.ObjectFromResolution)); } AdderMenu(text, G.ObjectFromResolution, new KeyValuePair <int, object>(C.ObjectFromResolution.Object, obj.ID)); return(result); }
protected override void internalStart() { Objecte obj = _negotiationAssistant.Objecte; book = TemplateStorage.WorkBook; Substitute = new CellExchange_Class(book.GetSheetAt(0)); ClientName(_negotiationAssistant.Objecte.Client); NumberFolder(obj.NumberFolder); #region Подписывающий var works = AdditionnTable.GetSigner(data.ETypeTemplate.LetterNotification, "Письмо"); Substitute.AddExchange("{должность}", works.Post, 0); Substitute.AddExchange("{ФИО}", works.FIO, 0); #endregion #region адрес/дата ObjectAdres(obj, true); CP = new Control_Print(); CP.Elems.SetRowFromGrid(MyTools.GL_Auto); var DateSelect = new DateSelector(_negotiationAssistant.YMD); CP.Elems.SetFromGrid(DateSelect.View); CP.ShowDialog(); if (DateSelect.dateTime == null) { return; } _negotiationAssistant.YMD = MyTools.YMD_From_DateTime(DateSelect.dateTime); Substitute.AddExchange("{дата отбора}", MyTools.YearMonthDay_From_YMD(DateSelect.dateTime), 0); #endregion Substitute.AddExchange("{адрес отбора}", obj.Adres, 0); Substitute.Exchange(); Print("Письма", "Письмо", EPathPrint.Documents); }
public Calc_644(ValueSelection[] Values, Objecte objecte, Resolution norm) : base(Values, objecte, norm) { }
public Calc_644(Sample sample, Objecte objecte, Resolution norm) : base(sample, objecte, norm) { }
protected override bool Do() { summa = 0; IRow row = SearchRowFromMark(sheet, "{таблица}", false); if (row == null) { throw new Exception("Не найдена метка первой таблицы"); } table = new MyTools.C_TableExcel(row.RowNum, row.FirstCellNum, Styles.s_RLTB_CC_T10_W); table.columns.Add(new MyTools.C_ColumnExcel("№\nп/п", 0, 1)); table.columns.Add(new MyTools.C_ColumnExcel("Наименование предприятия", 1, 50)); table.columns.Add(new MyTools.C_ColumnExcel("ИНН", 2, 10)); table.columns.Add(new MyTools.C_ColumnExcel("Сумма с\nучётом НДС", 3, 10)); shows = new List <ThisShow>(); int sam = 0; var samples = Helpers.LogicHelper.SampleLogic.Find(DateControl_Class.SelectMonth, 1); samples = samples.Where(x => x.SelectionWells.Any()).ToArray(); var count = samples.Count(); foreach (var sample in samples) { Action(count, ++sam); var sw = sample.SelectionWells.First(); Client client = sw.Objecte.Client; Objecte obj = client.Objects.First(x => x.ID == sw.ObjectID); switch (name) { case "621": { calc = new Calc_621(sample, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains(name))); break; } case "644": { calc = new Calc_644(sample, obj, PollutionBase_Class.AllResolution.First(x => x.CurtName.Contains(name))); break; } } calc.Calc(); if (calc.Answer == null || calc.Answer.Sum(x => x.Value.SummNDS) < AdditionnTable.GetPeriod.MinLimits) { continue; } shows.Add(new ThisShow(client.Detail.FullName, client.INN, calc.Answer.Sum(x => x.Value.SummNDS), obj.OrderDistrict)); } int index = 0; if (shows.Count == 0) { MessageBox.Show("Не найдены превышения!"); return(false); } //shows = shows.OrderBy(x => x.Order).ThenByDescending(x => x.Summa).ToList(); shows = shows.OrderByDescending(x => x.Summa).ToList(); foreach (var one in shows) { table.value.Add(new MyTools.C_ValueCell(index + 1, index, 0, style: Styles.s_RLTB_RC_T10_W)); table.value.Add(new MyTools.C_ValueCell(one.Name.StringDivision(70), index, 1, style: Styles.s_RLTB_LC_T10_W)); table.value.Add(new MyTools.C_ValueCell(one.INN, index, 2, style: Styles.s_RLTB_LC_T10_W)); table.value.Add(new MyTools.C_ValueCell(one.Summa.ToMoney(), index, 3, style: Styles.s_RLTB_RC_T10_W)); summa += one.Summa; index++; } CreateTable(sheet, table); ResizeWidth(sheet, MyTools.ETypeFormatBook.Vertical, table); ResizeHeight(sheet, table); return(true); }
private void DG_ContextMenuOpening(object sender, ContextMenuEventArgs e) { if (DG.SelectedIndex == -1) { return; } var item = (DG.Items[DG.SelectedIndex] as SHOW); Objecte obj = AllClients.ObjecteAtWell(item.ID); List <SelectionWell> SW = new List <SelectionWell>(); foreach (SHOW one in DG.SelectedItems) { SW.Add(one.SelectionWell); } Sample sample = SW.First().Sample; DG.ContextMenu.Items.Clear(); MenuItem miCalc = new MenuItem { Header = "Расчёт" }; miCalc.Click += (senderC, eC) => { if (item.Volume.Length > 0) { new CalculationFees_Print_Class(sample); } else { MessageBox.Show("Объём не задан!"); } }; DG.ContextMenu.Items.Add(miCalc); MenuItem miExtract = new MenuItem { Header = "Выписка" }; miExtract.Click += (senderE, eE) => { print = new Extract_Print_Class(sample); print.Start(); }; DG.ContextMenu.Items.Add(miExtract); MenuItem miProtocol = new MenuItem { Header = "Протокол" }; miProtocol.Click += (senderE, eE) => { print = new Protocol_Print_Class(SW.ToArray()); print.Start(); }; DG.ContextMenu.Items.Add(miProtocol); MenuItem miInspectionResult = new MenuItem { Header = "Результат контроля" }; miInspectionResult.Click += (senderE, eE) => { print = new InspectionResult_Print_Class(obj.ID); print.Start(); }; DG.ContextMenu.Items.Add(miInspectionResult); }
protected override void Start() { var temp = new List <Item>(); int count = sheet.LastRowNum; uint ID = 1; for (int Nrow = StartRow; Nrow < sheet.LastRowNum + 1; Nrow++) { _values = new Dictionary <string, string>(); IRow row = sheet.GetRow(Nrow); if (row == null) { break; } foreach (var one in ColumnsBook) { ICell cell = row.GetCell(one.Value); _values.Add(one.Key, cell.ToString().Trim().Trim('\'')); } if (_values.ContainsKey(Columns.volold) || _values.ContainsKey(Columns.volnew)) { _values.Remove(Columns.volume); } temp.Add(new Item(ID, _values)); ID++; } _files = temp.GroupBy(x => x.INN + x.Adres).Select(x => new Item(x.First(), x.Select(y => y.Volume).ToArray(), x.Select(y => y.Acount.Replace("'", string.Empty)).Aggregate((a, b) => $"{a},{b}"))).ToList(); Compare(); ComparisonVolume(); ContextMenu(); DG.MouseDoubleClick += (sender, e) => { if (DG.SelectedIndex == -1) { return; } var select = (DG.Items[DG.SelectedIndex] as Item); if (select.objecte == null && select.client != null) { _sg_W = new SearchGrid_Window(select.client.Objects.ToArray(), new C_SettingSearchDataGrid(DefDeleg: true, DopText: $"{select.Adres.Replace("\n", "")}{(select.sample == null ? "\nНе найден отбор!" : string.Empty)}")); _sg_W.ShowDialog(); if (_sg_W.SelectID > 0) { if (SWs.FirstOrDefault(x => x.ObjectID == _sg_W.SelectID) == null) { if (MessageBox.Show($"Объект: {Helpers.LogicHelper.ObjecteLogic.FirstModel(_sg_W.SelectID).Adres}\nне отбирался {MyTools.YearMonth_From_YM(date)}г\nХотите удалить запись?", "Убрать не отобранный объект?", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { select.client.Objects.First(x => x.ID == _sg_W.SelectID).SetAccounts(select.Acount.Split(',')); _files.Remove(select); ResetDG(); return; } } else { select.SetClient(SWs.First(x => x.ObjectID == _sg_W.SelectID), select.client.Objects.First(x => x.ID == _sg_W.SelectID)); //Волшебная строка закраски ROW (DG.ItemContainerGenerator.ContainerFromIndex(DG.SelectedIndex) as DataGridRow).Background = Brushes.Green; //Волшебная строка закраски ROW } } } else if (select.Volumes == null || select.client == null) { _sg_W = new SearchGrid_Window(_file, new C_SettingSearchDataGrid(DefDeleg: true, DopText: $"Клиент - {select.NameClient}\nАдрес- {select.Adres}\nИНН- {select.INN}")); _sg_W.ShowDialog(); if (_sg_W.SelectID > 0) { Item fil = _file.First(x => x.ID == _sg_W.SelectID); _files[DG.SelectedIndex] = new Item(select, fil.Volumes.Split('+').Select(x => x.TryParseDouble()).ToArray(), fil.Acount); _files[DG.SelectedIndex].SetClient(SWs.FirstOrDefault(x => (string)x.GetValue(C.SelectionWell.Well, C.Well.Object, C.Objecte.Client, C.Client.INN) == _files[DG.SelectedIndex].INN)); Objecte obj = _files[DG.SelectedIndex].objecte; if (obj != null) { _files[DG.SelectedIndex].SetClient(SWs.First(x => x.ObjectID == obj.ID), obj); (DG.ItemContainerGenerator.ContainerFromIndex(DG.SelectedIndex) as DataGridRow).Background = Brushes.Green; } else { (DG.ItemContainerGenerator.ContainerFromIndex(DG.SelectedIndex) as DataGridRow).Background = Brushes.Yellow; } } } }; ResetDG(); }
public TableSelection(Objecte obj, Sample sample) { this.obj = obj; this.sample = sample; }