059895d1c3
- Чтение СПРАВКИ из Excel (ClosedXML), поддержка нескольких файлов - Группировка по ТН ВЭД: схлопывание строк с суммированием кол-ва/веса/суммы - Автоназначение кодов деклараций по справочнику ТН ВЭД (87 пар) - Цветовая маркировка: зелёный/жёлтый/красный по уровню уверенности - Самообучение: ручной выбор кода сохраняется в tnved_codes.json - Формирование Лист3 с разворачиванием строк по рег. номерам (ключевая функция) - Экспорт Лист2 + Лист3 в Excel
41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using DeclarationAutomatization.Models;
|
|
using DeclarationAutomatization.ViewModels;
|
|
|
|
namespace DeclarationAutomatization.Views;
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
private readonly MainViewModel _viewModel;
|
|
|
|
public MainWindow(MainViewModel viewModel)
|
|
{
|
|
InitializeComponent();
|
|
_viewModel = viewModel;
|
|
DataContext = viewModel;
|
|
|
|
// Обрабатываем завершение редактирования кода в таблице
|
|
ItemsGrid.CellEditEnding += OnCellEditEnding;
|
|
}
|
|
|
|
private void OnCellEditEnding(object? sender, DataGridCellEditEndingEventArgs e)
|
|
{
|
|
if (e.EditAction != DataGridEditAction.Commit) return;
|
|
if (e.Row.Item is not DeclarationItem item) return;
|
|
|
|
// Колонка "Код декларации" (индекс 8)
|
|
if (e.Column.DisplayIndex != 8) return;
|
|
|
|
string? newCode = null;
|
|
|
|
if (e.EditingElement is ComboBox combo)
|
|
newCode = combo.Text?.Trim();
|
|
else if (e.EditingElement is TextBox tb)
|
|
newCode = tb.Text?.Trim();
|
|
|
|
if (!string.IsNullOrEmpty(newCode))
|
|
_viewModel.OnCodeManuallyChanged(item, newCode);
|
|
}
|
|
}
|