Beispiel #1
0
        public DdsSallesViewModel(DdsDnevnikModel ddsmodel)
        {
            ddsDnevnikModel    = ddsmodel;
            KindDocLookup      = new ObservableCollection <LookUpSpecific>(context.GetAllDocTypes());
            SelectedLookup     = new ObservableCollection <ContragentInfo>();
            ActivityTypeLookup = new ObservableCollection <LookUpSpecific>
            {
                new LookUpSpecific {
                    CodetId = "01", Id = 1, Name = "Покупки"
                },
                new LookUpSpecific {
                    CodetId = "02", Id = 2, Name = "Продажби"
                },
                new LookUpSpecific {
                    CodetId = "03", Id = 3, Name = "Други"
                },
            };
            this.Lookups = new ObservableCollection <LookUpMetaData>(context.GetAllLookups(" where NAMEENG='k'"));

            AllFields = new ObservableCollection <DdsDnevnicItem>();
            foreach (var items in ddsDnevnikModel.DetailItems)
            {
                AllFields.Add(new DdsDnevnicItem(items));
            }
            if (ddsmodel.LookupID > 0)
            {
                Lookup = Lookups.FirstOrDefault(e => e.Id == ddsmodel.LookupID);
            }
            if (ddsmodel.LookupElementID > 0)
            {
                LookupElementInfo = SelectedLookup.FirstOrDefault(e => e.Id == ddsmodel.LookupElementID);
            }
        }
Beispiel #2
0
 private void SaveDdsDnevnicModel(DdsDnevnikModel ddsDnevnikModel)
 {
     DBManager.CreateParameters(20);
     DBManager.AddParameters(0, "@NOM", ddsDnevnikModel.Num);
     DBManager.AddParameters(1, "@BRANCH", ddsDnevnikModel.Branch);
     DBManager.AddParameters(2, "@DOCN", ddsDnevnikModel.DocId);
     DBManager.AddParameters(3, "@DATADOC", ddsDnevnikModel.Date);
     DBManager.AddParameters(4, "@KINDACTIVITY", ddsDnevnikModel.KindActivity);
     DBManager.AddParameters(5, "@KINDDOC", ddsDnevnikModel.KindDoc);
     DBManager.AddParameters(6, "@STOKE", ddsDnevnikModel.Stoke);
     DBManager.AddParameters(7, "@BULSTAD", ddsDnevnikModel.Bulstat);
     DBManager.AddParameters(8, "@NZDDS", ddsDnevnikModel.Nzdds);
     DBManager.AddParameters(9, "@LOOKUPID", ddsDnevnikModel.LookupID);
     DBManager.AddParameters(10, "@LOOKUPELEMENTID", ddsDnevnikModel.LookupElementID);
     DBManager.AddOutputParameters(11, "@NEWID", ddsDnevnikModel.Id);
     DBManager.AddParameters(12, "@NAMEKONTR", ddsDnevnikModel.NameKontr);
     DBManager.AddParameters(13, "@SUMA", ddsDnevnikModel.Suma);
     DBManager.AddParameters(14, "@DDSSUMA", ddsDnevnikModel.SumaDDS);
     DBManager.AddParameters(15, "@CODEDOC", ddsDnevnikModel.CodeDoc);
     DBManager.AddParameters(16, "@DATAF", ddsDnevnikModel.DataF);
     DBManager.AddParameters(17, "@A8", ddsDnevnikModel.A8);
     DBManager.AddParameters(18, "@CLNUM", ddsDnevnikModel.ClNum);
     DBManager.AddParameters(19, "@ISSUMA", ddsDnevnikModel.IsSuma);
     DBManager.ExecuteNonQuery(CommandType.StoredProcedure, "ADDDDSDNEV");
     ddsDnevnikModel.Id = (int)DBManager.Parameters[11].Value;
     DBManager.ExecuteNonQuery(CommandType.Text, string.Format("Delete from DDSDNEVTOFIELDS d where d.IDDDSDNEV={0}", ddsDnevnikModel.Id));
     foreach (var item in ddsDnevnikModel.DetailItems)
     {
         string command =
             string.Format(
                 "INSERT INTO DDSDNEVTOFIELDS (IDDDSDNEV, IDDDSFIELD, SUMADDS, SUMAWITHDDS,DDS,DDSP) VALUES ({0},{1},{2},{3},{4},{5})", ddsDnevnikModel.Id, item.Id, item.DdsSuma.ToString(Vf.LevFormatUI), item.DdsTotal.ToString(Vf.LevFormatUI), item.Dds.ToString(Vf.LevFormatUI), item.DdsPercent.ToString(Vf.LevFormatUI));
         DBManager.ExecuteNonQuery(CommandType.Text, command);
     }
 }
Beispiel #3
0
 public DdsSellsView(DdsDnevnikModel model, DdsDnevnicItem item, DdsViewModel.RefreshElement vmRefreshExecuted, DdsViewModel.RefreshElement vmSavedExecuted, DdsViewModel.CancelSaveElement vmCanelExecuted)
 {
     vm = new DdsViewModel(model, item);
     vm.RefreshExecuted += vmRefreshExecuted;
     vm.DdsSaved        += vmSavedExecuted;
     vm.CancelSave      += vmCanelExecuted;
     InitializeComponent();
     this.DataContext = vm;
 }
Beispiel #4
0
        public DdsViewModel(DdsDnevnikModel ddsmodel)
        {
            ddsDnevnikModel = ddsmodel;
            KindDocLookup   = new ObservableCollection <LookUpSpecific>(Context.GetAllDocTypes());
            if (ddsDnevnikModel.CodeDoc == null)
            {
                ddsDnevnikModel.CodeDoc = "01";
            }
            KindDoc            = KindDocLookup.FirstOrDefault(e => e.CodetId == ddsDnevnikModel.CodeDoc);
            ActivityTypeLookup = new ObservableCollection <LookUpSpecific>
            {
                new LookUpSpecific {
                    CodetId = "01", Id = 1, Name = "Покупки"
                },
                new LookUpSpecific {
                    CodetId = "02", Id = 2, Name = "Продажби"
                },
                new LookUpSpecific {
                    CodetId = "03", Id = 3, Name = "Други"
                },
            };
            this.Lookups = new ObservableCollection <LookUpMetaData>(Context.GetAllLookups(" where NAMEENG='k'"));

            AllFields = new ObservableCollection <DdsDnevnicItem>();
            foreach (var items in ddsDnevnikModel.DetailItems)
            {
                AllFields.Add(new DdsDnevnicItem(items));
            }
            if (ddsmodel.LookupID > 0)
            {
                Lookup = Lookups.FirstOrDefault(e => e.Id == ddsmodel.LookupID);
                if (Lookup == null)
                {
                    Lookup = ddsmodel.KindActivity == 2 ? Lookups.FirstOrDefault(e => e.Name == "Клиенти") : Lookups.FirstOrDefault(e => e.Name == "Доставчици");
                    ddsmodel.LookupElementID = 0;
                }
            }
            else
            {
                Lookup = ddsmodel.KindActivity == 2 ? Lookups.FirstOrDefault(e => e.Name == "Клиенти") : Lookups.FirstOrDefault(e => e.Name == "Доставчици");
            }
            if (SelectedItem == null)
            {
                SelectedItem = new SaldoItem();
            }
            SelectedItem.Value = ddsDnevnikModel.ClNum;
            Bustad             = ddsDnevnikModel.Bulstat;
            DdsId  = ddsDnevnikModel.Nzdds;
            ClName = ddsDnevnikModel.NameKontr;
            if (Lookup != null)
            {
                SelectedItem.Name = Lookup.Name;
            }
            OnPropertyChanged("SelectedItem");
            ddsDnevnikModel.Total = ddsDnevnikModel.DetailItems.Sum(e => e.DdsSuma).ToString(Vf.LevFormatUI);
        }
Beispiel #5
0
        private void Sells()
        {
            DdsDnevnikModel ddsDnevnikModel = Context.LoadDenevnicItem(CurrentWraperConto.CurrentConto.Id, 0);

            ddsDnevnikModel.DocId        = CurrentWraperConto.CurrentConto.DocNum;
            ddsDnevnikModel.Date         = CurrentWraperConto.CurrentConto.Data;
            ddsDnevnikModel.KindActivity = 1;
            ddsDnevnikModel.CodeDoc      = Kd;
            ddsDnevnikModel.Stoke        = CurrentWraperConto.CurrentConto.Reason;
            ddsDnevnikModel.Title        = "Дневник покупки";
            DdsSellsView dialog = new DdsSellsView(ddsDnevnikModel, DddDelete, DdsSaved, DdsCancel);

            dialog.ShowDialog();
        }
Beispiel #6
0
        private void SaveDds(WrapConto CurrentConto)
        {
            if (CurrentConto.TypeDds == 0)
            {
                return;
            }
            DdsDnevnikModel ddsDnevnikModel = new DdsDnevnikModel();

            ddsDnevnikModel.DetailItems = new List <DdsItemModel>(GetAllDnevItems(CurrentConto.TypeDds));
            var item = ddsDnevnikModel.DetailItems.FirstOrDefault(e => e.Code == "ДК");

            if (item != null)
            {
                item.Dds = CurrentConto.Conto.Oborot;
                if (CurrentConto.Suma > 0)
                {
                    item.DdsSuma = CurrentConto.Suma;
                }
                else
                {
                    item.DdsSuma = item.Dds * (item.DdsPercent / 100);
                }
            }
            ddsDnevnikModel.Date         = CurrentConto.Conto.Data;
            ddsDnevnikModel.DataF        = CurrentConto.Conto.Data;
            ddsDnevnikModel.DocId        = CurrentConto.Fn;
            ddsDnevnikModel.KindActivity = CurrentConto.TypeDds;
            ddsDnevnikModel.Nzdds        = CurrentConto.Bulstad;
            ddsDnevnikModel.Bulstat      = CurrentConto.Bulstad;
            ddsDnevnikModel.NameKontr    = CurrentConto.Cn;
            ddsDnevnikModel.KindDoc      = 1;
            ddsDnevnikModel.CodeDoc      = "01";
            ddsDnevnikModel.A8           = 0;
            ddsDnevnikModel.IsSuma       = 0;
            ddsDnevnikModel.Num          = CurrentConto.Conto.Id;
            SaveDdsDnevnicModel(ddsDnevnikModel);
        }
Beispiel #7
0
        public static void SaveDdsDnevnicModel(DdsDnevnikModel ddsDnevnikModel, bool isedit)
        {
            var dbman = new DBManager(DataProvider.Firebird);

            dbman.ConnectionString = Entrence.ConnectionString;
            try
            {
                dbman.Open();
                dbman.BeginTransaction();
                dbman.CreateParameters(20);
                dbman.AddParameters(0, "@NOM", ddsDnevnikModel.Num);
                dbman.AddParameters(1, "@BRANCH", ddsDnevnikModel.Branch);
                dbman.AddParameters(2, "@DOCN", ddsDnevnikModel.DocId);
                dbman.AddParameters(3, "@DATADOC", ddsDnevnikModel.Date);
                dbman.AddParameters(4, "@KINDACTIVITY", ddsDnevnikModel.KindActivity);
                dbman.AddParameters(5, "@KINDDOC", ddsDnevnikModel.KindDoc);
                dbman.AddParameters(6, "@STOKE", ddsDnevnikModel.Stoke);
                dbman.AddParameters(7, "@BULSTAD", ddsDnevnikModel.Bulstat);
                dbman.AddParameters(8, "@NZDDS", ddsDnevnikModel.Nzdds);
                dbman.AddParameters(9, "@LOOKUPID", ddsDnevnikModel.LookupID);
                dbman.AddParameters(10, "@LOOKUPELEMENTID", ddsDnevnikModel.LookupElementID);
                dbman.AddOutputParameters(11, "@NEWID", ddsDnevnikModel.Id);
                dbman.AddParameters(12, "@NAMEKONTR", ddsDnevnikModel.NameKontr);
                dbman.AddParameters(13, "@SUMA", ddsDnevnikModel.Suma);
                dbman.AddParameters(14, "@DDSSUMA", ddsDnevnikModel.SumaDDS);
                dbman.AddParameters(15, "@CODEDOC", ddsDnevnikModel.CodeDoc);
                dbman.AddParameters(16, "@DATAF", ddsDnevnikModel.DataF);
                dbman.AddParameters(17, "@A8", ddsDnevnikModel.A8);
                dbman.AddParameters(18, "@CLNUM", ddsDnevnikModel.ClNum);
                dbman.AddParameters(19, "@ISSUMA", ddsDnevnikModel.IsSuma);
                dbman.ExecuteNonQuery(CommandType.StoredProcedure, "ADDDDSDNEV");
                ddsDnevnikModel.Id = (int)dbman.Parameters[11].Value;
                if (isedit)
                {
                    dbman.ExecuteNonQuery(CommandType.Text, string.Format("Delete from DDSDNEVTOFIELDS d where d.IDDDSDNEV={0}", ddsDnevnikModel.Id));
                }
                foreach (var item in ddsDnevnikModel.DetailItems)
                {
                    if (!item.In)
                    {
                        continue;
                    }
                    string command =
                        string.Format(
                            "INSERT INTO DDSDNEVTOFIELDS (IDDDSDNEV, IDDDSFIELD, SUMADDS, SUMAWITHDDS,DDS,DDSP) VALUES ({0},{1},{2},{3},{4},{5})", ddsDnevnikModel.Id, item.Id, item.DdsSuma.ToString(Vf.LevFormatUI), item.DdsTotal.ToString(Vf.LevFormatUI), item.Dds.ToString(Vf.LevFormatUI), item.DdsPercent.ToString(Vf.LevFormatUI));
                    dbman.ExecuteNonQuery(CommandType.Text, command);
                }
                dbman.CommitTransaction();
            }

            catch (Exception ex)
            {
                Logger.Instance().WriteLogError(ex.Message, "public static void SaveDdsDnevnicModel(DdsDnevnikModel ddsDnevnikModel)");
                dbman.RollBackTransaction();
            }

            finally
            {
                dbman.Dispose();
            }
        }
Beispiel #8
0
        public static DdsDnevnikModel LoadDenevnicItem(int contoId, int type)
        {
            DdsDnevnikModel result = new DdsDnevnikModel();

            result.Num = contoId;
            var dbman = new DBManager(DataProvider.Firebird);

            dbman.ConnectionString = Entrence.ConnectionString;
            try
            {
                bool master = false;
                dbman.Open();
                string command =
                    string.Format("SELECT * FROM DDSDNEV where NOM={0} and KINDACTIVITY={1}", contoId, type);
                dbman.ExecuteReader(CommandType.Text, command);
                if (dbman.DataReader.Read())
                {
                    result.Id              = int.Parse(dbman.DataReader["Id"].ToString());
                    result.Branch          = dbman.DataReader["BRANCH"].ToString();
                    result.Date            = DateTime.Parse(dbman.DataReader["DATADOC"].ToString());
                    result.DataF           = DateTime.Parse(dbman.DataReader["DATAF"].ToString());
                    result.DocId           = dbman.DataReader["DOCN"].ToString();
                    result.KindActivity    = int.Parse(dbman.DataReader["KINDACTIVITY"].ToString());
                    result.KindDoc         = int.Parse(dbman.DataReader["KINDDOC"].ToString());
                    result.Stoke           = dbman.DataReader["STOKE"].ToString();
                    result.LookupElementID = int.Parse(dbman.DataReader["LOOKUPELEMENTID"].ToString());
                    result.LookupID        = int.Parse(dbman.DataReader["LOOKUPID"].ToString());
                    result.Suma            = Decimal.Parse(dbman.DataReader["SUMA"].ToString());
                    result.SumaDDS         = Decimal.Parse(dbman.DataReader["DDSSUMA"].ToString());
                    result.NameKontr       = dbman.DataReader["NAMEKONTR"].ToString();
                    result.CodeDoc         = dbman.DataReader["CODEDOC"].ToString();
                    result.Nzdds           = dbman.DataReader["NZDDS"].ToString();
                    result.Bulstat         = dbman.DataReader["BULSTAD"].ToString();
                    result.ClNum           = dbman.DataReader["CLNUM"].ToString();
                    int val;
                    result.A8       = int.TryParse(dbman.DataReader["A8"].ToString(), out val)?val:0;
                    result.IsSuma   = int.TryParse(dbman.DataReader["ISSUMA"].ToString(), out val) ? val : 0;
                    master          = true;
                    result.IsLinked = true;
                }
                dbman.DataReader.Close();
                if (master)
                {
                    string typednev = "DDSDNEVFIELDS";
                    if (type == 1)
                    {
                        typednev = "DDSDNEVSELLSFIELDS";
                    }
                    command =
                        string.Format("SELECT * FROM {0} a inner join DDSDNEVTOFIELDS m on a.ID=m.IDDDSFIELD where m.IDDDSDNEV={1}", typednev, result.Id);
                    dbman.ExecuteReader(CommandType.Text, command);
                    while (dbman.DataReader.Read())
                    {
                        var n = new DdsItemModel
                        {
                            Name          = dbman.DataReader["NAME"].ToString(),
                            Id            = int.Parse(dbman.DataReader["IDDDSFIELD"].ToString()),
                            Code          = dbman.DataReader["CODE"].ToString(),
                            IsNotComputed = true,
                            In            = true
                        };
                        n.DdsPercent    = decimal.Parse(dbman.DataReader["DDSP"].ToString());
                        n.DdsSuma       = decimal.Parse(dbman.DataReader["SUMADDS"].ToString());
                        n.Dds           = decimal.Parse(dbman.DataReader["DDS"].ToString());
                        n.DdsTotal      = decimal.Parse(dbman.DataReader["SUMAWITHDDS"].ToString());
                        n.IsNotComputed = false;
                        result.DetailItems.Add(n);
                    }
                    dbman.DataReader.Close();
                }
                else
                {
                    string typednev = "DDSDNEVFIELDS";
                    if (type == 1)
                    {
                        typednev = "DDSDNEVSELLSFIELDS";
                    }
                    command = string.Format("SELECT * FROM {0}", typednev);
                    dbman.ExecuteReader(CommandType.Text, command);
                    while (dbman.DataReader.Read())
                    {
                        result.DetailItems.Add(new DdsItemModel
                        {
                            DdsPercent    = int.Parse(dbman.DataReader["DDSPERCENT"].ToString()),
                            Name          = dbman.DataReader["NAME"].ToString(),
                            Id            = int.Parse(dbman.DataReader["ID"].ToString()),
                            Code          = dbman.DataReader["CODE"].ToString(),
                            IsNotComputed = false,
                        });
                    }
                    //command =
                    //string.Format("SELECT * FROM DDSDNEVFIELDS a where a.\"TYPE\"={0}", typednev);
                    //dbman.ExecuteReader(CommandType.Text, command);
                    //while (dbman.DataReader.Read())
                    //{
                    //    result.DetailItems.Add(new DdsItemModel
                    //    {
                    //        DdsPercent = int.Parse(dbman.DataReader["DDSPERCENT"].ToString()),
                    //        DdsSuma =0,
                    //        Name = dbman.DataReader["NAME"].ToString(),
                    //        Id = int.Parse(dbman.DataReader["ID"].ToString())
                    //    });
                    //}
                    dbman.DataReader.Close();
                }
            }
            catch (Exception e)
            {
                Logger.Instance().WriteLogError(e.Message, "public static DdsDnevnikModel LoadDenevnicItem(int contoId,int type)");
            }
            finally
            {
                dbman.Dispose();
            }
            return(result);
        }
Beispiel #9
0
        private void UpdateRelatedDds()
        {
            if (MessageBoxWrapper.Show("Запази стари стойности в дневник?", "Предупреждение", MessageBoxWrapperButton.YesNo) == MessageBoxWrapperResult.Yes)
            {
                return;
            }
            bool            haschange       = false;
            DdsDnevnikModel ddsDnevnikModel = Context.LoadDenevnicItem(CurrentWraperConto.CurrentConto.Id, 1);

            ddsDnevnikModel.CodeDoc = Kd;
            ddsDnevnikModel.Stoke   = CurrentWraperConto.CurrentConto.Reason;
            ddsDnevnikModel.Date    = CurrentWraperConto.CurrentConto.Data;
            if (ItemsDebit != null && (ItemsCredit != null && (ItemsCredit.Count == 0 && ItemsDebit.Count == 0)))
            {
                ddsDnevnikModel.DataF = CurrentWraperConto.CurrentConto.Data;
            }
            if (ddsDnevnikModel.IsLinked)
            {
                foreach (SaldoItem saldoItem in ItemsDebit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }
                foreach (SaldoItem saldoItem in ItemsCredit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }

                var vm = new DdsViewModel(ddsDnevnikModel,
                                          new DdsDnevnicItem
                {
                    DdsPercent = CurrItemDdsDnevPurchases.DdsPercent,
                    DdsSuma    = CurrentWraperConto.Oborot,
                    Name       = CurrItemDdsDnevPurchases.Name,
                    In         = true
                });
                vm.SaveFromOutside();

                haschange = true;
            }
            ddsDnevnikModel         = Context.LoadDenevnicItem(CurrentWraperConto.CurrentConto.Id, 2);
            ddsDnevnikModel.CodeDoc = Kd;
            ddsDnevnikModel.Stoke   = CurrentWraperConto.CurrentConto.Reason;
            ddsDnevnikModel.Date    = CurrentWraperConto.CurrentConto.Data;
            if (ItemsDebit != null && (ItemsCredit != null && (ItemsCredit.Count == 0 && ItemsDebit.Count == 0)))
            {
                ddsDnevnikModel.DataF = CurrentWraperConto.CurrentConto.Data;
            }
            if (ddsDnevnikModel.IsLinked)
            {
                foreach (SaldoItem saldoItem in ItemsCredit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }
                foreach (SaldoItem saldoItem in ItemsDebit)
                {
                    if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                    {
                        ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                        ddsDnevnikModel.LookupElementID = 0;
                        ddsDnevnikModel.ClNum           = saldoItem.Value;
                    }
                    if (saldoItem.Name.Contains("Дата на фактура"))
                    {
                        ddsDnevnikModel.DataF = saldoItem.ValueDate;
                    }
                    if (saldoItem.Name.Contains("Номер фактура"))
                    {
                        ddsDnevnikModel.DocId = saldoItem.Value;
                    }
                }

                var vm = new DdsViewModel(ddsDnevnikModel,
                                          new DdsDnevnicItem
                {
                    DdsPercent = CurrItemDdsDnevSales.DdsPercent,
                    DdsSuma    = CurrentWraperConto.Oborot,
                    Name       = CurrItemDdsDnevSales.Name,
                    In         = true
                });
                vm.SaveFromOutside();

                haschange = true;
            }
            if (haschange)
            {
                MessageBoxWrapper.Show(Resources.ContoViewModel_UpdateRelatedDds_Message, Resources.ContoViewModel_UpdateRelatedDds_Title);
            }
        }
Beispiel #10
0
        public DdsViewModel(DdsDnevnikModel ddsmodel, DdsDnevnicItem item)
        {
            ddsDnevnikModel = ddsmodel;
            KindDocLookup   = new ObservableCollection <LookUpSpecific>(Context.GetAllDocTypes());
            if (ddsDnevnikModel.CodeDoc == null)
            {
                ddsDnevnikModel.CodeDoc = "01";
            }
            KindDoc            = KindDocLookup.FirstOrDefault(e => e.CodetId == ddsDnevnikModel.CodeDoc);
            ActivityTypeLookup = new ObservableCollection <LookUpSpecific>
            {
                new LookUpSpecific {
                    CodetId = "01", Id = 1, Name = "Покупки"
                },
                new LookUpSpecific {
                    CodetId = "02", Id = 2, Name = "Продажби"
                },
                new LookUpSpecific {
                    CodetId = "03", Id = 3, Name = "Други"
                },
            };
            this.Lookups = new ObservableCollection <LookUpMetaData>(Context.GetAllLookups(" where NAMEENG='k'"));

            AllFields = new ObservableCollection <DdsDnevnicItem>();
            foreach (var litem in ddsDnevnikModel.DetailItems)
            {
                if (ddsDnevnikModel.IsSuma == 0)
                {
                    if (litem.Name == item.Name)
                    {
                        if (litem.DdsSuma > 0 && litem.DdsSuma != item.DdsSuma)
                        {
                            _kor    = true;
                            _oldsum = litem.DdsSuma.ToString(Vf.LevFormatUI);
                        }
                        else
                        {
                            _kor = false;
                        }
                        litem.DdsSuma = item.DdsSuma;
                        litem.In      = true;
                    }
                }
                else
                {
                    if (!ddsDnevnikModel.IsLinked)
                    {
                        if (litem.Name == item.Name)
                        {
                            litem.DdsSuma         = item.DdsSuma;
                            ddsDnevnikModel.Total = item.DdsSuma.ToString(Vf.LevFormatUI);
                            litem.In = true;
                        }
                    }
                }
                AllFields.Add(new DdsDnevnicItem(litem));
            }

            if (ddsmodel.LookupID > 0)
            {
                Lookup = Lookups.FirstOrDefault(e => e.Id == ddsmodel.LookupID);
                if (Lookup == null)
                {
                    Lookup = ddsmodel.KindActivity == 2
                        ? Lookups.FirstOrDefault(e => e.Name == "Клиенти")
                        : Lookups.FirstOrDefault(e => e.Name == "Доставчици");
                    ddsmodel.LookupElementID = 0;
                }
            }
            else
            {
                Lookup = ddsmodel.KindActivity == 2
                    ? Lookups.FirstOrDefault(e => e.Name == "Клиенти")
                    : Lookups.FirstOrDefault(e => e.Name == "Доставчици");
            }
            if (ddsmodel.LookupElementID > 0)
            {
                string SerachedField = "";
                if (Lookup != null)
                {
                    SerachedField = Context.GetLookup(Lookup.Id).Fields[0].NameEng;
                }
                var list = Context.GetLookupDictionary(_lookUpMetaData.Tablename,
                                                       ConfigTempoSinglenton.GetInstance().CurrentFirma.Id,
                                                       string.Format("And \"{0}\"={1}", SerachedField, ddsmodel.LookupElementID));
                foreach (var li in list)
                {
                    if (li != null)
                    {
                        if (li.ContainsKey("Name"))
                        {
                            SelectedItem.Lookupval = li["Name"].ToString();
                            ClName = SelectedItem.Lookupval;
                        }
                        if (li.ContainsKey("VAT"))
                        {
                            DdsId = li["VAT"].ToString();
                        }
                        if (li.ContainsKey("BULSTAT"))
                        {
                            Bustad = li["BULSTAT"].ToString();
                        }
                        if (li.ContainsKey("KONTRAGENT"))
                        {
                            SelectedItem.Value = li["KONTRAGENT"].ToString();
                        }
                    }
                }
            }
            else
            {
                if (ddsmodel.ClNum != null)
                {
                    string SerachedField = "";
                    if (Lookup != null)
                    {
                        SerachedField = Context.GetLookup(Lookup.Id).Fields[1].NameEng;
                    }
                    var list = Context.GetLookupDictionary(_lookUpMetaData.Tablename,
                                                           ConfigTempoSinglenton.GetInstance().CurrentFirma.Id,
                                                           string.Format("And \"{0}\"={1}", SerachedField, ddsmodel.ClNum));
                    foreach (var li in list)
                    {
                        if (li != null)
                        {
                            if (li.ContainsKey("Name"))
                            {
                                SelectedItem.Lookupval = li["Name"].ToString();
                                ClName = SelectedItem.Lookupval;
                            }
                            if (li.ContainsKey("VAT"))
                            {
                                DdsId = li["VAT"].ToString();
                            }
                            if (li.ContainsKey("BULSTAT"))
                            {
                                Bustad = li["BULSTAT"].ToString();
                            }
                            if (li.ContainsKey("KONTRAGENT"))
                            {
                                SelectedItem.Value = li["KONTRAGENT"].ToString();
                            }
                            if (li.ContainsKey("Id"))
                            {
                                int id;
                                ddsDnevnikModel.LookupElementID = int.TryParse(li["Id"].ToString(), out id)?id:0;
                            }
                        }
                    }
                }
            }
        }
Beispiel #11
0
        public void PopulateConto()
        {
            Entrence.ConnectionString =
                "User ID=sysdba;Password=masterkey;Database=localhost:E:\\Samples\\Tempo2012MVVM\\Tempo2012\\Tempo2012.UI.WPF\\bin\\Debug\\data\\TEMPO2012.FDB;DataSource=localhost;";
            ObservableCollection <SaldoItem> ItemsCredit = new ObservableCollection <SaldoItem>();
            ObservableCollection <SaldoItem> ItemsDebit  = new ObservableCollection <SaldoItem>();

            Tempo2012.EntityFramework.TempoDataBaseContext context =
                new Tempo2012.EntityFramework.TempoDataBaseContext();
            ObservableCollection <WraperConto> AllWrapedConto = new ObservableCollection <WraperConto>();
            var AllAccountsK =
                new ObservableCollection <AccountsModel>(
                    context.GetAllAccounts(1));
            var Lookups = new ObservableCollection <LookUpMetaData>(context.GetAllLookups(" where NAMEENG='k'"));

            var allconto = context.GetAllConto(1);

            foreach (Conto conto in allconto)
            {
                var cont = conto.Clone();
                cont.DataInvoise.AddDays(1);
                AllWrapedConto.Add(new WraperConto(cont));
            }
            foreach (WraperConto wraperConto in AllWrapedConto)
            {
                ItemsCredit = new ObservableCollection <SaldoItem>(LoadDetails(wraperConto.CurrentConto.Id, 2, context));
                ItemsDebit  = new ObservableCollection <SaldoItem>(LoadDetails(wraperConto.CurrentConto.Id, 1, context));
                var oldid = wraperConto.Id;
                List <SaldoAnaliticModel> debit  = new List <SaldoAnaliticModel>();
                List <SaldoAnaliticModel> credit = new List <SaldoAnaliticModel>();
                if (ItemsCredit != null)
                {
                    foreach (SaldoItem currentsaldos in ItemsCredit)
                    {
                        SaldoAnaliticModel sa = new SaldoAnaliticModel();
                        sa.ACCFIELDKEY = currentsaldos.Fieldkey;
                        sa.ACCID       = wraperConto.CurrentConto.CreditAccount;
                        sa.DATA        = wraperConto.CurrentConto.DataInvoise;
                        sa.TYPEACCKEY  = 0;
                        sa.VALUEDATE   = currentsaldos.ValueDate;
                        sa.VAL         = currentsaldos.Value;
                        sa.VALUEMONEY  = currentsaldos.Valuedecimal;
                        sa.VALUENUM    = currentsaldos.ValueInt;
                        sa.VALUED      = currentsaldos.Valuedecimald;
                        sa.KURS        = currentsaldos.IsKol?currentsaldos.OnePrice:currentsaldos.ValueKurs;
                        sa.VALVAL      = currentsaldos.IsKol?currentsaldos.ValueKol:currentsaldos.ValueVal;
                        sa.KURSM       = currentsaldos.MainKurs;
                        sa.KURSD       = currentsaldos.KursDif;
                        sa.TYPE        = 2;
                        sa.LOOKUPID    = currentsaldos.Relookup;
                        sa.CONTOID     = wraperConto.CurrentConto.Id;
                        //context.SaveContoMovement(sa);
                        debit.Add(sa);
                    }
                }
                if (ItemsDebit != null)
                {
                    foreach (SaldoItem currentsaldos in ItemsDebit)
                    {
                        SaldoAnaliticModel sa = new SaldoAnaliticModel();

                        sa.ACCFIELDKEY = currentsaldos.Fieldkey;
                        sa.ACCID       = wraperConto.CurrentConto.DebitAccount;
                        sa.DATA        = DateTime.Now;
                        sa.TYPEACCKEY  = 0;
                        sa.VALUEDATE   = currentsaldos.ValueDate;
                        sa.VAL         = currentsaldos.Value;
                        sa.VALUEMONEY  = currentsaldos.Valuedecimal;
                        sa.VALUENUM    = currentsaldos.ValueInt;
                        sa.VALUED      = currentsaldos.Valuedecimald;
                        sa.KURS        = currentsaldos.IsKol ? currentsaldos.OnePrice : currentsaldos.ValueKurs;
                        sa.VALVAL      = currentsaldos.IsKol ? currentsaldos.ValueKol : currentsaldos.ValueVal;
                        sa.KURSM       = currentsaldos.MainKurs;
                        sa.KURSD       = currentsaldos.KursDif;
                        sa.TYPE        = 1;
                        sa.LOOKUPID    = currentsaldos.Relookup;

                        sa.CONTOID = wraperConto.CurrentConto.Id;
                        credit.Add(sa);
                        // context.SaveContoMovement(sa);
                    }
                }
                context.SaveConto(wraperConto.CurrentConto, debit, credit);
                #region sells

                if (wraperConto.IsSales)
                {
                    DdsDnevnikModel ddsDnevnikModel = context.LoadDenevnicItem(oldid, 2);
                    //ddsDnevnikModel.DocId = CurrentWraperConto.CurrentConto.DocNum;
                    ddsDnevnikModel.Date         = wraperConto.CurrentConto.Data;
                    ddsDnevnikModel.KindActivity = 2;

                    if (ddsDnevnikModel.LookupID == 0)
                    {
                        ddsDnevnikModel.CodeDoc = "01";
                        if (wraperConto.IsPurchases)
                        {
                            foreach (SaldoItem saldoItem in ItemsCredit)
                            {
                                if (saldoItem.IsLookUp)
                                {
                                    ddsDnevnikModel.LookupID = saldoItem.Relookup;
                                    if (saldoItem.SelectedLookupItem != null)
                                    {
                                        int lokalkey;
                                        if (int.TryParse(saldoItem.SelectedLookupItem.Key, out lokalkey))
                                        {
                                            ddsDnevnikModel.LookupElementID = lokalkey;
                                        }
                                    }
                                }
                                if (saldoItem.Name.Contains("Дата на фактура"))
                                {
                                    ddsDnevnikModel.DataF = saldoItem.ValueDate;
                                }
                                if (saldoItem.Name.Contains("Номер фактура"))
                                {
                                    ddsDnevnikModel.DocId = saldoItem.Value;
                                }
                            }
                        }
                        else
                        {
                            foreach (SaldoItem saldoItem in ItemsDebit)
                            {
                                if (saldoItem.IsLookUp)
                                {
                                    ddsDnevnikModel.LookupID = saldoItem.Relookup;
                                    if (saldoItem.SelectedLookupItem != null)
                                    {
                                        int lokalkey;
                                        if (int.TryParse(saldoItem.SelectedLookupItem.Key, out lokalkey))
                                        {
                                            ddsDnevnikModel.LookupElementID = lokalkey;
                                        }
                                    }
                                }
                                if (saldoItem.Name.Contains("Дата на фактура"))
                                {
                                    ddsDnevnikModel.DataF = saldoItem.ValueDate;
                                }
                                if (saldoItem.Name.Contains("Номер фактура"))
                                {
                                    ddsDnevnikModel.DocId = saldoItem.Value;
                                }
                            }
                        }
                    }

                    if (ddsDnevnikModel.LookupID > 0)
                    {
                        var SelectedLookup = new ObservableCollection <ContragentInfo>();
                        var Lookup         = Lookups.FirstOrDefault(e => e.Id == ddsDnevnikModel.LookupID);
                        var list           = context.GetLookup(Lookup.Tablename,
                                                               1);
                        foreach (List <string> li in list)
                        {
                            if (li != null && li.Count > 5)
                            {
                                SelectedLookup.Add(new ContragentInfo
                                {
                                    Id      = int.Parse(li[1]),
                                    Name    = li[2],
                                    Bulstad = li[4],
                                    Nzdds   = li[5]
                                });
                            }
                        }
                        if (ddsDnevnikModel.LookupElementID > 0)
                        {
                            LookupElementInfo =
                                SelectedLookup.FirstOrDefault(e => e.Id == ddsDnevnikModel.LookupElementID);
                            ddsDnevnikModel.Num = wraperConto.CurrentConto.Id;
                            if (LookupElementInfo != null)
                            {
                                ddsDnevnikModel.LookupElementID = LookupElementInfo.Id;
                                ddsDnevnikModel.Bulstat         = LookupElementInfo.Bulstad;
                                ddsDnevnikModel.Nzdds           = LookupElementInfo.Nzdds;
                                ddsDnevnikModel.NameKontr       = LookupElementInfo.Name;
                            }
                        }
                    }
                    ddsDnevnikModel.Num = wraperConto.CurrentConto.Id;
                    context.SaveDdsDnevnicModel(ddsDnevnikModel, ddsDnevnikModel.IsLinked);
                }


                #endregion

                #region purchases

                if (wraperConto.IsPurchases)
                {
                    var ddsDnevnikModel = context.LoadDenevnicItem(oldid, 1);
                    //ddsDnevnikModel.DocId = CurrentWraperConto.CurrentConto.DocNum;
                    ddsDnevnikModel.Date         = wraperConto.CurrentConto.Data;
                    ddsDnevnikModel.KindActivity = 1;

                    if (ddsDnevnikModel.LookupID == 0)
                    {
                        foreach (SaldoItem saldoItem in ItemsCredit)
                        {
                            if (saldoItem.IsLookUp)
                            {
                                ddsDnevnikModel.LookupID = saldoItem.Relookup;
                            }
                            if (saldoItem.Name.Contains("Дата на фактура"))
                            {
                                ddsDnevnikModel.DataF = saldoItem.ValueDate;
                            }
                            if (saldoItem.Name.Contains("Номер фактура"))
                            {
                                ddsDnevnikModel.DocId = saldoItem.Value;
                            }
                        }
                    }

                    if (ddsDnevnikModel.LookupID > 0)
                    {
                        var SelectedLookup = new ObservableCollection <ContragentInfo>();
                        var Lookup         = Lookups.FirstOrDefault(e => e.Id == ddsDnevnikModel.LookupID);
                        var list           = context.GetLookup(Lookup.Tablename,
                                                               1);
                        foreach (List <string> li in list)
                        {
                            if (li != null && li.Count > 5)
                            {
                                SelectedLookup.Add(new ContragentInfo
                                {
                                    Id      = int.Parse(li[1]),
                                    Name    = li[2],
                                    Bulstad = li[4],
                                    Nzdds   = li[5]
                                });
                            }
                        }
                        if (ddsDnevnikModel.LookupElementID > 0)
                        {
                            LookupElementInfo =
                                SelectedLookup.FirstOrDefault(e => e.Id == ddsDnevnikModel.LookupElementID);
                            ddsDnevnikModel.Num = wraperConto.CurrentConto.Id;
                            if (LookupElementInfo != null)
                            {
                                ddsDnevnikModel.LookupElementID = LookupElementInfo.Id;
                                ddsDnevnikModel.Bulstat         = LookupElementInfo.Bulstad;
                                ddsDnevnikModel.Nzdds           = LookupElementInfo.Nzdds;
                                ddsDnevnikModel.NameKontr       = LookupElementInfo.Name;
                            }
                        }
                    }
                    ddsDnevnikModel.Num = wraperConto.CurrentConto.Id;
                    context.SaveDdsDnevnicModel(ddsDnevnikModel, ddsDnevnikModel.IsLinked);
                }
                #endregion
            }
        }
Beispiel #12
0
        private static decimal SaveDDS(TempoDataBaseContext context, ContoAll allconto)
        {
            var itemsDdsDnevPurchases    = new List <DdsItemModel>(context.GetAllDnevItems(1));
            var itemsDdsDnevSales        = new List <DdsItemModel>(context.GetAllDnevItems(0));
            var currItemDdsDnevPurchases = itemsDdsDnevPurchases.FirstOrDefault(e => e.Code == allconto.KindDds);
            var currItemDdsDnevSales     = itemsDdsDnevSales.FirstOrDefault(e => e.Code == allconto.KindDds);
            int codeDnev = 2;

            if (allconto.KindDeal == "1")
            {
                codeDnev = 1;
            }
            DdsDnevnikModel ddsDnevnikModel = context.LoadDenevnicItem(allconto.Conto.Id, codeDnev);

            //ddsDnevnikModel.DocId = allconto.Conto.DocNum;
            ddsDnevnikModel.Date         = allconto.Conto.Data;
            ddsDnevnikModel.DataF        = allconto.Conto.Data;
            ddsDnevnikModel.KindActivity = codeDnev;
            ddsDnevnikModel.KindDoc      = 1;
            ddsDnevnikModel.Title        = codeDnev == 1 ? "Дневник покупки" : "Дневник продажби";
            ddsDnevnikModel.CodeDoc      = allconto.Conto.KD;
            ddsDnevnikModel.Stoke        = allconto.Conto.Reason;
            ddsDnevnikModel.DdsIncluded  = allconto.IsDdsInclude ? "ВКЛЮЧЕН ДДС" : "НЕВКЛЮЧЕН ДДС";
            if (codeDnev == 2)
            {
                if (allconto.ItemsCredit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsCredit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsDebit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
            }
            else
            {
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsDebit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
                if (allconto.ItemsDebit != null)
                {
                    foreach (SaldoItem saldoItem in allconto.ItemsCredit)
                    {
                        if (saldoItem.IsLookUp && saldoItem.Name.Contains("Контрагент"))
                        {
                            ddsDnevnikModel.LookupID        = saldoItem.Relookup;
                            ddsDnevnikModel.LookupElementID = saldoItem.LiD;
                            ddsDnevnikModel.ClNum           = saldoItem.Value;
                        }
                        if (saldoItem.Name.Contains("Дата на фактура"))
                        {
                            ddsDnevnikModel.DataF = saldoItem.ValueDate;
                        }
                        if (saldoItem.Name.Contains("Номер фактура"))
                        {
                            ddsDnevnikModel.DocId = saldoItem.Value;
                        }
                    }
                }
            }

            if (allconto.ItemsCredit == null && allconto.ItemsDebit == null)
            {
                ddsDnevnikModel.DataF    = DataFactura;
                ddsDnevnikModel.Bulstat  = Bulstad;
                ddsDnevnikModel.Nzdds    = Vat ?? Bulstad;
                ddsDnevnikModel.DocId    = Factura;
                ddsDnevnikModel.LookupID = 17;
                ddsDnevnikModel.ClNum    = CodeClient;
            }
            decimal ddspercent = 0;

            ddspercent = codeDnev == 1
                    ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.DdsPercent : 0
                    : currItemDdsDnevSales != null ? currItemDdsDnevSales.DdsPercent : 0;
            string name = codeDnev == 1
                    ? currItemDdsDnevPurchases != null ? currItemDdsDnevPurchases.Name : ""
                    : currItemDdsDnevSales != null ? currItemDdsDnevSales.Name : "";
            var vm = new DdsViewModel(ddsDnevnikModel, new DdsDnevnicItem
            {
                DdsPercent = ddspercent,
                DdsSuma    = allconto.Conto.Oborot,
                Name       = name,
                In         = true
            });

            vm.SaveCommand.Execute(null);
            return(Decimal.Round(allconto.Conto.Oborot * ddspercent / 100, 2));
        }
Beispiel #13
0
 public void SaveDdsDnevnicModel(DdsDnevnikModel ddsDnevnikModel)
 {
     RealDataContext.SaveDdsDnevnicModel(ddsDnevnikModel);
 }
Beispiel #14
0
 public virtual void SaveDdsDnevnicModel(DdsDnevnikModel ddsDnevnikModel, bool isedit)
 {
     RealDataContext.SaveDdsDnevnicModel(ddsDnevnikModel, isedit);
 }