fix: использовать DefaultCategories как fallback для сортировки в CSV-экспорте
categoryRepo всегда nil (передаётся null при инициализации), поэтому categoryOrder был пустым и сортировка по категориям не работала. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -127,11 +127,10 @@ func (s *ExportService) ToCSV(w io.Writer, data *ProjectExportData) error {
|
||||
return fmt.Errorf("failed to write header: %w", err)
|
||||
}
|
||||
|
||||
// Get category hierarchy for sorting
|
||||
categoryOrder := make(map[string]int)
|
||||
// Build category order: start from DefaultCategories, override with live DB values if available.
|
||||
categoryOrder := defaultCategoryOrder()
|
||||
if s.categoryRepo != nil {
|
||||
categories, err := s.categoryRepo.GetAll()
|
||||
if err == nil {
|
||||
if categories, err := s.categoryRepo.GetAll(); err == nil {
|
||||
for _, cat := range categories {
|
||||
categoryOrder[cat.Code] = cat.DisplayOrder
|
||||
}
|
||||
@@ -516,6 +515,15 @@ func (s *ExportService) resolveCategories(pricelistID *uint, lotNames []string)
|
||||
return categories
|
||||
}
|
||||
|
||||
// defaultCategoryOrder returns a category code → display_order map built from models.DefaultCategories.
|
||||
func defaultCategoryOrder() map[string]int {
|
||||
m := make(map[string]int, len(models.DefaultCategories))
|
||||
for _, cat := range models.DefaultCategories {
|
||||
m[cat.Code] = cat.DisplayOrder
|
||||
}
|
||||
return m
|
||||
}
|
||||
|
||||
// sortItemsByCategory sorts items by category display order (items without category go to the end).
|
||||
func sortItemsByCategory(items []ExportItem, categoryOrder map[string]int) {
|
||||
for i := 0; i < len(items)-1; i++ {
|
||||
|
||||
Reference in New Issue
Block a user