Merge remote-tracking branch 'origin/master'

This commit is contained in:
2026-02-16 09:46:08 +03:00
parent 21db754045
commit 70f097806b

View File

@@ -1,61 +1,42 @@
package queries package queries
import ( import (
"context"
"fmt"
"log"
"strings"
"bssapp-backend/db" "bssapp-backend/db"
"bssapp-backend/internal/authz" "bssapp-backend/internal/authz"
"bssapp-backend/models" "bssapp-backend/models"
"context"
"fmt"
"log"
) )
func GetAccounts(ctx context.Context) ([]models.Account, error) { func GetAccounts(ctx context.Context) ([]models.Account, error) {
piyasaCodes := authz.GetPiyasaCodesFromCtx(ctx) piyasaFilter := authz.BuildMSSQLPiyasaFilter(
ctx,
// 🔴 HİÇ YETKİ YOKSA → HİÇ DATA VERME "f.CustomerAtt01", // ✅ alias ile uyumlu
if len(piyasaCodes) == 0 {
log.Println("⚠️ No piyasa permission → empty account list")
return []models.Account{}, nil
}
// ✅ Güvenli filter üret
quoted := make([]string, 0, len(piyasaCodes))
for _, p := range piyasaCodes {
quoted = append(quoted, "'"+p+"'")
}
piyasaFilter := fmt.Sprintf(
"f2.CustomerAtt01 IN (%s)",
strings.Join(quoted, ","),
) )
query := fmt.Sprintf(` query := fmt.Sprintf(`
SELECT SELECT
x.AccountCode, c.CurrAccCode AS AccountCode,
MAX(x.AccountName) AS AccountName ISNULL(d.CurrAccDescription, '') AS AccountName
FROM ( FROM cdCurrAcc c
SELECT LEFT JOIN cdCurrAccDesc d
LEFT(b.CurrAccCode, 8) AS AccountCode, ON c.CurrAccCode = d.CurrAccCode
COALESCE(d.CurrAccDescription, '') AS AccountName LEFT JOIN dbo.CustomerAttributesFilter f
FROM trCurrAccBook b ON c.CurrAccCode = f.CurrAccCode
LEFT JOIN cdCurrAccDesc d WHERE
ON d.CurrAccCode = b.CurrAccCode c.CompanyCode = 1
JOIN CustomerAttributesFilter f2 AND c.IsBlocked = 0
ON f2.CurrAccCode = b.CurrAccCode AND %s
WHERE %s ORDER BY d.CurrAccDescription
) x
GROUP BY x.AccountCode
ORDER BY x.AccountCode
`, piyasaFilter) `, piyasaFilter)
log.Println("🔎 ACCOUNT FILTER =", piyasaFilter) log.Println("🔎 ACCOUNTS FILTER:", piyasaFilter)
rows, err := db.MssqlDB.Query(query) rows, err := db.MssqlDB.Query(query)
if err != nil { if err != nil {
return nil, fmt.Errorf("MSSQL query error: %w", err) return nil, fmt.Errorf("MSSQL error: %w", err)
} }
defer rows.Close() defer rows.Close()
@@ -74,7 +55,7 @@ func GetAccounts(ctx context.Context) ([]models.Account, error) {
if len(acc.AccountCode) >= 4 { if len(acc.AccountCode) >= 4 {
acc.DisplayCode = acc.DisplayCode =
strings.TrimSpace(acc.AccountCode[:3] + " " + acc.AccountCode[3:]) acc.AccountCode[:3] + " " + acc.AccountCode[3:]
} else { } else {
acc.DisplayCode = acc.AccountCode acc.DisplayCode = acc.AccountCode
} }