From ec6d5476414c8cc64f837882b49d5f2492a9ceae Mon Sep 17 00:00:00 2001 From: MEHMETKECECI Date: Mon, 16 Feb 2026 11:59:14 +0300 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- svc/queries/account.go | 53 +++++++++++++++++++++++----------------- svc/routes/pdf_assets.go | 30 ++++++++--------------- 2 files changed, 40 insertions(+), 43 deletions(-) diff --git a/svc/queries/account.go b/svc/queries/account.go index 3305ee2..a0ac4d8 100644 --- a/svc/queries/account.go +++ b/svc/queries/account.go @@ -1,42 +1,49 @@ package queries import ( - "bssapp-backend/db" - "bssapp-backend/internal/authz" - "bssapp-backend/models" "context" "fmt" "log" + "strings" + + "bssapp-backend/db" + "bssapp-backend/internal/authz" + "bssapp-backend/models" ) func GetAccounts(ctx context.Context) ([]models.Account, error) { - piyasaFilter := authz.BuildMSSQLPiyasaFilter( - ctx, - "f.CustomerAtt01", // ✅ alias ile uyumlu - ) + piyasaFilter := authz.BuildMSSQLPiyasaFilter(ctx, "f2.CustomerAtt01") + + if strings.TrimSpace(piyasaFilter) == "" { + piyasaFilter = "1=1" + } query := fmt.Sprintf(` -SELECT - c.CurrAccCode AS AccountCode, - ISNULL(d.CurrAccDescription, '') AS AccountName -FROM cdCurrAcc c -LEFT JOIN cdCurrAccDesc d - 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 + SELECT + x.AccountCode, + MAX(x.AccountName) AS AccountName + FROM ( + SELECT + LEFT(b.CurrAccCode, 8) AS AccountCode, + COALESCE(d.CurrAccDescription, '') AS AccountName + FROM trCurrAccBook b + 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 `, piyasaFilter) - log.Println("🔎 ACCOUNTS FILTER:", piyasaFilter) + log.Println("🔎 ACCOUNT PIYASA FILTER =", piyasaFilter) + log.Println("🔎 ACCOUNT QUERY =", query) rows, err := db.MssqlDB.Query(query) if err != nil { - return nil, fmt.Errorf("MSSQL error: %w", err) + return nil, fmt.Errorf("MSSQL query error: %w", err) } defer rows.Close() @@ -55,7 +62,7 @@ ORDER BY d.CurrAccDescription if len(acc.AccountCode) >= 4 { acc.DisplayCode = - acc.AccountCode[:3] + " " + acc.AccountCode[3:] + strings.TrimSpace(acc.AccountCode[:3] + " " + acc.AccountCode[3:]) } else { acc.DisplayCode = acc.AccountCode } diff --git a/svc/routes/pdf_assets.go b/svc/routes/pdf_assets.go index 52fe4d8..0242669 100644 --- a/svc/routes/pdf_assets.go +++ b/svc/routes/pdf_assets.go @@ -9,31 +9,21 @@ import ( "github.com/jung-kurt/gofpdf" ) -func resolvePdfAssetPath(file string) (string, error) { +func resolvePdfAssetPath(name string) (string, error) { - envMap := map[string]string{ - "DejaVuSans.ttf": "PDF_FONT_PATH", - "DejaVuSans-Bold.ttf": "PDF_FONT_BOLD_PATH", - "FreeSans.ttf": "PDF_FONT_ALT_PATH", - "FreeSansBold.ttf": "PDF_FONT_ALT_BOLD_PATH", + base := strings.TrimSpace(os.Getenv("PDF_FONT_DIR")) + + if base == "" { + base = "/opt/bssapp/svc/fonts" } - envKey, ok := envMap[file] - if !ok { - return "", fmt.Errorf("unknown font: %s", file) + p := filepath.Join(base, name) + + if _, err := os.Stat(p); err != nil { + return "", fmt.Errorf("font not found: %s", p) } - path := os.Getenv(envKey) - - if path == "" { - return "", fmt.Errorf("env %s not set", envKey) - } - - if _, err := os.Stat(path); err != nil { - return "", fmt.Errorf("font not found: %s", path) - } - - return path, nil + return p, nil } func resolvePdfImagePath(fileName string) (string, error) {