feat: единый файл Лист1+СПРАВКА, фильтры, сортировка, живой п/п

- Загрузка одного .xlsx (СПРАВКА + Лист1 в одном файле)
- Рег. номера берутся из СПРАВКА автоматически, группируются по (ТН ВЭД, Страна)
- Отдельный опциональный справочник кодов (CodesImportService)
- Фильтры: Все / Авто / Проверить / Нет кода / Без нетто
- Таблица сразу отсортирована по ТН ВЭД с живым обновлением п/п
- Начальный п/п: поле в UI, автоинкремент после экспорта
- Лист2: рамки, жёлтая строка при >1 рег. номере, итого по кол-ву
- Лист3: ТН ВЭД в колонке B вместо константы 09035
- Красный ErrorMessage под кнопкой загрузки, удалён SpravkaFileEntry
This commit is contained in:
Dianaka123
2026-04-07 11:47:31 +03:00
parent addf55e3b2
commit 697ae44519
13 changed files with 602 additions and 429 deletions
@@ -3,9 +3,11 @@ using CommunityToolkit.Mvvm.ComponentModel;
namespace DeclarationAutomatization.Models;
public record RegEntry(string Number, string Date);
public partial class DeclarationItem : ObservableObject
{
public int SequentialNumber { get; init; }
public int SequentialNumber { get; set; }
public string Description { get; init; } = "";
public string TnVed { get; init; } = "";
public string CountryId { get; init; } = "";
@@ -13,8 +15,9 @@ public partial class DeclarationItem : ObservableObject
public decimal AmountWithVat { get; init; }
public decimal GrossWeight { get; init; }
public decimal NetWeight { get; init; }
public string RegNumber { get; init; } = "";
public string RegDate { get; init; } = "";
// Все рег. номера из СПРАВКИ для данного ТН ВЭД
public List<RegEntry> RegEntries { get; set; } = new();
[ObservableProperty]
private string _declarationCode = "";