Esempio n. 1
0
        private void GoToSpare()
        {
            if (dgAnalogues.SelectedItem == null)
            {
                return;
            }
            SpareView SpareViewToGo = (dgAnalogues.SelectedItem as SpareView);
            int       SpareID       = SpareViewToGo.id;

            ParentWindow.LastSearch = "";
            if (ParentWindow.edtSearchText.Text != "")
            {
                ParentWindow.edtSearchText.Text = "";
            }

            //ParentWindow.edtSearchText.
            _searchText  = "";
            _brandName   = "";
            _groupID     = 0;
            _remainsOnly = false;
            if (ParentWindow.edtShowRests.IsChecked.HasValue)
            {
                if (ParentWindow.edtShowRests.IsChecked.Value)
                {
                    ParentWindow.edtShowRests.IsChecked = false;
                }
            }
            LoadSpares();
            SpareView s = SpareContainer.Instance.Spares.FirstOrDefault(x => x.id == SpareID);

            dgSpares.SelectedItem = s;
            dgSpares.ScrollIntoView(s);
        }
Esempio n. 2
0
        public void AddSpareToBasket(SpareView sv)
        {
            if (sv.QRest <= 0)
            {
                return;
            }
            int SpareID = sv.id;

            // если такой товар в корзине есть
            if (BasketItems.Where(x => x.SpareID == SpareID).Count() > 0)
            {
                if ((decimal)sv.QRest.Value >
                    BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q)
                {
                    BasketItems.FirstOrDefault(x => x.SpareID == SpareID).Q++;
                }
            }
            else
            {
                SpareInSpareIncomeView income = da.GetLastIncome(SpareID);
                AddIncomeToBasket(income);
            }

            // обновим грид
            LoadBasket();
        }
        private void OfferingAdd(int SpareID)
        {
            SpareInSpareIncomeView sisi = new SpareInSpareIncomeView();

            if (Income.currency == null)
            {
                Income.currencyReference.Load();
            }
            sisi.num         = offerings.Count + 1;
            sisi.CurrencyID  = Income.currency.id;
            sisi.description = "";
            sisi.Markup      = 0;
            sisi.PIn         = 1;
            sisi.PInBasic    = 1;
            sisi.POut        = 1;
            sisi.POutBasic   = 1;
            sisi.QIn         = 1;
            sisi.QRest       = 1;
            sisi.S           = 1;
            sisi.SBasic      = 1;
            DataAccess db = new DataAccess();

            sisi.SpareID = SpareID;
            SpareView sv = db.GetSpareView(SpareID);

            sisi.SpareName       = sv.name;
            sisi.SpareCode       = sv.code;
            sisi.SpareCodeShatem = sv.codeShatem;
            sisi.BrandName       = sv.BrandName;
            sisi.SpareIncomeID   = Income.id;
            sisi.VatRateName     = "0%";
            sisi.GroupName       = db.GetSpareGroup(sv.GroupID).name;
            sisi.ParentGroupName = db.GetSpareGroup(sv.spare_group1_id.Value).name;
            offerings.Add(sisi);
        }
        private void OfferingAdd(int SpareID, decimal Q, decimal Pusd, string GroupName, string ParentGroupName)
        {
            SpareInSpareIncomeView sisi = new SpareInSpareIncomeView();

            if (Income.currency == null)
            {
                Income.currencyReference.Load();
            }
            sisi.num             = offerings.Count + 1;
            sisi.CurrencyID      = Income.currency.id;
            sisi.description     = "";
            sisi.Markup          = 0;
            sisi.PIn             = Pusd;
            sisi.PInBasic        = Pusd;
            sisi.POut            = Pusd;
            sisi.POutBasic       = Pusd;
            sisi.QIn             = Q;
            sisi.QRest           = Q;
            sisi.S               = Q * Pusd;
            sisi.SBasic          = sisi.S;
            sisi.GroupName       = GroupName;
            sisi.ParentGroupName = ParentGroupName;
            DataAccess db = new DataAccess();

            sisi.SpareID = SpareID;
            SpareView sv = db.GetSpareView(SpareID);

            sisi.SpareName       = sv.name;
            sisi.SpareCode       = sv.code;
            sisi.SpareCodeShatem = sv.codeShatem;
            sisi.BrandName       = sv.BrandName;
            sisi.SpareIncomeID   = Income.id;
            sisi.VatRateName     = "0%";
            offerings.Add(sisi);
        }
Esempio n. 5
0
        private void EditSelectedAnalogue()
        {
            int       id = 0;
            SpareView b  = null;

            if (dgAnalogues.SelectedItem != null)
            {
                object sel = dgAnalogues.SelectedItem;
                b  = (SpareView)(sel);
                id = b.id;
                string spareName1 = this._oldName;
                string spareName2 = b.name;
                if (id > 0)
                {
                    SpareAnalogueEditView v  = new SpareAnalogueEditView();
                    DataAccess            da = new DataAccess();
                    spare_analogue        sp = da.getSpareAnalogue(spareName1, spareName2);
                    v._id                 = sp.id;
                    v._spareId1           = _id;
                    v._spareId2           = b.id;;
                    v.edtIsBoth.IsChecked = sp.is_equal > 0 ? true : false;
                    v.result              = b;
                    v.ShowDialog();
                    loadAnalogues(this._id);
                }
            }
        }
        private void SpareSearch()
        {
            string    SearchCode = code;
            SpareView sv         = null;

            code = "";
            List <SpareView> tmp = SpareContainer.Instance.GetSparesStrict(0, SearchCode);

            if (tmp.Count > 0)
            {
                sv = tmp[0];
            }
            else
            {
                edtSearchString.Content = "НЕ НАЙДЕНО!";
                if (MessageBox.Show("Товар не найден. Добавить сейчас новый?", "Добавление товара", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    sv = Marvin.Instance.SpareCreate();
                }
                else
                {
                    return;
                }
            }
            if (sv != null)
            {
                OfferingAdd(sv.id);
                LoadOfferings();
            }
            else
            {
                edtSearchString.Content = "error";
            }
        }
Esempio n. 7
0
        private void FixCurrentSpareQuantity()
        {
            int       SelectedSpareID = 0;
            SpareView spare           = null;

            if (dgSpares.SelectedItem != null)
            {
                spare = dgSpares.SelectedItem as SpareView;
            }
            else
            {
                return;
            }
            SelectedSpareID = spare.id;
            decimal NewQuantity = spare.q_rest.HasValue ? spare.q_rest.Value : 0;

            try
            {
                SpareContainer.Instance.FixQuantity(SelectedSpareID, NewQuantity);
                LoadSpares();
                MessageBox.Show("Изменения сохранены.");
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
 private void dgSpares_MouseDoubleClick(object sender, MouseButtonEventArgs e)
 {
     if (dgSpares.SelectedItem != null)
     {
         SV = dgSpares.SelectedItem as SpareView;
     }
     Close();
 }
Esempio n. 9
0
 private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     if (IsNew && TemporarySaved)
     {
         DataAccess db = new DataAccess();
         SpareViewItem = db.GetSpareView(this._id);
         Marvin.Instance.SpareDelete(SpareViewItem);
     }
 }
Esempio n. 10
0
 private void ScrollToFirstSpare()
 {
     if (dgSpares.Items.Count > 0)
     {
         SpareView s = dgSpares.Items[0] as SpareView;
         dgSpares.SelectedItem = s;
         dgSpares.UpdateLayout();
         dgSpares.ScrollIntoView(s);
     }
 }
Esempio n. 11
0
 private void BackgroundLoad_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     dgSpares.DataContext = items;
     if (dgSpares.HasItems && GotoMode != 4)
     {
         SpareView s = dgSpares.Items[0] as SpareView;
         dgSpares.SelectedItem = s;
         dgSpares.UpdateLayout();
         dgSpares.ScrollIntoView(s);
     }
     GotoMode = 0;
     ParentWindow.edtStatus.Content = "ok";
 }
Esempio n. 12
0
        public ReportViewSpareSalesByPeriod(DateTime df, DateTime dt, int SpareID, int WID)
        {
            InitializeComponent();
            dateTo      = dt;
            dateFrom    = df;
            WarehouseID = WID;
            DataAccess db = new DataAccess();

            Spare = db.GetSpareView(SpareID);
            if (Spare == null)
            {
                return;
            }
        }
Esempio n. 13
0
 private void SparePlus()
 {
     if (dgSpares.SelectedItem != null)
     {
         if ((dgSpares.SelectedItem as SpareView) != null)
         {
             SpareView i = (dgSpares.SelectedItem as SpareView);
             if (!(dgSpares.SelectedItem as SpareView).q_rest.HasValue)
             {
                 (dgSpares.SelectedItem as SpareView).q_rest = 0;
             }
             (dgSpares.SelectedItem as SpareView).q_rest++;
             da.SpareUpdateQReal(i.id, i.q_rest.Value);
         }
     }
 }
Esempio n. 14
0
        private void dgSpares_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            HandleMainDataGridCellEditEnding(sender, e);
            SpareView sv = (SpareView)e.Row.DataContext;

            if (sv.id > 0)
            {
                if (sv.q_demand.HasValue)
                {
                    sv.demand = (int)sv.q_demand - (int)sv.QRest;
                    if (sv.demand < 0)
                    {
                        sv.demand = 0;
                    }
                }
            }
        }
Esempio n. 15
0
        public static string CalculateQRests(int SpareID)
        {
            SpareView        spare      = SpareContainer.Instance.GetSpare(SpareID);
            DataAccess       da         = new DataAccess();
            string           xml        = "";
            List <warehouse> warehouses = da.GetWarehouses();
            List <double>    Qs         = new List <double>();

            xml += "<r>";

            // Q total
            double q0 = spare.QRest.HasValue ? spare.QRest.Value : 0;

            Qs.Add(q0);

            // all actual incomes
            List <SpareInSpareIncomeView> incomes = da.GetActualIncomes();

            // Q by warehouses
            foreach (warehouse w in warehouses)
            {
                // incomes by warehouse
                decimal?q = incomes.Where(i => (i.WarehouseID == w.id && i.SpareID == SpareID)).Sum(i => i.QRest);
                if (q.HasValue)
                {
                    Qs.Add((double)q.Value);
                }
                else
                {
                    Qs.Add(0);
                }
            }

            foreach (double q in Qs)
            {
                xml += "<w q=\"" + q.ToString() + "\"/>";
            }
            xml += @"</r>";

            // save sml to db
            da.SpareEdit(SpareID, xml);
            return(xml);
        }
Esempio n. 16
0
        public SpareView SpareCreateSilent(string Name, string CodeShatem, string GroupName, string ParentGroupName, string BrandName, string UnitName, string Description)
        {
            DataAccess da            = new DataAccess();
            spare      s             = da.SpareCreateSilent(Name, CodeShatem, GroupName, ParentGroupName, BrandName, UnitName, Description);
            SpareView  SpareViewItem = da.GetSpareView(s.id);

            SpareContainer.Instance.Update(s.id);
            int BrandID = SpareViewItem.BrandID;
            int GroupID = SpareViewItem.GroupID;

            if (SpareContainer.Instance.Spares.Where(i => i.BrandID == BrandID && i.GroupID == GroupID).Count() == 1)
            {
                if (s.brand == null)
                {
                    s.brandReference.Load();
                }
                da.SpareGroupCreate(GroupID, s.brand.name);
            }
            return(SpareViewItem);
        }
Esempio n. 17
0
        private void dgSpares_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            HandleMainDataGridCellEditEnding(sender, e);
            SpareView i = (SpareView)e.Row.DataContext;

            if (i.id > 0)
            {
                if (i.q_rest.HasValue)
                {
                    if (i.q_rest.Value >= 0)
                    {
                        da.SpareUpdateQReal(i.id, i.q_rest.Value);
                    }
                    else
                    {
                        i.q_rest = 0;
                    }
                }
            }
        }
Esempio n. 18
0
        /*
         * OLD
         * public void Update(SpareView spare)
         * {
         *  if (Spares.Where(x => x!= null).Where(x => x.id != null).Where(x => x.id == spare.id).Count() > 0)
         *  {
         *      SpareView sv = spares.Where(x => x != null).Where(x => x.id != null).FirstOrDefault(x => x.id == spare.id);
         *      if(sv != null)
         *          Spares.Remove(sv);
         *  }
         *  Spares.Add(spare);
         * }*/
        /* dec2012
         * public void Update(SpareView NewSpareInstance, bool UpdateFromDB = true) // обновление без удаления
         * {
         *  if (UpdateFromDB)
         *  {
         *      DataAccess da = new DataAccess();
         *      SpareView OldSpareInstance = Spares.Where(x => x != null).FirstOrDefault(x => x.id == NewSpareInstance.id);
         *
         *      // если в кэше такая есть, запоминает индекс и перезаписываем
         *      if (OldSpareInstance != null)
         *      {
         *          int i = Spares.IndexOf(OldSpareInstance);
         *          spares[i] = NewSpareInstance;
         *      }
         *      else
         *      {
         *          spares.Add(NewSpareInstance);
         *      }
         *  }
         *  else
         *  {
         *  List<SpareView> items = this.Spares;
         *  SpareView ind = items.Where(x => x != null).FirstOrDefault(x => x.id == NewSpareInstance.id);
         *  if (ind != null)
         *  {
         *      int i = spares.IndexOf(ind);
         *      spares[i] = NewSpareInstance;
         *  }
         *  else
         *  {
         *      spares.Add(NewSpareInstance);
         *  }
         * }
         * }
         */

        public void Update(int SpareID, bool UpdateFromDB = true, bool SkipQRestsCalculation = false)
        {
            if (UpdateFromDB)
            {
                DataAccess da = new DataAccess();
                SpareView  OldSpareInstance = Spares.Where(x => x != null).FirstOrDefault(x => x.id == SpareID);
                SpareView  NewSpareInstance = da.GetSpareView(SpareID);

                // если в кэше такая есть, запоминает индекс и перезаписываем
                if (OldSpareInstance != null)
                {
                    int i = Spares.IndexOf(OldSpareInstance);
                    spares[i] = NewSpareInstance;
                }
                else
                {
                    spares.Add(NewSpareInstance);
                }
            }
            else
            {
                List <SpareView> items = this.Spares.ToList();
                SpareView        ind   = items.Where(x => x != null).FirstOrDefault(x => x.id == SpareID);
                if (ind != null)
                {
                    int i = spares.IndexOf(ind);
                    spares[i] = ind;
                }
                else
                {
                    DataAccess db = new DataAccess();
                    SpareView  sv = db.GetSpareView(SpareID);
                    spares.Add(sv);
                }
            }
            if (!SkipQRestsCalculation)
            {
                Helper.CalculateQRests(SpareID);
                Update(SpareID, true, true);
            }
        }
Esempio n. 19
0
 private void SpareMinus()
 {
     if (dgSpares.SelectedItem != null)
     {
         if ((dgSpares.SelectedItem as SpareView) != null)
         {
             SpareView i = (dgSpares.SelectedItem as SpareView);
             if (!(dgSpares.SelectedItem as SpareView).q_rest.HasValue)
             {
                 (dgSpares.SelectedItem as SpareView).q_rest = 0;
             }
             else
             {
                 if ((dgSpares.SelectedItem as SpareView).q_rest.Value > 0)
                 {
                     (dgSpares.SelectedItem as SpareView).q_rest--;
                 }
                 da.SpareUpdateQReal(i.id, i.q_rest.Value);
             }
         }
     }
 }
Esempio n. 20
0
        private int getSelectedSpareId()
        {
            int result = 0;

            try
            {
                if (dgSpares.SelectedItem != null)
                {
                    object sel = dgSpares.SelectedItem;
                    result = ((SpareView)sel).id;
                }
                else
                {
                    MessageBox.Show("Сначала выберите деталь из списка");
                }
            }
            catch (Exception)
            {
                loadSpares();
            }
            return(result);
        }
Esempio n. 21
0
        private string getSelectedSpareName()
        {
            string result = "";

            try
            {
                if (dgSpares.SelectedItem != null)
                {
                    object sel = dgSpares.SelectedItem;
                    result = ((SpareView)sel).name;
                }
                else
                {
                    MessageBox.Show("Сначала выберите деталь из списка");
                }
            }
            catch (Exception)
            {
                loadSpares();
            }
            return(result);
        }
Esempio n. 22
0
        private void DeleteSelectedSpare()
        {
            int       id = 0;
            SpareView b  = null;

            if (dgSpares.SelectedItem != null)
            {
                object sel = dgSpares.SelectedItem;
                b  = (SpareView)sel;
                id = b.id;
            }
            if (id > 0)
            {
                MessageBoxResult res = MessageBox.Show("Вы действительно хотите удалить выделенную запись?", "Удаление!", MessageBoxButton.YesNo);
                if (res == MessageBoxResult.Yes)
                {
                    DataAccess da = new DataAccess();
                    da.SpareDelete(id);
                    loadSpares();
                }
            }
        }
Esempio n. 23
0
        // ЗАПЧАСТЬ - ДОБАВИТЬ
        public SpareView SpareCreate()
        {
            if (!ready())
            {
                return(null);// null;
            }
            SpareView result = null;

            SpareEditView v = new SpareEditView();

            v._id             = -1;
            v.ParentWorkspace = mainWindowObj;
            v.ShowDialog();
            if (v._spare != null)
            {
                DataAccess db = new DataAccess();
                result = db.GetSpareView(v._spare.id);

                mainWindowObj.LoadSpares();
                mainWindowObj.LoadGroups(false);
            }
            return(result);
        }
Esempio n. 24
0
        //private string code = "";

        private void SmartSpareSearch()
        {
            if (uc_Spares.grBasket.Visibility != System.Windows.Visibility.Visible)
            {
                return;
            }
            string    SearchCode = edtSearchText.Text;
            SpareView sv         = null;

            edtSearchText.Clear();
            List <SpareView> tmp = SpareContainer.Instance.GetSparesStrict(0, SearchCode);

            if (tmp.Count > 0)
            {
                sv = tmp[0];
            }
            else
            {
                //edtSearchString.Content = "НЕ НАЙДЕНО!";
                if (MessageBox.Show("Товар не найден. Добавить сейчас новый?", "Добавление товара", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    sv = Marvin.Instance.SpareCreate();
                }
                else
                {
                    return;
                }
            }
            if (sv != null)
            {
                uc_Spares.AddSpareToBasket(sv);
            }
            else
            {
                //edtSearchString.Content = "error";
            }
        }
Esempio n. 25
0
        // ЗАПЧАСТЬ - УДАЛИТЬ
        public void SpareDelete(SpareView item)
        {
            if (!ready())
            {
                return;
            }
            //try
            {
                DataAccess da  = new DataAccess();
                int        cnt = SpareContainer.Instance.Spares.Where(s => s.BrandID == item.BrandID && s.GroupID == item.GroupID).Count();
                spare      sp  = da.GetSpare(item.id);
                if (sp.spare_group == null)
                {
                    sp.spare_groupReference.Load();
                }
                if (sp.brand == null)
                {
                    sp.brandReference.Load();
                }
                int BrandID = item.BrandID;
                int GroupID = item.GroupID;
                da.SpareDelete(item.id);
                SpareContainer.Instance.Remove(item.id);

                // проверить, не последняя ли это деталь в брэнде в данной группе
                if (cnt < 2)
                {
                    da.SpareGroupDelete(BrandID, GroupID);
                }
            }

            //catch (Exception ex)
            {
                //    this.Log(ex.Message);
            }
        }
Esempio n. 26
0
        public void Remove(int id)
        {
            SpareView sv = Spares.FirstOrDefault(x => x.id == id);

            spares.Remove(sv);
        }
Esempio n. 27
0
        public SpareIncomeSmart(int IncID, string filename)
        {
            //try
            {
                InitializeComponent();
                DataAccess db = new DataAccess();
                Income = db.SpareIncomeGet(IncID);

                // readinf csv
                string[] source = File.ReadAllLines(filename, System.Text.Encoding.Default);
                int      i      = 0;
                foreach (string s in source)
                {
                    if (i != 0)
                    {
                        string[] fields = s.Split(';');

                        // 0 код_брэнд
                        string[] f1         = fields[0].Split('_');
                        string   CodeShatem = f1[0];
                        string   BrandName  = f1[1];

                        // 1 количество
                        decimal Q = 0;
                        decimal.TryParse(fields[1], out Q);

                        // 2 код_брэнд_
                        string[] f2 = fields[2].Split('_');

                        // string CodeShatem = f1[0];
                        // string Brand = f1[1];
                        // string Code = f2[2];
                        // 3 Цена, доллар
                        decimal Pusd = 0;
                        string  p    = fields[3].Replace(',', '.');
                        decimal.TryParse(p, out Pusd);

                        // 4 Цена, евро
                        decimal Peuro = 0;
                        decimal.TryParse(fields[4], out Peuro);

                        // 5 группа
                        string ParentGroup = fields[5];

                        // 6 группа
                        string Group = fields[6];

                        // 7 группа
                        string name = fields[7];

                        // 8 единица измерения
                        string UnitName = fields[8];

                        // поиск запчасти по коду и брэнду
                        SpareView        FoundSpare       = null;
                        int              searchFieldIndex = 2; // код шате-м
                        List <SpareView> FoundList        = SpareContainer.Instance.GetSparesStrict(searchFieldIndex, CodeShatem);
                        if (FoundList.Count == 0)
                        {
                            // если запчасть не найдена, предложить создать новую
                            string mess = "Товар с кодом [" + CodeShatem + "] не найден в базе.\n";
                            mess += "Название:  " + name + "\n";
                            mess += "Подгруппа: " + Group + "\n";
                            mess += "Группа:    " + ParentGroup + "\n";
                            mess += "Брэнд:     " + BrandName + "\n";
                            mess += "Создать новый?";
                            MessageBoxResult answer = MessageBox.Show(mess, "Импорт новой детали", MessageBoxButton.YesNo);
                            if (answer == MessageBoxResult.Yes)
                            {
                                // если создать новую, создать новую деталь
                                FoundSpare = Marvin.Instance.SpareCreateSilent(name, CodeShatem, Group, ParentGroup, BrandName, UnitName, "Импортировано");
                            }
                        }
                        else
                        if (FoundList.Count == 1)
                        {
                            FoundSpare = FoundList[0];
                        }
                        else
                        {
                            FoundList = FoundList.Where(x => x.BrandName == BrandName).ToList();

                            // если есть детали с одинаковым кодом, выбрать по брэнду (группе)
                            if (FoundList.Count == 1)
                            {
                                FoundSpare = FoundList[0];
                            }
                        }
                        if (FoundSpare != null)
                        {
                            // добавить в список, подставиви количество и цену
                            OfferingAdd(FoundSpare.id, Q, Pusd, Group, ParentGroup);
                        }
                    }
                    i++;
                }
                LoadOfferings();
                Stage++;
                dgSpares.IsEnabled = true;
            }

            //catch(Exception e)
            //{
            //    MessageBox.Show("Ошибка импорта: " + e.Message + "\n" + e.InnerException);
            //}
        }
Esempio n. 28
0
        private void BackgroundShowDetails_DoWork(object sender, DoWorkEventArgs e)
        {
            // DETAILED INFO
            IList selectedItems = e.Argument as IList;

            if (selectedItems.Count == 0)
            {
                DetailSpareInfo_Brand = "";
                DetailSpareInfo_Group = "";
                DetailSpareInfo_Name  = "";
                Detail_Incomes        = null;
                Detail_Analogues      = null;
            }
            else
            {
                SpareView selected = selectedItems[0] as SpareView;
                DetailSpareInfo_Brand = selected.BrandName;
                DetailSpareInfo_Name  = selected.name;

                // построим путь по группам к запчасти
                // текущая группа
                DataAccess db = new DataAccess();
                spare      s  = db.GetSpare(selected.id);
                string     gp = s.spare_group.name;

                // родительская
                if (s.spare_group1 != null)
                {
                    gp = s.spare_group1.name + "/" + gp;
                }

                // дедушка
                if (s.spare_group2 != null)
                {
                    gp = s.spare_group2.name + "/" + gp;
                }

                // прадедушка
                if (s.spare_group3 != null)
                {
                    gp = s.spare_group3.name + "/" + gp;
                }
                DetailSpareInfo_Group = gp;

                // INCOMES & ANALOGS WINDOWS
                // anlogues
                Detail_Analogues = db.GetAnalogues(selected.id);

                // incomes
                Detail_Incomes = db.GetIncomes(selected.id);
                foreach (SpareInSpareIncomeView i in Detail_Incomes)
                {
                    decimal POutBasic = 0;
                    decimal PInBasic  = 0;
                    if (!i.POutBasic.HasValue)
                    {
                        string IncomeCurrencyCode = i.CurrencyCode;

                        decimal PIn = i.PIn.Value;
                        POutBasic = CurrencyHelper.GetBasicPrice(IncomeCurrencyCode, PIn);
                    }
                    else
                    {
                        POutBasic = i.POutBasic.Value;
                    }
                    if (i.PInBasic.HasValue)
                    {
                        PInBasic = i.PInBasic.Value;
                    }
                    else
                    {
                        string  IncomeCurrencyCode = i.CurrencyCode;
                        decimal PIn = i.PIn.Value;
                        PInBasic = CurrencyHelper.GetBasicPrice(IncomeCurrencyCode, PIn);
                    }
                    i.DF_PriceInCurrency   = CurrencyHelper.GetPrice(currentCurrencyName, POutBasic);
                    i.DF_PriceInCurrencyIn = CurrencyHelper.GetPrice(currentCurrencyName, PInBasic);

                    string strDate = "";
                    if (i.SpareIncomeDate.Value.Day < 10)
                    {
                        strDate += "0";
                    }
                    strDate += i.SpareIncomeDate.Value.Day + ".";
                    if (i.SpareIncomeDate.Value.Month < 10)
                    {
                        strDate += "0";
                    }
                    strDate  += i.SpareIncomeDate.Value.Month + ".";
                    strDate  += i.SpareIncomeDate.Value.Year;
                    i.DF_Date = strDate;
                }
            }
        }