Files
bssapp/svc/queries/customerlist.go
2026-02-11 17:46:22 +03:00

115 lines
2.2 KiB
Go

package queries
import (
"context"
"fmt"
"bssapp-backend/db"
"bssapp-backend/internal/authz"
"bssapp-backend/models"
)
func GetCustomerList(ctx context.Context) ([]models.CustomerList, error) {
piyasaFilter := authz.BuildMSSQLPiyasaFilter(
ctx,
"f.CustomerAtt01",
)
query := fmt.Sprintf(`
SELECT
c.CurrAccTypeCode,
c.CurrAccCode,
ISNULL(d.CurrAccDescription, ''),
dbo.HG_Temizlik(
ISNULL((
SELECT AttributeDescription
FROM cdCurrAccAttributeDesc WITH(NOLOCK)
WHERE CurrAccTypeCode = 3
AND AttributeTypeCode = 8
AND AttributeCode = f.CustomerAtt08
AND LangCode = 'TR'
), SPACE(0))
),
dbo.HG_Temizlik(
ISNULL((
SELECT AttributeDescription
FROM cdCurrAccAttributeDesc WITH(NOLOCK)
WHERE CurrAccTypeCode = 3
AND AttributeTypeCode = 1
AND AttributeCode = f.CustomerAtt01
AND LangCode = 'TR'
), SPACE(0))
),
dbo.HG_Temizlik(
ISNULL((
SELECT AttributeDescription
FROM cdCurrAccAttributeDesc WITH(NOLOCK)
WHERE CurrAccTypeCode = 3
AND AttributeTypeCode = 2
AND AttributeCode = f.CustomerAtt02
AND LangCode = 'TR'
), SPACE(0))
),
dbo.HG_Temizlik(
ISNULL((
SELECT AttributeDescription
FROM cdCurrAccAttributeDesc WITH(NOLOCK)
WHERE CurrAccTypeCode = 3
AND AttributeTypeCode = 5
AND AttributeCode = f.CustomerAtt05
AND LangCode = 'TR'
), SPACE(0))
),
ISNULL(c.CurrencyCode, '')
FROM cdCurrAcc c
LEFT JOIN cdCurrAccDesc d
ON c.CurrAccCode = d.CurrAccCode
LEFT JOIN CustomerAttributesFilter f
ON c.CurrAccCode = f.CurrAccCode
WHERE
c.CompanyCode = 1
AND c.CurrAccTypeCode = 3
AND c.IsBlocked = 0
AND %s
ORDER BY d.CurrAccDescription
`, piyasaFilter)
rows, err := db.MssqlDB.Query(query)
if err != nil {
return nil, err
}
defer rows.Close()
var list []models.CustomerList
for rows.Next() {
var c models.CustomerList
if err := rows.Scan(
&c.CurrAccTypeCode,
&c.Cari_Kod,
&c.Cari_Ad,
&c.Musteri_Ana_Grubu,
&c.Piyasa,
&c.Musteri_Temsilcisi,
&c.Ulke,
&c.Doviz_cinsi,
); err != nil {
return nil, err
}
list = append(list, c)
}
return list, rows.Err()
}