From 6fdc0b4ac590aa2f20efbfbee42032d14009e03a Mon Sep 17 00:00:00 2001 From: M_Kececi Date: Wed, 20 May 2026 13:28:19 +0300 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- svc/routes/production_product_costing.go | 50 ++++++++++++++++++++---- 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/svc/routes/production_product_costing.go b/svc/routes/production_product_costing.go index 1811035..1128dbf 100644 --- a/svc/routes/production_product_costing.go +++ b/svc/routes/production_product_costing.go @@ -374,9 +374,10 @@ func GetProductionHasCostDetailGroupsHandler(w http.ResponseWriter, r *http.Requ } scannedRows += 1 - item.NOnMLNo, _ = strconv.Atoi(nOnMLNoStr) - item.NOnMLDetNo, _ = strconv.Atoi(nOnMLDetNoStr) - item.NHammaddeTuruNo, _ = strconv.Atoi(hNoStr) + // Model fields are strings; keep as-is to avoid type mismatches. + item.NOnMLNo = strings.TrimSpace(nOnMLNoStr) + item.NOnMLDetNo = strings.TrimSpace(nOnMLDetNoStr) + item.NHammaddeTuruNo = strings.TrimSpace(hNoStr) if fiyatGirilen.Valid { item.FiyatGirilen = new(float64) @@ -496,9 +497,10 @@ func GetProductionHasCostDetailGroupsHandler(w http.ResponseWriter, r *http.Requ } scannedRows++ - item.NOnMLNo, _ = strconv.Atoi(nOnMLNoStr) - item.NOnMLDetNo, _ = strconv.Atoi(nOnMLDetNoStr) - item.NHammaddeTuruNo, _ = strconv.Atoi(hNoStr) + // Model fields are strings; keep as-is to avoid type mismatches. + item.NOnMLNo = strings.TrimSpace(nOnMLNoStr) + item.NOnMLDetNo = strings.TrimSpace(nOnMLDetNoStr) + item.NHammaddeTuruNo = strings.TrimSpace(hNoStr) if fiyatGirilen.Valid { item.FiyatGirilen = new(float64) @@ -1756,6 +1758,22 @@ WHERE RMik.nUrtReceteID = @p1 AND RMik.nUrtMBolumID = @p2 AND LTRIM(RTRIM(RMik.nHStokID_G)) = @p3 `, receteID, hNo, rawSKodu).Scan(&exists); err == nil && exists > 0 { + // Compute TRY unit price for recipe mirror columns. + cur := strings.ToUpper(strings.TrimSpace(row.FiyatDoviz)) + in := row.FiyatGirilen + unitTRYRec := in + switch cur { + case "USD": + unitTRYRec = in * usdRate + case "EUR": + unitTRYRec = in * eurRate + case "GBP": + unitTRYRec = in * gbpRate + case "TRY", "TL", "": + unitTRYRec = in + default: + unitTRYRec = in + } _, _ = tx.ExecContext(ctx, ` UPDATE dbo.spUrtRecMBolumMik SET lHMiktar_G = @p4, @@ -1766,11 +1784,27 @@ SET lHMiktar_G = @p4, WHERE nUrtReceteID = @p1 AND nUrtMBolumID = @p2 AND LTRIM(RTRIM(nHStokID_G)) = @p3 -`, receteID, hNo, rawSKodu, row.LMiktar, unitTRY, user, row.MaliyeteDahil) +`, receteID, hNo, rawSKodu, row.LMiktar, unitTRYRec, user, row.MaliyeteDahil) continue } // Insert missing: using _G columns and storing code in nHStokID_G. + // Compute TRY unit price for recipe mirror columns. + cur := strings.ToUpper(strings.TrimSpace(row.FiyatDoviz)) + in := row.FiyatGirilen + unitTRYRec := in + switch cur { + case "USD": + unitTRYRec = in * usdRate + case "EUR": + unitTRYRec = in * eurRate + case "GBP": + unitTRYRec = in * gbpRate + case "TRY", "TL", "": + unitTRYRec = in + default: + unitTRYRec = in + } _, insertErr := tx.ExecContext(ctx, ` INSERT INTO dbo.spUrtRecMBolumMik ( nUrtReceteID, @@ -1816,7 +1850,7 @@ VALUES ( GETDATE(), 1 ) - `, receteID, nextRecDetID, rawSKodu, row.LMiktar, unitTRY, hNo, row.NUrtMTBolumID, row.MaliyeteDahil, user) + `, receteID, nextRecDetID, rawSKodu, row.LMiktar, unitTRYRec, hNo, row.NUrtMTBolumID, row.MaliyeteDahil, user) if insertErr == nil { nextRecDetID += 1 }