private void Calculate() { var Context = new TempoDataBaseContext(); var cp = this.DataContext as SaldoItem; if (cp != null && (cp.Relookup != 0 || cp.RCODELOOKUP != 0)) { string search = Entrence.ConfigFirmaToLookup.GetField(ConfigTempoSinglenton.GetInstance().CurrentFirma.Id, cp.Relookup); List <FieldValuePair> current = new List <FieldValuePair>(); LookupModel lookup = null; if (cp.Relookup > 0) { lookup = cp.SysLookup ? Context.GetSysLookup(cp.Relookup):Context.GetLookup(cp.Relookup); } else { lookup = cp.SysLookup ? Context.GetSysLookup(cp.Relookup) : Context.GetLookup(cp.Relookup); } int i = 0; foreach (var item in lookup.Fields) { if (cp.SysLookup && i == 0) { i++; continue; } var nf = new FieldValuePair { Name = item.Name, Length = item.Length, Value = i == 1 && string.IsNullOrWhiteSpace(search)?searcher.Text:"", ReadOnly = item.NameEng != "Id", IsRequared = item.IsRequared, IsUnique = item.IsUnique, RTABLENAME = item.RTABLENAME, FieldName = item.NameEng }; if (item.NameEng == search) { nf.Value = searcher.Text; } current.Add(nf); } LookupsEdidViewModels vmm = new LookupsEdidViewModels(current, lookup.LookUpMetaData.Tablename, true); EditInsertLookups ds = new EditInsertLookups(vmm); ds.ShowDialog(); if (ds.DialogResult.HasValue && ds.DialogResult.Value) { //nov red if (!cp.SysLookup) { lookup.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); } bool sys = cp.SysLookup?!Context.SaveRow(ds.GetNewFields(), lookup):!Context.SaveRow(ds.GetNewFields(), lookup, ConfigTempoSinglenton.GetInstance().CurrentFirma.Id); if (sys) { MessageBoxWrapper.Show( "Получвава се дублиране на елемент от номенклатура! Номенклатурата не е записана!"); } else { var dc = DataContext as SaldoItem; var dat = ds.GetNewFields(); if (dat != null) { dc.Value = dat[1]; dc.Lookupval = dat[2]; } if (dat != null && dat.Count > 5) { dc.Bulstad = dat[3]; dc.Vat = dat[4]; } dc.LiD = 0; OnRefreshExecuted(new FastLookupEventArgs(dc)); } } //cp.LookUp.Add(new SaldoItem { Value = ds.GetNewFields()[2], Key = ds.GetNewFields()[1] }); } }
private void ButtonBase_OnClick(object sender, RoutedEventArgs e) { var Context = new TempoDataBaseContext(); var sen = (sender as Button); if (sen != null) { var cp = sen.CommandParameter as SaldoItem; if (cp != null && (cp.Relookup != 0 || cp.RCODELOOKUP != 0)) { List <FieldValuePair> current = new List <FieldValuePair>(); LookupModel lookup = null; if (cp.Relookup > 0) { lookup = cp.SysLookup ? Context.GetSysLookup(cp.Relookup) : Context.GetLookup(cp.Relookup); } else { lookup = cp.SysLookup ? Context.GetSysLookup(cp.Relookup) : Context.GetLookup(cp.Relookup); } int i = 0; foreach (var item in lookup.Fields) { if (cp.SysLookup && i == 0) { i++; continue; } current.Add(new FieldValuePair { Name = item.Name, Value = "", Length = item.Length, ReadOnly = (item.NameEng == "Id") ? false : true, IsRequared = item.IsRequared, IsUnique = item.IsUnique, RTABLENAME = item.RTABLENAME, FieldName = item.NameEng }); } LookupsEdidViewModels vmm = new LookupsEdidViewModels(current, lookup.LookUpMetaData.Tablename, true); EditInsertLookups ds = new EditInsertLookups(vmm); ds.ShowDialog(); if (ds.DialogResult.HasValue && ds.DialogResult.Value) { //nov red lookup.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); if (!Context.SaveRow(ds.GetNewFields(), lookup, ConfigTempoSinglenton.GetInstance().CurrentFirma.Id)) { MessageBoxWrapper.Show("Получвава се дублиране на елемент от номенклатура! Номенклатурата не е записана!"); } else { var dc = DataContext as SaldoItem; var dat = ds.GetNewFields(); if (dat != null) { if (dc != null) { dc.Value = dat[1]; dc.Lookupval = dat[2]; } } if (dat != null && dat.Count > 5) { if (dc != null) { dc.Bulstad = dat[3]; dc.Vat = dat[4]; } } OnRefreshExecuted(new FastLookupEventArgs(dc)); } } //cp.LookUp.Add(new SaldoItem { Value = ds.GetNewFields()[2], Key = ds.GetNewFields()[1] }); } } }
private static void SetAnaliticVal(string s, TempoDataBaseContext context, ContoAll allconto, int i) { SaldoItem item = null; switch (i) { case 0: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 0) { item = allconto.ItemsDebit[0]; } Bulstad = s; if (item == null) { var item1 = new SaldoItem { SysLookup = false, Relookup = 17 }; var mainrez = item1.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez.Count <= 1) { var lookupModel = context.GetLookup(17); CodeClient = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); var lookupval = allconto.NameClient; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { CodeClient, CodeClient, lookupval, lookupval, s, s }, lookupModel, FirmaId); } else { CodeClient = mainrez[1][0]; allconto.NameClient = mainrez[1][1]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { LiD = item1.GetLookUpId(0); } if (mainrez[1].Count > 4) { Bulstad = mainrez[1][3]; Vat = mainrez[1][4]; } } } break; case 1: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 1) { item = allconto.ItemsDebit[1]; } Factura = s; break; case 2: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 2) { item = allconto.ItemsDebit[2]; } DateTime date1; if (DateTime.TryParse(s, out date1)) { DataFactura = date1; } else { var c = s.Split('.'); if (c.Length > 2) { DataFactura = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); } else { DataFactura = DateTime.Now; } } break; case 3: if (allconto.ItemsDebit != null && allconto.ItemsDebit.Count > 3) { item = allconto.ItemsDebit[3]; } break; case 4: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 0) { item = allconto.ItemsCredit[0]; } Bulstad = s; if (item == null) { var item1 = new SaldoItem { SysLookup = false, Relookup = 17 }; var mainrez = item1.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez.Count <= 1) { var lookupModel = context.GetLookup(17); CodeClient = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); var lookupval = allconto.NameClient; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { CodeClient, CodeClient, lookupval, lookupval, s, s }, lookupModel, FirmaId); } else { CodeClient = mainrez[1][1]; allconto.NameClient = mainrez[1][2]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { LiD = item1.GetLookUpId(0); } if (mainrez[1].Count > 4) { Bulstad = mainrez[1][3]; Vat = mainrez[1][4]; } } } break; case 5: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 1) { item = allconto.ItemsCredit[1]; } Factura = s; break; case 6: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 2) { item = allconto.ItemsCredit[2]; } DateTime date2; if (DateTime.TryParse(s, out date2)) { DataFactura = date2; } else { var c = s.Split('.'); if (c.Length > 2) { DataFactura = new DateTime(int.Parse(c[2]), int.Parse(c[1]), int.Parse(c[0])); } else { DataFactura = DateTime.Now; } } break; case 7: if (allconto.ItemsCredit != null && allconto.ItemsCredit.Count > 3) { item = allconto.ItemsCredit[3]; } break; } if (item != null) { if (!item.IsLookUp) { item.Value = s; } else { if (item.Name == "Контрагент") { var mainrez = item.GetDictionary( string.Format("AND \"{0}\"='{1}'", "BULSTAT", s), string.Format(" order by \"{0}\"", "BULSTAT")); if (mainrez != null && mainrez.Count > 1) { item.Value = mainrez[1][0]; item.Lookupval = mainrez[1][1]; int h = 0; if (int.TryParse(mainrez[1][0], out h)) { item.LiD = item.GetLookUpId(0); } if (mainrez[1].Count > 4) { item.Bulstad = mainrez[1][3]; item.Vat = mainrez[1][4]; } } else { var lookupModel = context.GetLookup(17); item.Value = context.SelectMax(lookupModel.LookUpMetaData.Tablename, lookupModel.Fields[1].NameEng); item.Lookupval = allconto.NameClient; item.Bulstad = s; item.Vat = s; lookupModel.Fields.Add(new TableField { DbField = "integer", GROUP = 4, Id = 4, Length = 4, IsRequared = false, NameEng = "FIRMAID", Name = "Фирма Номер" }); context.SaveRow(new List <string> { item.Value, item.Value, item.Lookupval, item.Lookupval, s, s }, lookupModel, FirmaId); } } } } }