Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -229,6 +229,21 @@ func safeTrimUpper(s string) string {
|
||||
return strings.ToUpper(strings.TrimSpace(s))
|
||||
}
|
||||
|
||||
func normalizeTextForMatchGo(s string) string {
|
||||
replacer := strings.NewReplacer(
|
||||
"ç", "c", "Ç", "C",
|
||||
"ğ", "g", "Ğ", "G",
|
||||
"ı", "i", "I", "I", "İ", "I",
|
||||
"ö", "o", "Ö", "O",
|
||||
"ş", "s", "Ş", "S",
|
||||
"ü", "u", "Ü", "U",
|
||||
)
|
||||
out := replacer.Replace(strings.TrimSpace(s))
|
||||
out = strings.ToUpper(out)
|
||||
out = strings.Join(strings.Fields(out), " ")
|
||||
return out
|
||||
}
|
||||
|
||||
func f64(v sql.NullFloat64) float64 {
|
||||
if !v.Valid {
|
||||
return 0
|
||||
@@ -318,8 +333,24 @@ func parseNumericSize(v string) (int, bool) {
|
||||
}
|
||||
|
||||
func detectBedenGroupGo(bedenList []string, ana, alt string) string {
|
||||
ana = safeTrimUpper(ana)
|
||||
alt = safeTrimUpper(alt)
|
||||
ana = normalizeTextForMatchGo(ana)
|
||||
alt = normalizeTextForMatchGo(alt)
|
||||
|
||||
// Beden seti çocuk yaş formatındaysa metadata beklemeden "yas" aç.
|
||||
yasNums := map[string]bool{"2": true, "4": true, "6": true, "8": true, "10": true, "12": true, "14": true}
|
||||
if len(bedenList) > 0 {
|
||||
allYas := true
|
||||
for _, b := range bedenList {
|
||||
x := normalizeBedenLabelGo(b)
|
||||
if !yasNums[x] {
|
||||
allYas = false
|
||||
break
|
||||
}
|
||||
}
|
||||
if allYas {
|
||||
return catYas
|
||||
}
|
||||
}
|
||||
|
||||
hasGarson := strings.Contains(ana, "GARSON") || strings.Contains(alt, "GARSON") ||
|
||||
strings.Contains(ana, "YETISKIN/GARSON") || strings.Contains(alt, "YETISKIN/GARSON") ||
|
||||
@@ -327,13 +358,7 @@ func detectBedenGroupGo(bedenList []string, ana, alt string) string {
|
||||
strings.Contains(ana, "YETİŞKIN/GARSON") || strings.Contains(alt, "YETİŞKIN/GARSON") ||
|
||||
strings.Contains(ana, "YETİŞKİN/GARSON") || strings.Contains(alt, "YETİŞKİN/GARSON")
|
||||
|
||||
hasAyakkabi := strings.Contains(ana, "AYAKKABI") || strings.Contains(alt, "AYAKKABI")
|
||||
|
||||
// ✅ Garson + ayakkabı özel grubu
|
||||
if hasGarson && hasAyakkabi {
|
||||
return catAykGar
|
||||
}
|
||||
// ✅ Garson → yaş
|
||||
// ✅ Garson → yaş (ürün tipi fark etmeksizin)
|
||||
if hasGarson {
|
||||
return catYas
|
||||
}
|
||||
@@ -354,7 +379,7 @@ func detectBedenGroupGo(bedenList []string, ana, alt string) string {
|
||||
"FULAR", "MENDIL", "MENDİL", "KASKOL", "ASKI",
|
||||
"YAKA", "KOL DUGMESI", "KOL DÜĞMESİ",
|
||||
}
|
||||
giyimGruplari := []string{"GÖMLEK", "CEKET", "PANTOLON", "MONT", "YELEK", "TAKIM", "TSHIRT", "TİŞÖRT"}
|
||||
giyimGruplari := []string{"GOMLEK", "GÖMLEK", "CEKET", "PANTOLON", "MONT", "YELEK", "TAKIM", "TSHIRT", "TISORT", "TİŞÖRT"}
|
||||
isAksesuar := false
|
||||
for _, g := range aksesuarGruplari {
|
||||
if strings.Contains(ana, g) || strings.Contains(alt, g) {
|
||||
@@ -759,6 +784,10 @@ func buildCategorySizeMap(rows []PdfRow) CategorySizeMap {
|
||||
if c == "" {
|
||||
c = catTak
|
||||
}
|
||||
// AKSESUAR başlığını sabit tut: satırlardan gelen 2,4,6... gibi ekstra bedenleri ekleme.
|
||||
if c == catAksbir {
|
||||
continue
|
||||
}
|
||||
if _, ok := cm[c]; !ok {
|
||||
cm[c] = []string{}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user