Exemple #1
0
        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] });
            }
        }
Exemple #2
0
        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] });
                }
            }
        }
Exemple #3
0
        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);
                        }
                    }
                }
            }
        }