Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -3,6 +3,7 @@ package queries
|
||||
import (
|
||||
"database/sql"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"bssapp-backend/models"
|
||||
)
|
||||
@@ -74,10 +75,17 @@ INSERT INTO dbo.prItemVariant (
|
||||
ItemDim2Code,
|
||||
ItemDim3Code,
|
||||
PLU,
|
||||
IsSalesOrderClosed,
|
||||
IsPurchaseOrderClosed,
|
||||
IsLocked,
|
||||
IsBlocked,
|
||||
CreatedUserName,
|
||||
CreatedDate,
|
||||
LastUpdatedUserName,
|
||||
LastUpdatedDate
|
||||
LastUpdatedDate,
|
||||
RowGuid,
|
||||
UseInternet,
|
||||
IsStoreOrderClosed
|
||||
)
|
||||
SELECT
|
||||
m.ItemTypeCode,
|
||||
@@ -87,10 +95,17 @@ SELECT
|
||||
m.ItemDim2Code,
|
||||
m.ItemDim3Code,
|
||||
mp.BasePlu + ROW_NUMBER() OVER (ORDER BY m.ItemCode, m.ColorCode, m.ItemDim1Code, m.ItemDim2Code, m.ItemDim3Code),
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
@p2,
|
||||
GETDATE(),
|
||||
@p2,
|
||||
GETDATE()
|
||||
GETDATE(),
|
||||
NEWID(),
|
||||
0,
|
||||
0
|
||||
FROM Missing m
|
||||
CROSS JOIN MaxPlu mp;
|
||||
`
|
||||
@@ -143,7 +158,12 @@ WHERE ItemTypeCode = @p1
|
||||
return true, nil
|
||||
}
|
||||
|
||||
func InsertMissingVariantsTx(tx *sql.Tx, missing []models.OrderProductionMissingVariant, username string) (int64, error) {
|
||||
func InsertMissingVariantsTx(
|
||||
tx *sql.Tx,
|
||||
missing []models.OrderProductionMissingVariant,
|
||||
username string,
|
||||
cdItemByCode map[string]models.OrderProductionCdItemDraft,
|
||||
) (int64, error) {
|
||||
if len(missing) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
@@ -161,7 +181,16 @@ FROM dbo.prItemVariant WITH (UPDLOCK, HOLDLOCK)
|
||||
for i, v := range missing {
|
||||
itemKey := strconv.FormatInt(int64(v.ItemTypeCode), 10) + "|" + v.ItemCode
|
||||
if _, ok := ensuredItems[itemKey]; !ok {
|
||||
if err := ensureCdItemTx(tx, v.ItemTypeCode, v.ItemCode, username); err != nil {
|
||||
draft, hasDraft := cdItemByCode[itemKey]
|
||||
if !hasDraft {
|
||||
draft, hasDraft = cdItemByCode[NormalizeCdItemMapKey(v.ItemTypeCode, v.ItemCode)]
|
||||
}
|
||||
var draftPtr *models.OrderProductionCdItemDraft
|
||||
if hasDraft {
|
||||
tmp := draft
|
||||
draftPtr = &tmp
|
||||
}
|
||||
if err := ensureCdItemTx(tx, v.ItemTypeCode, v.ItemCode, username, draftPtr); err != nil {
|
||||
return inserted, err
|
||||
}
|
||||
ensuredItems[itemKey] = struct{}{}
|
||||
@@ -187,14 +216,26 @@ INSERT INTO dbo.prItemVariant (
|
||||
ItemDim2Code,
|
||||
ItemDim3Code,
|
||||
PLU,
|
||||
IsSalesOrderClosed,
|
||||
IsPurchaseOrderClosed,
|
||||
IsLocked,
|
||||
IsBlocked,
|
||||
CreatedUserName,
|
||||
CreatedDate,
|
||||
LastUpdatedUserName,
|
||||
LastUpdatedDate
|
||||
LastUpdatedDate,
|
||||
RowGuid,
|
||||
UseInternet,
|
||||
IsStoreOrderClosed
|
||||
)
|
||||
VALUES (
|
||||
@p1, @p2, @p3, @p4, @p5, @p6,
|
||||
@p7, @p8, GETDATE(), @p8, GETDATE()
|
||||
@p7,
|
||||
0, 0, 0, 0,
|
||||
@p8, GETDATE(), @p8, GETDATE(),
|
||||
NEWID(),
|
||||
0,
|
||||
0
|
||||
);
|
||||
`, v.ItemTypeCode, v.ItemCode, v.ColorCode, v.ItemDim1Code, v.ItemDim2Code, v.ItemDim3Code, plu, username)
|
||||
if err != nil {
|
||||
@@ -207,7 +248,17 @@ VALUES (
|
||||
return inserted, nil
|
||||
}
|
||||
|
||||
func ensureCdItemTx(tx *sql.Tx, itemTypeCode int16, itemCode string, username string) error {
|
||||
func NormalizeCdItemMapKey(itemTypeCode int16, itemCode string) string {
|
||||
return strconv.FormatInt(int64(itemTypeCode), 10) + "|" + strings.ToUpper(strings.TrimSpace(itemCode))
|
||||
}
|
||||
|
||||
func ensureCdItemTx(
|
||||
tx *sql.Tx,
|
||||
itemTypeCode int16,
|
||||
itemCode string,
|
||||
username string,
|
||||
draft *models.OrderProductionCdItemDraft,
|
||||
) error {
|
||||
_, err := tx.Exec(`
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
@@ -269,28 +320,90 @@ BEGIN
|
||||
INSERT INTO dbo.cdItem (
|
||||
ItemTypeCode, ItemCode,
|
||||
ItemDimTypeCode, ProductTypeCode, ProductHierarchyID,
|
||||
UnitOfMeasureCode1, UnitConvertRate, UnitConvertRateNotFixed,
|
||||
UnitOfMeasureCode1, UnitOfMeasureCode2, UnitConvertRate, UnitConvertRateNotFixed,
|
||||
UseInternet, UsePOS, UseStore, EnablePartnerCompanies, UseManufacturing, UseSerialNumber,
|
||||
GenerateOpticalDataMatrixCode, ByWeight, SupplyPeriod, GuaranteePeriod, ShelfLife, OrderLeadTime,
|
||||
IsFixedExpense, IsBlocked, IsLocked, LockedDate, IsSalesOrderClosed, IsPurchaseOrderClosed,
|
||||
ItemAccountGrCode, ItemTaxGrCode, ItemPaymentPlanGrCode, ItemDiscountGrCode, ItemVendorGrCode,
|
||||
PromotionGroupCode, PromotionGroupCode2, ProductCollectionGrCode, StorePriceLevelCode, PerceptionOfFashionCode,
|
||||
CommercialRoleCode, StoreCapacityLevelCode, CustomsTariffNumberCode, IsFixedExpense, BOMEntityCode, CompanyCode,
|
||||
IsBlocked, IsLocked, LockedDate, IsSalesOrderClosed, IsPurchaseOrderClosed,
|
||||
CreatedUserName, CreatedDate, LastUpdatedUserName, LastUpdatedDate, RowGuid,
|
||||
UseRoll, UseBatch, MaxCreditCardInstallmentCount, GenerateSerialNumber,
|
||||
IsSubsequentDeliveryForR, IsSubsequentDeliveryForRI, IsUTSDeclaratedItem, IsStoreOrderClosed
|
||||
IsSubsequentDeliveryForR, IsSubsequentDeliveryForRI,
|
||||
IGACommissionGroup, UniFreeCommissionGroup, CustomsProductGroupCode, IsUTSDeclaratedItem, IsStoreOrderClosed
|
||||
)
|
||||
VALUES (
|
||||
@p1, @p2,
|
||||
2, 1, 2,
|
||||
'AD', 0, 0,
|
||||
0, 1, 1, 0, 1, 0,
|
||||
'AD', '', 0, 0,
|
||||
1, 1, 1, 0, 1, 0,
|
||||
0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, '1900-01-01', 0, 0,
|
||||
'', '10%', '', '', '',
|
||||
'', '', '0', '0', '0',
|
||||
'0', '', '', 0, '', '1',
|
||||
0, 0, '1900-01-01', 0, 0,
|
||||
@p3, GETDATE(), @p3, GETDATE(), NEWID(),
|
||||
0, 0, 12, 0,
|
||||
0, 0, 0, 0
|
||||
0, 0,
|
||||
'', '', '0', 0, 0
|
||||
);
|
||||
END
|
||||
END
|
||||
`, itemTypeCode, itemCode, username)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if draft == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
_, err = tx.Exec(`
|
||||
UPDATE dbo.cdItem
|
||||
SET
|
||||
ItemDimTypeCode = COALESCE(@p3, ItemDimTypeCode),
|
||||
ProductTypeCode = COALESCE(@p4, ProductTypeCode),
|
||||
ProductHierarchyID = COALESCE(@p5, ProductHierarchyID),
|
||||
UnitOfMeasureCode1 = COALESCE(NULLIF(@p6,''), UnitOfMeasureCode1),
|
||||
ItemAccountGrCode = COALESCE(NULLIF(@p7,''), ItemAccountGrCode),
|
||||
ItemTaxGrCode = COALESCE(NULLIF(@p8,''), ItemTaxGrCode),
|
||||
ItemPaymentPlanGrCode = COALESCE(NULLIF(@p9,''), ItemPaymentPlanGrCode),
|
||||
ItemDiscountGrCode = COALESCE(NULLIF(@p10,''), ItemDiscountGrCode),
|
||||
ItemVendorGrCode = COALESCE(NULLIF(@p11,''), ItemVendorGrCode),
|
||||
PromotionGroupCode = COALESCE(NULLIF(@p12,''), PromotionGroupCode),
|
||||
ProductCollectionGrCode = COALESCE(NULLIF(@p13,''), ProductCollectionGrCode),
|
||||
StorePriceLevelCode = COALESCE(NULLIF(@p14,''), StorePriceLevelCode),
|
||||
PerceptionOfFashionCode = COALESCE(NULLIF(@p15,''), PerceptionOfFashionCode),
|
||||
CommercialRoleCode = COALESCE(NULLIF(@p16,''), CommercialRoleCode),
|
||||
StoreCapacityLevelCode = COALESCE(NULLIF(@p17,''), StoreCapacityLevelCode),
|
||||
CustomsTariffNumberCode = COALESCE(NULLIF(@p18,''), CustomsTariffNumberCode),
|
||||
CompanyCode = COALESCE(NULLIF(@p19,''), CompanyCode),
|
||||
LastUpdatedUserName = @p20,
|
||||
LastUpdatedDate = GETDATE()
|
||||
WHERE ItemTypeCode = @p1
|
||||
AND ItemCode = @p2;
|
||||
`,
|
||||
itemTypeCode,
|
||||
itemCode,
|
||||
draft.ItemDimTypeCode,
|
||||
draft.ProductTypeCode,
|
||||
draft.ProductHierarchyID,
|
||||
draft.UnitOfMeasureCode1,
|
||||
draft.ItemAccountGrCode,
|
||||
draft.ItemTaxGrCode,
|
||||
draft.ItemPaymentPlanGrCode,
|
||||
draft.ItemDiscountGrCode,
|
||||
draft.ItemVendorGrCode,
|
||||
draft.PromotionGroupCode,
|
||||
draft.ProductCollectionGrCode,
|
||||
draft.StorePriceLevelCode,
|
||||
draft.PerceptionOfFashionCode,
|
||||
draft.CommercialRoleCode,
|
||||
draft.StoreCapacityLevelCode,
|
||||
draft.CustomsTariffNumberCode,
|
||||
draft.CompanyCode,
|
||||
username,
|
||||
)
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -317,3 +430,141 @@ WHERE OrderHeaderID = @p6 AND OrderLineID = @p7
|
||||
}
|
||||
return updated, nil
|
||||
}
|
||||
|
||||
func UpsertItemAttributesTx(tx *sql.Tx, attrs []models.OrderProductionItemAttributeRow, username string) (int64, error) {
|
||||
if len(attrs) == 0 {
|
||||
return 0, nil
|
||||
}
|
||||
|
||||
var affected int64
|
||||
for _, a := range attrs {
|
||||
res, err := tx.Exec(`
|
||||
IF EXISTS (
|
||||
SELECT 1
|
||||
FROM dbo.prItemAttribute
|
||||
WHERE ItemTypeCode = @p1
|
||||
AND ItemCode = @p2
|
||||
AND AttributeTypeCode = @p3
|
||||
)
|
||||
BEGIN
|
||||
UPDATE dbo.prItemAttribute
|
||||
SET
|
||||
AttributeCode = @p4,
|
||||
LastUpdatedUserName = @p5,
|
||||
LastUpdatedDate = GETDATE()
|
||||
WHERE ItemTypeCode = @p1
|
||||
AND ItemCode = @p2
|
||||
AND AttributeTypeCode = @p3
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO dbo.prItemAttribute (
|
||||
ItemTypeCode,
|
||||
ItemCode,
|
||||
AttributeTypeCode,
|
||||
AttributeCode,
|
||||
CreatedUserName,
|
||||
CreatedDate,
|
||||
LastUpdatedUserName,
|
||||
LastUpdatedDate,
|
||||
RowGuid
|
||||
)
|
||||
VALUES (
|
||||
@p1,
|
||||
@p2,
|
||||
@p3,
|
||||
@p4,
|
||||
@p5,
|
||||
GETDATE(),
|
||||
@p5,
|
||||
GETDATE(),
|
||||
NEWID()
|
||||
)
|
||||
END
|
||||
`, a.ItemTypeCode, a.ItemCode, a.AttributeTypeCode, a.AttributeCode, username)
|
||||
if err != nil {
|
||||
return affected, err
|
||||
}
|
||||
if rows, err := res.RowsAffected(); err == nil {
|
||||
affected += rows
|
||||
}
|
||||
}
|
||||
return affected, nil
|
||||
}
|
||||
|
||||
func GetOrderProductionLookupOptions(mssql *sql.DB) (models.OrderProductionCdItemLookups, error) {
|
||||
out := models.OrderProductionCdItemLookups{}
|
||||
|
||||
queryPairs := []struct {
|
||||
Query string
|
||||
Target *[]models.OrderProductionLookupOption
|
||||
}{
|
||||
{`SELECT
|
||||
CAST(t.ItemDimTypeCode AS NVARCHAR(50)) AS Code,
|
||||
ISNULL(d.ItemDimTypeDescription, CAST(t.ItemDimTypeCode AS NVARCHAR(50))) AS [Description]
|
||||
FROM dbo.bsItemDimType t WITH(NOLOCK)
|
||||
LEFT JOIN dbo.bsItemDimTypeDesc d WITH(NOLOCK)
|
||||
ON d.ItemDimTypeCode = t.ItemDimTypeCode
|
||||
AND d.LangCode = 'TR'
|
||||
WHERE ISNULL(t.IsBlocked, 0) = 0
|
||||
ORDER BY t.ItemDimTypeCode`, &out.ItemDimTypeCodes},
|
||||
{`SELECT DISTINCT CAST(ProductTypeCode AS NVARCHAR(50)) AS Code, CAST(ProductTypeCode AS NVARCHAR(50)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ProductTypeCode IS NOT NULL ORDER BY Code`, &out.ProductTypeCodes},
|
||||
{`SELECT
|
||||
CAST(h.ProductHierarchyID AS NVARCHAR(50)) AS Code,
|
||||
LTRIM(RTRIM(
|
||||
CONCAT(
|
||||
CAST(ISNULL(h.ProductHierarchyLevelCode01, 0) AS NVARCHAR(50)),
|
||||
CASE
|
||||
WHEN ISNULL(d.ProductHierarchyLevelDescription, '') <> '' THEN CONCAT(' - ', d.ProductHierarchyLevelDescription)
|
||||
ELSE ''
|
||||
END
|
||||
)
|
||||
)) AS [Description]
|
||||
FROM dbo.dfProductHierarchy h WITH(NOLOCK)
|
||||
LEFT JOIN dbo.cdProductHierarchyLevelDesc d WITH(NOLOCK)
|
||||
ON d.ProductHierarchyLevelCode = h.ProductHierarchyLevelCode01
|
||||
AND d.LangCode = 'TR'
|
||||
ORDER BY h.ProductHierarchyID`, &out.ProductHierarchyIDs},
|
||||
{`SELECT DISTINCT CAST(UnitOfMeasureCode1 AS NVARCHAR(50)) AS Code, CAST(UnitOfMeasureCode1 AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(UnitOfMeasureCode1,'') <> '' ORDER BY Code`, &out.UnitOfMeasureCode1List},
|
||||
{`SELECT DISTINCT CAST(ItemAccountGrCode AS NVARCHAR(50)) AS Code, CAST(ItemAccountGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ItemAccountGrCode,'') <> '' ORDER BY Code`, &out.ItemAccountGrCodes},
|
||||
{`SELECT DISTINCT CAST(ItemTaxGrCode AS NVARCHAR(50)) AS Code, CAST(ItemTaxGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ItemTaxGrCode,'') <> '' ORDER BY Code`, &out.ItemTaxGrCodes},
|
||||
{`SELECT DISTINCT CAST(ItemPaymentPlanGrCode AS NVARCHAR(50)) AS Code, CAST(ItemPaymentPlanGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ItemPaymentPlanGrCode,'') <> '' ORDER BY Code`, &out.ItemPaymentPlanGrCodes},
|
||||
{`SELECT DISTINCT CAST(ItemDiscountGrCode AS NVARCHAR(50)) AS Code, CAST(ItemDiscountGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ItemDiscountGrCode,'') <> '' ORDER BY Code`, &out.ItemDiscountGrCodes},
|
||||
{`SELECT DISTINCT CAST(ItemVendorGrCode AS NVARCHAR(50)) AS Code, CAST(ItemVendorGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ItemVendorGrCode,'') <> '' ORDER BY Code`, &out.ItemVendorGrCodes},
|
||||
{`SELECT DISTINCT CAST(PromotionGroupCode AS NVARCHAR(50)) AS Code, CAST(PromotionGroupCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(PromotionGroupCode,'') <> '' ORDER BY Code`, &out.PromotionGroupCodes},
|
||||
{`SELECT DISTINCT CAST(ProductCollectionGrCode AS NVARCHAR(50)) AS Code, CAST(ProductCollectionGrCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(ProductCollectionGrCode,'') <> '' ORDER BY Code`, &out.ProductCollectionGrCodes},
|
||||
{`SELECT DISTINCT CAST(StorePriceLevelCode AS NVARCHAR(50)) AS Code, CAST(StorePriceLevelCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(StorePriceLevelCode,'') <> '' ORDER BY Code`, &out.StorePriceLevelCodes},
|
||||
{`SELECT DISTINCT CAST(PerceptionOfFashionCode AS NVARCHAR(50)) AS Code, CAST(PerceptionOfFashionCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(PerceptionOfFashionCode,'') <> '' ORDER BY Code`, &out.PerceptionOfFashionCodes},
|
||||
{`SELECT DISTINCT CAST(CommercialRoleCode AS NVARCHAR(50)) AS Code, CAST(CommercialRoleCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(CommercialRoleCode,'') <> '' ORDER BY Code`, &out.CommercialRoleCodes},
|
||||
{`SELECT DISTINCT CAST(StoreCapacityLevelCode AS NVARCHAR(50)) AS Code, CAST(StoreCapacityLevelCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(StoreCapacityLevelCode,'') <> '' ORDER BY Code`, &out.StoreCapacityLevelCodes},
|
||||
{`SELECT DISTINCT CAST(CustomsTariffNumberCode AS NVARCHAR(50)) AS Code, CAST(CustomsTariffNumberCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(CustomsTariffNumberCode,'') <> '' ORDER BY Code`, &out.CustomsTariffNumbers},
|
||||
{`SELECT DISTINCT CAST(CompanyCode AS NVARCHAR(50)) AS Code, CAST(CompanyCode AS NVARCHAR(200)) AS [Description] FROM dbo.cdItem WITH(NOLOCK) WHERE ISNULL(CompanyCode,'') <> '' ORDER BY Code`, &out.CompanyCodes},
|
||||
}
|
||||
|
||||
for _, pair := range queryPairs {
|
||||
rows, err := mssql.Query(pair.Query)
|
||||
if err != nil {
|
||||
return out, err
|
||||
}
|
||||
|
||||
list := make([]models.OrderProductionLookupOption, 0, 64)
|
||||
for rows.Next() {
|
||||
var item models.OrderProductionLookupOption
|
||||
if err := rows.Scan(&item.Code, &item.Description); err != nil {
|
||||
rows.Close()
|
||||
return out, err
|
||||
}
|
||||
item.Code = strings.TrimSpace(item.Code)
|
||||
item.Description = strings.TrimSpace(item.Description)
|
||||
list = append(list, item)
|
||||
}
|
||||
if err := rows.Err(); err != nil {
|
||||
rows.Close()
|
||||
return out, err
|
||||
}
|
||||
rows.Close()
|
||||
*pair.Target = list
|
||||
}
|
||||
|
||||
return out, nil
|
||||
}
|
||||
|
||||
42
svc/queries/productattributes.go
Normal file
42
svc/queries/productattributes.go
Normal file
@@ -0,0 +1,42 @@
|
||||
package queries
|
||||
|
||||
const GetProductAttributes = `
|
||||
;WITH TypeDesc AS (
|
||||
SELECT
|
||||
t.ItemTypeCode,
|
||||
t.AttributeTypeCode,
|
||||
ISNULL(t.AttributeTypeDescription, CAST(t.AttributeTypeCode AS NVARCHAR(30))) AS AttributeTypeDescription
|
||||
FROM dbo.cdItemAttributeTypeDesc AS t WITH(NOLOCK)
|
||||
WHERE t.ItemTypeCode = @p1
|
||||
AND t.LangCode = 'TR'
|
||||
),
|
||||
Attr AS (
|
||||
SELECT
|
||||
a.ItemTypeCode,
|
||||
a.AttributeTypeCode,
|
||||
ISNULL(a.AttributeCode, '') AS AttributeCode,
|
||||
ISNULL(d.AttributeDescription, ISNULL(a.AttributeCode, '')) AS AttributeDescription
|
||||
FROM dbo.cdItemAttribute AS a WITH(NOLOCK)
|
||||
LEFT JOIN dbo.cdItemAttributeDesc AS d WITH(NOLOCK)
|
||||
ON d.ItemTypeCode = a.ItemTypeCode
|
||||
AND d.AttributeTypeCode = a.AttributeTypeCode
|
||||
AND d.AttributeCode = a.AttributeCode
|
||||
AND d.LangCode = 'TR'
|
||||
WHERE a.ItemTypeCode = @p1
|
||||
AND ISNULL(a.IsBlocked, 0) = 0
|
||||
),
|
||||
SELECT
|
||||
a.ItemTypeCode,
|
||||
a.AttributeTypeCode,
|
||||
ISNULL(NULLIF(td.AttributeTypeDescription, ''), CAST(a.AttributeTypeCode AS NVARCHAR(30))) AS AttributeTypeDescription,
|
||||
a.AttributeCode,
|
||||
a.AttributeDescription
|
||||
FROM Attr a
|
||||
LEFT JOIN TypeDesc td
|
||||
ON td.ItemTypeCode = a.ItemTypeCode
|
||||
AND td.AttributeTypeCode = a.AttributeTypeCode
|
||||
ORDER BY
|
||||
a.AttributeTypeCode,
|
||||
CASE WHEN a.AttributeCode = '-' THEN 0 ELSE 1 END,
|
||||
a.AttributeCode;
|
||||
`
|
||||
@@ -4,7 +4,8 @@ const GetProductSecondColors = `
|
||||
SELECT DISTINCT
|
||||
Product.ProductCode,
|
||||
ISNULL(prItemVariant.ColorCode, '') AS ColorCode,
|
||||
ISNULL(prItemVariant.ItemDim2Code, '') AS ItemDim2Code
|
||||
ISNULL(prItemVariant.ItemDim2Code, '') AS ItemDim2Code,
|
||||
ISNULL(ColorDesc.ColorDescription, '') AS ColorDescription
|
||||
FROM prItemVariant WITH(NOLOCK)
|
||||
INNER JOIN ProductFilterWithDescription('TR') AS Product
|
||||
ON prItemVariant.ItemCode = Product.ProductCode
|
||||
@@ -14,5 +15,10 @@ FROM prItemVariant WITH(NOLOCK)
|
||||
WHERE Product.ProductCode = @ProductCode
|
||||
AND prItemVariant.ColorCode = @ColorCode
|
||||
AND ISNULL(prItemVariant.ItemDim2Code, '') <> ''
|
||||
GROUP BY Product.ProductCode, prItemVariant.ItemDim2Code, prItemVariant.ColorCode
|
||||
GROUP BY
|
||||
Product.ProductCode,
|
||||
prItemVariant.ItemDim2Code,
|
||||
prItemVariant.ColorCode,
|
||||
ColorDesc.ColorDescription
|
||||
ORDER BY prItemVariant.ItemDim2Code
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user