697ae44519
- Загрузка одного .xlsx (СПРАВКА + Лист1 в одном файле) - Рег. номера берутся из СПРАВКА автоматически, группируются по (ТН ВЭД, Страна) - Отдельный опциональный справочник кодов (CodesImportService) - Фильтры: Все / Авто / Проверить / Нет кода / Без нетто - Таблица сразу отсортирована по ТН ВЭД с живым обновлением п/п - Начальный п/п: поле в UI, автоинкремент после экспорта - Лист2: рамки, жёлтая строка при >1 рег. номере, итого по кол-ву - Лист3: ТН ВЭД в колонке B вместо константы 09035 - Красный ErrorMessage под кнопкой загрузки, удалён SpravkaFileEntry
44 lines
1.3 KiB
C#
44 lines
1.3 KiB
C#
using System.Collections.Generic;
|
|
using DeclarationAutomatization.Models;
|
|
|
|
namespace DeclarationAutomatization.Services;
|
|
|
|
public class Sheet3ExpandService
|
|
{
|
|
// Разворачивает позиции Листа2 по рег. номерам.
|
|
// Один товар с N рег. номерами → N строк в Листе3 (с тем же п/п).
|
|
public List<Sheet3Row> Expand(IEnumerable<DeclarationItem> items)
|
|
{
|
|
var result = new List<Sheet3Row>();
|
|
|
|
foreach (var item in items)
|
|
{
|
|
if (item.RegEntries.Count == 0)
|
|
{
|
|
result.Add(new Sheet3Row
|
|
{
|
|
SequentialNumber = item.SequentialNumber,
|
|
TnVed = item.TnVed,
|
|
RegNumber = "",
|
|
RegDate = "",
|
|
});
|
|
}
|
|
else
|
|
{
|
|
foreach (var entry in item.RegEntries)
|
|
{
|
|
result.Add(new Sheet3Row
|
|
{
|
|
SequentialNumber = item.SequentialNumber,
|
|
TnVed = item.TnVed,
|
|
RegNumber = entry.Number,
|
|
RegDate = entry.Date,
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
}
|