Esempio n. 1
0
        private void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
        {
            if (NeedToReturnToEditDiscounts())
            {
                e.Cancel = true;
                return;
            }

            SystemDataHandle.CloseConnection();
        }
        private async void GetFilials(object sender, RoutedEventArgs e)
        {
            List <ItemFilial> itemsFilial = null;

            await Task.Run(() => {
                itemsFilial = SystemDataHandle.GetFilials();
            });

            if (itemsFilial != null)
            {
                itemsFilial.ForEach(ItemsFilialAll.Add);
            }
        }
Esempio n. 3
0
        private async void ButtonDelete_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show(
                    "Вы уверены, что хотите удалить выбранные записи?", "Удаление",
                    MessageBoxButton.YesNoCancel, MessageBoxImage.Question) != MessageBoxResult.Yes)
            {
                return;
            }

            List <ItemDiscount> itemsToDeleteFromDb       = new List <ItemDiscount>();
            List <ItemDiscount> itemsToDeleteFromListView = new List <ItemDiscount>();

            foreach (ItemDiscount item in ListViewDiscounts.SelectedItems)
            {
                if (item.IsNewAdded)
                {
                    itemsToDeleteFromListView.Add(item);
                    continue;
                }

                itemsToDeleteFromDb.Add(item);
            }

            Cursor = Cursors.Wait;

            await Task.Run(() => {
                SystemDataHandle.DeleteDiscounts(itemsToDeleteFromDb);
            });

            itemsToDeleteFromListView.AddRange(itemsToDeleteFromDb);
            foreach (ItemDiscount item in itemsToDeleteFromListView)
            {
                ItemsDiscount.Remove(item);
            }

            if (ItemsDiscount.Count == 0)
            {
                isDiscountsChanged           = false;
                ButtonApplyChanges.IsEnabled = false;
            }

            Cursor = Cursors.Arrow;
        }
        private async void ButtonSearch_Click(object sender, RoutedEventArgs e)
        {
            string enteredText = TextBoxSearch.Text;

            if (string.IsNullOrEmpty(enteredText) ||
                string.IsNullOrWhiteSpace(enteredText))
            {
                MessageBox.Show(
                    "Необходимо ввести текст в поле для ввода", string.Empty,
                    MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }

            ItemsIC.Clear();

            Cursor = Cursors.Wait;

            List <ItemIC> resultItems            = new List <ItemIC>();
            bool          displayClosedContracts = CheckBoxUseClosedContracts.IsChecked == true ? true : false;

            await Task.Run(() => {
                resultItems = SystemDataHandle.SearchForIC(enteredText, itemsFilial, displayClosedContracts);
            });


            ButtonSelectAllIC.IsEnabled = resultItems.Count > 0;
            isSearchCompleted           = resultItems.Count > 0;

            if (resultItems.Count == 0)
            {
                resultItems.Add(new ItemIC()
                {
                    SHORTNAME = "По указаному запросу ничего не найдено"
                });
            }

            resultItems.ForEach(ItemsIC.Add);

            Cursor = Cursors.Arrow;
        }
        private async void ButtonSearchAll_Click(object sender, RoutedEventArgs e)
        {
            List <ItemDiscount> itemsDiscount = null;

            Cursor = Cursors.Wait;

            await Task.Run(() => {
                itemsDiscount = SystemDataHandle.SelectDiscountsAll();
            });

            Cursor = Cursors.Arrow;

            if (itemsDiscount.Count == 0)
            {
                MessageBox.Show("Нет данных за выбранный диапазон дат", "", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            PageViewDiscounts pageViewDiscounts = new PageViewDiscounts();

            NavigationService.Navigate(pageViewDiscounts);
        }
        private async void ButtonSearchByDate_Click(object sender, RoutedEventArgs e)
        {
            bool showErrorMessage = false;

            if (DatePickerDateBegin.SelectedDate == null)
            {
                showErrorMessage = true;
            }

            if (CheckBoxDontSelectDateEnd.IsChecked == false)
            {
                if (RadioButtonDateSelect.IsChecked == true)
                {
                    if (DatePickerEnd.SelectedDate == null)
                    {
                        showErrorMessage = true;
                    }
                    else if (DatePickerEnd.SelectedDate.Value < DatePickerDateBegin.SelectedDate.Value)
                    {
                        showErrorMessage = true;
                    }
                }
            }

            if (showErrorMessage)
            {
                MessageBox.Show("Выберите корректный диапазон дат", "", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            string sqlQuery          = Properties.Settings.Default.MisSqlSelectDiscountsByDatesTemplate + Environment.NewLine;
            bool   strongEqual       = RadioButtonStrongEqual.IsChecked ?? false;
            bool   dontSelectEndDate = CheckBoxDontSelectDateEnd.IsChecked ?? false;
            bool   endDateSelected   = RadioButtonDateSelect.IsChecked ?? false;

            if (dontSelectEndDate)
            {
                if (strongEqual)
                {
                    sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginStrongEqual;
                }
                else
                {
                    sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginWeakEqual;
                }
            }
            else
            {
                if (endDateSelected)
                {
                    if (strongEqual)
                    {
                        sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginEndStrongEqual;
                    }
                    else
                    {
                        sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginEndWeakEqual;
                    }
                }
                else
                {
                    if (strongEqual)
                    {
                        sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginEndlesslStrongEqual;
                    }
                    else
                    {
                        sqlQuery += Properties.Settings.Default.MisSqlSelectDiscountsByDateBeginEndlesslWeakEqual;
                    }
                }
            }

            DateTime?dateTimeEnd = null;

            if (!dontSelectEndDate && endDateSelected)
            {
                dateTimeEnd = DatePickerEnd.SelectedDate.Value;
            }

            Dictionary <string, string> parameters = new Dictionary <string, string>()
            {
                { "@dateBegin", DatePickerDateBegin.SelectedDate.Value.ToShortDateString() }
            };

            if (dateTimeEnd.HasValue)
            {
                parameters.Add("@dateEnd", dateTimeEnd.Value.ToShortDateString());
            }

            bool showClosesContracts          = CheckBoxShowClosedContracts.IsChecked ?? false;
            List <ItemDiscount> itemsDiscount = null;

            Cursor = Cursors.Wait;

            await Task.Run(() => {
                itemsDiscount = SystemDataHandle.SelectDiscoutByDates(sqlQuery, parameters, itemsFilial, showClosesContracts);
            });

            Cursor = Cursors.Arrow;

            if (itemsDiscount.Count == 0)
            {
                MessageBox.Show("Нет данных за выбранный диапазон дат", "", MessageBoxButton.OK, MessageBoxImage.Information);
                return;
            }

            PageViewDiscounts pageViewDiscounts = new PageViewDiscounts(sqlQuery, parameters, itemsFilial, showClosesContracts);

            NavigationService.Navigate(pageViewDiscounts);
        }
Esempio n. 7
0
        private async void ButtonApplyChanges_Click(object sender, RoutedEventArgs e)
        {
            foreach (ItemDiscount itemDiscount in ItemsDiscount)
            {
                if (!itemDiscount.IsChanged || itemDiscount.BZ_ADID != null)
                {
                    continue;
                }

                if (!itemDiscount.ContractPreview.Contains(" / "))
                {
                    MessageBox.Show(
                        "Имеются новые записи, у которых не выбран договор",
                        "Отмена", MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                if (itemDiscount.DISCOUNT < 1)
                {
                    MessageBox.Show(
                        "Имеются записи, у которых не задан размер скидки", "Отмена",
                        MessageBoxButton.OK, MessageBoxImage.Warning);
                    return;
                }

                bool isFound = false;
                foreach (ItemIC itemIC in itemsIC)
                {
                    if (itemDiscount.ContractPreview.Equals(itemIC.GetContractPreview()))
                    {
                        itemDiscount.JID    = itemIC.JID;
                        itemDiscount.AGRID  = itemIC.AGRID;
                        itemDiscount.FILIAL = itemIC.FILIAL;
                        isFound             = true;
                        break;
                    }
                }

                if (!isFound)
                {
                    MessageBox.Show(
                        "Не удалось определить данные договора для строки: " + itemDiscount.ContractPreview,
                        "Ошибка обработки", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }

            Cursor = Cursors.Wait;

            await Task.Run(() => {
                SystemDataHandle.UpdateOrInsertDiscount(ItemsDiscount.Where(i => i.IsChanged).ToList());
            });

            foreach (ItemDiscount item in ItemsDiscount)
            {
                item.IsNewAdded = false;
            }

            Cursor = Cursors.Arrow;

            isDiscountsChanged         = false;
            ((Button)sender).IsEnabled = false;

            UpdateListViewDiscounts();
        }
Esempio n. 8
0
        private async void UpdateListViewDiscounts()
        {
            if (NeedToReturnToEditDiscounts())
            {
                return;
            }

            ItemsDiscount.Clear();
            isDiscountsChanged              = false;
            ButtonAdd.IsEnabled             = false;
            ButtonApplyChanges.IsEnabled    = false;
            ButtonExportToExcel.IsEnabled   = false;
            ComboBoxEndlessIsChecked        = false;
            ComboBoxAmountRelationIsChecked = false;

            List <ItemDiscount> discounts = new List <ItemDiscount>();

            Cursor = Cursors.Wait;

            switch (searchType)
            {
            case SearchType.ByNameOrNumber:
                await Task.Run(() => {
                    discounts = SystemDataHandle.SelectDiscount(itemsIC);
                });

                ButtonAdd.IsEnabled = true;

                break;

            case SearchType.ByDate:
                await Task.Run(() => {
                    discounts = SystemDataHandle.SelectDiscoutByDates(
                        sqlQuerySelectDiscountsByDate,
                        sqlQueryParameters,
                        itemsFilial,
                        showClosedContracts);
                });

                break;

            case SearchType.All:
                await Task.Run(() => {
                    discounts = SystemDataHandle.SelectDiscountsAll();
                });

                break;

            default:
                return;
            }

            if (discounts.Count == 0)
            {
                switch (searchType)
                {
                case SearchType.ByNameOrNumber:
                    ButtonAdd_Click(ButtonAdd, new RoutedEventArgs());
                    break;

                case SearchType.ByDate:
                    MessageBox.Show("Нет данных за выбранный диапазон дат", "", MessageBoxButton.OK, MessageBoxImage.Information);
                    break;

                default:
                    break;
                }
            }

            ButtonExportToExcel.IsEnabled      = discounts.Count > 0;
            ButtonSelectAllDiscounts.IsEnabled = discounts.Count > 0;

            discounts.ForEach(ItemsDiscount.Add);
            CheckBox_Click(null, null);
            Cursor = Cursors.Arrow;
        }