package routes import ( "bssapp-backend/models" "bssapp-backend/queries" "database/sql" "encoding/json" "log" "net/http" "github.com/gorilla/mux" ) // ====================================================== // 📌 OrderProductionItemsRoute — U ürün satırları // ====================================================== func OrderProductionItemsRoute(mssql *sql.DB) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json; charset=utf-8") id := mux.Vars(r)["id"] if id == "" { http.Error(w, "OrderHeaderID bulunamadı", http.StatusBadRequest) return } rows, err := queries.GetOrderProductionItems(mssql, id) if err != nil { log.Printf("❌ SQL sorgu hatası: %v", err) http.Error(w, "Veritabanı hatası", http.StatusInternalServerError) return } defer rows.Close() list := make([]models.OrderProductionItem, 0, 100) for rows.Next() { var o models.OrderProductionItem if err := rows.Scan( &o.OrderHeaderID, &o.OrderLineID, &o.OldItemCode, &o.OldColor, &o.OldDim2, &o.OldDesc, &o.NewItemCode, &o.NewColor, &o.NewDim2, &o.NewDesc, ); err != nil { log.Printf("⚠️ SCAN HATASI: %v", err) continue } list = append(list, o) } if err := rows.Err(); err != nil { log.Printf("⚠️ rows.Err(): %v", err) } if err := json.NewEncoder(w).Encode(list); err != nil { log.Printf("❌ encode error: %v", err) } }) }