diff --git a/svc/queries/order_write.go b/svc/queries/order_write.go index 2b3dee2..bad3da9 100644 --- a/svc/queries/order_write.go +++ b/svc/queries/order_write.go @@ -520,9 +520,11 @@ func loadVariantDim1SetTx(tx *sql.Tx, item, color, dim2 string) (map[string]stru return nil, fmt.Errorf("variant set scan hatası: %w", err) } norm := normalizeDim1Token(raw) - if norm != "" { - set[norm] = struct{}{} + if norm == "" { + set["#EMPTY_DIM1"] = struct{}{} + continue } + set[norm] = struct{}{} if num := normalizeNumericToken(norm); num != "" { set["#NUM:"+num] = struct{}{} } @@ -564,9 +566,11 @@ func loadVariantDim1SetDB(conn *sql.DB, item, color, dim2 string) (map[string]st return nil, fmt.Errorf("variant set scan hatası: %w", err) } norm := normalizeDim1Token(raw) - if norm != "" { - set[norm] = struct{}{} + if norm == "" { + set["#EMPTY_DIM1"] = struct{}{} + continue } + set[norm] = struct{}{} if num := normalizeNumericToken(norm); num != "" { set["#NUM:"+num] = struct{}{} } @@ -658,7 +662,8 @@ func ValidateItemVariantCached(tx *sql.Tx, ln models.OrderDetail, cache map[stri _, okNorm := set[dim1Norm] _, okNum := set["#NUM:"+dim1Numeric] - if !(okNorm || (dim1Numeric != "" && okNum)) { + _, okEmpty := set["#EMPTY_DIM1"] + if !(okNorm || (dim1Numeric != "" && okNum) || (dim1Norm == "" && okEmpty)) { return &models.ValidationError{ Code: "INVALID_ITEM_VARIANT", Message: "Tanımsız ürün kombinasyonu", @@ -730,7 +735,8 @@ func ValidateOrderVariants(db *sql.DB, lines []models.OrderDetail) ([]models.Inv _, okNorm := set[dim1Norm] _, okNum := set["#NUM:"+dim1Numeric] - if !(okNorm || (dim1Numeric != "" && okNum)) { + _, okEmpty := set["#EMPTY_DIM1"] + if !(okNorm || (dim1Numeric != "" && okNum) || (dim1Norm == "" && okEmpty)) { invalid = append(invalid, models.InvalidVariant{ Index: i, ClientKey: safeNS(ln.ClientKey),