private void sourceOfIncomeList_Holding(object sender, HoldingRoutedEventArgs e)
        {
            ListView listView = (ListView)sender;

            sourceOfIncomeFlyoutMenu.ShowAt(listView, e.GetPosition(listView));
            sourceOfIncomeElement = ((FrameworkElement)e.OriginalSource).DataContext as SourceOfIncome;
        }
示例#2
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.Parameter != null)
            {
                id = (int)e.Parameter;
                using (PFContext db = new PFContext())
                {
                    income = db.Income.FirstOrDefault(i => i.Id == id);
                }
            }

            if (income != null)
            {
                Income i;
                headerBlock.Text = "Редактировать доход";

                incomeSum.Text     = income.Summa.ToString();
                dateIncome.Date    = Convert.ToDateTime(income.DateOperation);
                incomeComment.Text = income.Comment;

                // ComboBox
                using (PFContext db = new PFContext())
                {
                    incomeCollection = new ObservableCollection <Income>(db.Income.Include(x => x.Purse)
                                                                         .Include(y => y.SourceOfIncome).ToList());
                    i                    = incomeCollection.FirstOrDefault(x => x.Id == id);
                    purseSealed          = i.Purse;
                    sourceOfIncomeSealed = i.SourceOfIncome;
                }
            }
            else
            {
                dateIncome.Date = DateTime.Today;
            }
        }
示例#3
0
        private void BtnOk_Click(object sender, RoutedEventArgs e)
        {
            if (nameSourceOfIncome.Text.Length == 0)
            {
                errorText.Text = "Введите название";
                return;
            }

            using (PFContext db = new PFContext())
            {
                if (income != null)
                {
                    income.Name = nameSourceOfIncome.Text;
                    db.SourceOfIncome.Update(income);
                }
                else
                {
                    SourceOfIncome incomeNew = new SourceOfIncome
                    {
                        Name = nameSourceOfIncome.Text
                    };
                    db.SourceOfIncome.Add(incomeNew);
                }
                db.SaveChanges();
            }
            GoToPreviousPage();
        }
        private void incomesCategoriesCB_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SourceOfIncome incomeCategoriesElement = incomesCategoriesCB.SelectedItem as SourceOfIncome;

            if (incomeCategoriesElement != null)
            {
                isAllIncomesCategories.IsChecked = false;
            }
        }
示例#5
0
        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            if (e.Parameter != null)
            {
                id = (int)e.Parameter;
                using (PFContext db = new PFContext())
                {
                    income = db.SourceOfIncome.FirstOrDefault(c => c.Id == id);
                }
            }

            if (income != null)
            {
                headerBlock.Text        = "Редактировать категорию доходов";
                nameSourceOfIncome.Text = income.Name;
            }
        }
        private void DeleteSourceOfIncomeItem(SourceOfIncome sourceOfIncome)
        {
            Purse purseChangeBalance;

            using (PFContext db = new PFContext())
            {
                foreach (Income i in db.Income)
                {
                    if (i.SourceOfIncomeId == sourceOfIncome.Id)
                    {
                        db.Income.Remove(i);
                        purseChangeBalance         = db.Purse.FirstOrDefault(p => p.Id == i.PurseId);
                        purseChangeBalance.Balance = purseChangeBalance.Balance - i.Summa;
                        db.Purse.Update(purseChangeBalance);
                    }
                }
                db.SourceOfIncome.Remove(sourceOfIncome);
                db.SaveChanges();
                sourceOfIncomeList.ItemsSource = db.SourceOfIncome.ToList();
            }
        }
        private void buttonAccept_Click(object sender, RoutedEventArgs e)
        {
            List <int> listIdForDelete = new List <int>();

            #region Validation
            if (isAllPurse.IsChecked == false && purseListCB.SelectedItem == null)
            {
                errorText.Text         = "Не выбран счет";
                amountSumma.Visibility = Visibility.Collapsed;
                errorText.Visibility   = Visibility.Visible;
                return;
            }
            if (isAllIncomesCategories.IsChecked == false && incomesCategoriesCB.SelectedItem == null)
            {
                errorText.Text         = "Не выбрана категория";
                amountSumma.Visibility = Visibility.Collapsed;
                errorText.Visibility   = Visibility.Visible;
                return;
            }
            if (isAllDate.IsChecked == false)
            {
                if (dateStart.Date == null || datefinish.Date == null)
                {
                    errorText.Text         = "Не выбрана дата";
                    amountSumma.Visibility = Visibility.Collapsed;
                    errorText.Visibility   = Visibility.Visible;
                    return;
                }
                else
                {
                    DateTimeOffset startDate        = (DateTimeOffset)dateStart.Date;
                    DateTimeOffset finishDate       = (DateTimeOffset)datefinish.Date;
                    string         dateFormatStart  = startDate.Date.ToString("dd.MM.yyyy");
                    string         dateFormatFinish = finishDate.Date.ToString("dd.MM.yyyy");

                    DateTime sDate = Convert.ToDateTime(dateFormatStart);
                    DateTime fDate = Convert.ToDateTime(dateFormatFinish);
                    if (sDate > fDate)
                    {
                        errorText.Text         = "Не корректно выбрана дата";
                        amountSumma.Visibility = Visibility.Collapsed;
                        errorText.Visibility   = Visibility.Visible;
                        return;
                    }
                }
            }
            #endregion

            using (PFContext db = new PFContext())
            {
                incomesCollection = new ObservableCollection <Income>(db.Income.Include(x => x.SourceOfIncome)
                                                                      .Include(x => x.Purse).Include(x => x.Currency).ToList());
            }

            if (isAllPurse.IsChecked != true)
            {
                Purse purseComboBox = purseListCB.SelectedItem as Purse;
                foreach (Income c in incomesCollection.ToList())
                {
                    if (c.PurseId != purseComboBox.Id)
                    {
                        listIdForDelete.Add(c.Id);
                    }
                }
                /* Удаление не нужных счетов */
                for (int i = 0; i < listIdForDelete.Count; i++)
                {
                    for (int j = 0; j < incomesCollection.Count; j++)
                    {
                        if (listIdForDelete[i] == incomesCollection[j].Id)
                        {
                            incomesCollection.RemoveAt(j);
                        }
                    }
                }
                listIdForDelete.Clear();
            }
            if (isAllIncomesCategories.IsChecked != true)
            {
                SourceOfIncome incomeCategoriesComboBox = incomesCategoriesCB.SelectedItem as SourceOfIncome;
                foreach (Income c in incomesCollection.ToList())
                {
                    if (c.SourceOfIncomeId != incomeCategoriesComboBox.Id)
                    {
                        listIdForDelete.Add(c.Id);
                    }
                }
                /* Удаление не нужных категорий */
                for (int i = 0; i < listIdForDelete.Count; i++)
                {
                    for (int j = 0; j < incomesCollection.Count; j++)
                    {
                        if (listIdForDelete[i] == incomesCollection[j].Id)
                        {
                            incomesCollection.RemoveAt(j);
                        }
                    }
                }
                listIdForDelete.Clear();
            }
            if (isAllDate.IsChecked != true)
            {
                DateTimeOffset startDate        = (DateTimeOffset)dateStart.Date;
                DateTimeOffset finishDate       = (DateTimeOffset)datefinish.Date;
                string         dateFormatStart  = startDate.Date.ToString("dd.MM.yyyy");
                string         dateFormatFinish = finishDate.Date.ToString("dd.MM.yyyy");

                DateTime sDate = Convert.ToDateTime(dateFormatStart);
                DateTime fDate = Convert.ToDateTime(dateFormatFinish);

                foreach (Income c in incomesCollection.ToList())
                {
                    if (Convert.ToDateTime(c.DateOperation) < sDate || Convert.ToDateTime(c.DateOperation) > fDate)
                    {
                        listIdForDelete.Add(c.Id);
                    }
                }
                /* Удаление не нужных дат */
                for (int i = 0; i < listIdForDelete.Count; i++)
                {
                    for (int j = 0; j < incomesCollection.Count; j++)
                    {
                        if (listIdForDelete[i] == incomesCollection[j].Id)
                        {
                            incomesCollection.RemoveAt(j);
                        }
                    }
                }
                listIdForDelete.Clear();
            }

            if (!SortIncomeCollection(incomesCollection))
            {
                incomeList.ItemsSource = incomesCollection;
            }
            amountSumma.Text = "Сумма доходов: " + GetTotalAmount(incomesCollection).ToString() + " BYN";
            ChangeCollectionForDiagramm(incomesCollection);
            filterFlyoutMenu.Hide();
        }
示例#8
0
        private void BtnOk_Click(object sender, RoutedEventArgs e)
        {
            Purse          pList = purseListCB.SelectedItem as Purse;
            SourceOfIncome sList = incomeCategorListCB.SelectedItem as SourceOfIncome;
            double         sum;

            DateTimeOffset date       = (DateTimeOffset)dateIncome.Date;
            string         dateFormat = date.Date.ToString("dd.MM.yyyy");

            if (pList == null)
            {
                errorText.Text = "Выберите счет";
                return;
            }
            if (!Double.TryParse(ConvertToStringFormat(incomeSum.Text), out sum))
            {
                errorText.Text = "Некоректная сумма";
                return;
            }
            if (sum < 0)
            {
                errorText.Text = "Некоректная сумма";
                return;
            }
            if (sList == null)
            {
                errorText.Text = "Выберите категорию";
                return;
            }
            //if (incomeComment.Text.Length == 0)
            //{
            //    incomeComment.Text = " ";
            //}

            using (PFContext db = new PFContext())
            {
                if (income != null)
                {
                    int    purseID_Old    = income.PurseId;
                    double summaIncom_Old = income.Summa;
                    currency = db.Currency.FirstOrDefault(c => c.Id == pList.CurrencyId);

                    if (pList.Id == purseID_Old && summaIncom_Old == sum) // неизменный кошелек и сумма
                    {
                        income.Summa            = sum;
                        income.DateOperation    = dateFormat;
                        income.PurseId          = pList.Id;
                        income.SourceOfIncomeId = sList.Id;
                        income.CurrencyId       = pList.CurrencyId;
                        income.Comment          = incomeComment.Text;
                        income.Purse            = pList;
                        income.SourceOfIncome   = sList;
                        income.Currency         = currency;
                    }
                    else if (pList.Id == purseID_Old && summaIncom_Old != sum) // изменяется только сумма
                    {
                        Purse purseChangeSumElement = db.Purse.FirstOrDefault(p => p.Id == pList.Id);
                        purseChangeSumElement.Balance = purseChangeSumElement.Balance + (sum - summaIncom_Old);
                        db.Purse.Update(purseChangeSumElement);

                        income.Summa            = sum;
                        income.DateOperation    = dateFormat;
                        income.PurseId          = pList.Id;
                        income.SourceOfIncomeId = sList.Id;
                        income.CurrencyId       = pList.CurrencyId;
                        income.Comment          = incomeComment.Text;
                        income.Purse            = pList;
                        income.SourceOfIncome   = sList;
                        income.Currency         = currency;
                    }
                    else if (pList.Id != purseID_Old)  //изменяется кошелек
                    {
                        Purse purseChangeOld;
                        Purse purseChangeNew;

                        purseChangeOld         = db.Purse.FirstOrDefault(p => p.Id == purseID_Old);
                        purseChangeOld.Balance = purseChangeOld.Balance - summaIncom_Old;
                        db.Purse.Update(purseChangeOld);

                        purseChangeNew         = db.Purse.FirstOrDefault(p => p.Id == pList.Id);
                        purseChangeNew.Balance = purseChangeNew.Balance + sum;
                        db.Purse.Update(purseChangeNew);

                        income.Summa            = sum;
                        income.DateOperation    = dateFormat;
                        income.PurseId          = pList.Id;
                        income.SourceOfIncomeId = sList.Id;
                        income.CurrencyId       = pList.CurrencyId;
                        income.Comment          = incomeComment.Text;
                        income.Purse            = pList;
                        income.SourceOfIncome   = sList;
                        income.Currency         = currency;
                    }
                    db.Income.Update(income);
                }
                else
                {
                    currency = db.Currency.FirstOrDefault(c => c.Id == pList.CurrencyId);
                    Income incomeNew = new Income
                    {
                        Summa            = sum,
                        DateOperation    = dateFormat,
                        PurseId          = pList.Id,
                        SourceOfIncomeId = sList.Id,
                        Comment          = incomeComment.Text,
                        Purse            = pList,
                        SourceOfIncome   = sList,
                        CurrencyId       = pList.CurrencyId,
                        Currency         = currency
                    };
                    db.Purse.Attach(pList);
                    db.SourceOfIncome.Attach(sList);
                    db.Currency.Attach(currency);
                    /* Update Purse */
                    purse         = db.Purse.FirstOrDefault(p => p.Id == incomeNew.PurseId);
                    purse.Balance = purse.Balance + incomeNew.Summa;
                    db.Purse.Update(purse);

                    db.Income.Add(incomeNew);
                }
                db.SaveChanges();
            }
            GoToPreviousPage();
        }