Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -1,61 +1,42 @@
|
||||
package queries
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
"strings"
|
||||
|
||||
"bssapp-backend/db"
|
||||
"bssapp-backend/internal/authz"
|
||||
"bssapp-backend/models"
|
||||
"context"
|
||||
"fmt"
|
||||
"log"
|
||||
)
|
||||
|
||||
func GetAccounts(ctx context.Context) ([]models.Account, error) {
|
||||
|
||||
piyasaCodes := authz.GetPiyasaCodesFromCtx(ctx)
|
||||
|
||||
// 🔴 HİÇ YETKİ YOKSA → HİÇ DATA VERME
|
||||
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, ","),
|
||||
piyasaFilter := authz.BuildMSSQLPiyasaFilter(
|
||||
ctx,
|
||||
"f.CustomerAtt01", // ✅ alias ile uyumlu
|
||||
)
|
||||
|
||||
query := fmt.Sprintf(`
|
||||
SELECT
|
||||
x.AccountCode,
|
||||
MAX(x.AccountName) AS AccountName
|
||||
FROM (
|
||||
SELECT
|
||||
LEFT(b.CurrAccCode, 8) AS AccountCode,
|
||||
COALESCE(d.CurrAccDescription, '') AS AccountName
|
||||
FROM trCurrAccBook b
|
||||
c.CurrAccCode AS AccountCode,
|
||||
ISNULL(d.CurrAccDescription, '') AS AccountName
|
||||
FROM cdCurrAcc c
|
||||
LEFT JOIN cdCurrAccDesc d
|
||||
ON d.CurrAccCode = b.CurrAccCode
|
||||
JOIN CustomerAttributesFilter f2
|
||||
ON f2.CurrAccCode = b.CurrAccCode
|
||||
WHERE %s
|
||||
) x
|
||||
GROUP BY x.AccountCode
|
||||
ORDER BY x.AccountCode
|
||||
ON c.CurrAccCode = d.CurrAccCode
|
||||
LEFT JOIN dbo.CustomerAttributesFilter f
|
||||
ON c.CurrAccCode = f.CurrAccCode
|
||||
WHERE
|
||||
c.CompanyCode = 1
|
||||
AND c.IsBlocked = 0
|
||||
AND %s
|
||||
ORDER BY d.CurrAccDescription
|
||||
`, piyasaFilter)
|
||||
|
||||
log.Println("🔎 ACCOUNT FILTER =", piyasaFilter)
|
||||
log.Println("🔎 ACCOUNTS FILTER:", piyasaFilter)
|
||||
|
||||
rows, err := db.MssqlDB.Query(query)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("MSSQL query error: %w", err)
|
||||
return nil, fmt.Errorf("MSSQL error: %w", err)
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
@@ -74,7 +55,7 @@ func GetAccounts(ctx context.Context) ([]models.Account, error) {
|
||||
|
||||
if len(acc.AccountCode) >= 4 {
|
||||
acc.DisplayCode =
|
||||
strings.TrimSpace(acc.AccountCode[:3] + " " + acc.AccountCode[3:])
|
||||
acc.AccountCode[:3] + " " + acc.AccountCode[3:]
|
||||
} else {
|
||||
acc.DisplayCode = acc.AccountCode
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user