feat: WPF-приложение для автоматизации оформления деклараций
- Чтение СПРАВКИ из Excel (ClosedXML), поддержка нескольких файлов - Группировка по ТН ВЭД: схлопывание строк с суммированием кол-ва/веса/суммы - Автоназначение кодов деклараций по справочнику ТН ВЭД (87 пар) - Цветовая маркировка: зелёный/жёлтый/красный по уровню уверенности - Самообучение: ручной выбор кода сохраняется в tnved_codes.json - Формирование Лист3 с разворачиванием строк по рег. номерам (ключевая функция) - Экспорт Лист2 + Лист3 в Excel
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user