Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -132,6 +132,7 @@ SELECT
|
||||
P.ProductAtt38Desc AS BIRINCI_PARCA_FIT,
|
||||
P.ProductAtt39Desc AS IKINCI_PARCA_FIT,
|
||||
P.ProductAtt40Desc AS BOS2,
|
||||
P.ProductAtt41Desc AS URUN_ICERIGI,
|
||||
P.ProductAtt41Desc AS KISA_KAR,
|
||||
P.ProductAtt42Desc AS SERI_FASON,
|
||||
P.ProductAtt43Desc AS STOK_GIRIS_YONTEMI,
|
||||
|
||||
@@ -13,7 +13,7 @@ DECLARE @Fit NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p7)), '');
|
||||
DECLARE @Drop NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p8)), '');
|
||||
DECLARE @Beden NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p9)), '');
|
||||
|
||||
DECLARE @AttrBase TABLE
|
||||
CREATE TABLE #AttrBase
|
||||
(
|
||||
ProductCode NVARCHAR(50) NOT NULL,
|
||||
Kategori NVARCHAR(100) NOT NULL,
|
||||
@@ -24,42 +24,69 @@ DECLARE @AttrBase TABLE
|
||||
DropVal NVARCHAR(100) NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO @AttrBase (ProductCode, Kategori, UrunAnaGrubu, UrunAltGrubu, UrunIcerigi, Fit, DropVal)
|
||||
SELECT
|
||||
ProductCode,
|
||||
Kategori = LTRIM(RTRIM(ProductAtt44Desc)),
|
||||
UrunAnaGrubu = LTRIM(RTRIM(ProductAtt01Desc)),
|
||||
UrunAltGrubu = LTRIM(RTRIM(ProductAtt02Desc)),
|
||||
UrunIcerigi = LTRIM(RTRIM(ProductAtt41Desc)),
|
||||
Fit = LTRIM(RTRIM(ProductAtt38Desc)),
|
||||
DropVal = LTRIM(RTRIM(ProductAtt11Desc))
|
||||
FROM ProductFilterWithDescription('TR')
|
||||
WHERE LEN(ProductCode) = 13
|
||||
AND (@Kategori IS NULL OR ProductAtt44Desc = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR ProductAtt01Desc = @UrunAnaGrubu)
|
||||
AND (@UrunAltGrubu IS NULL OR ProductAtt02Desc = @UrunAltGrubu)
|
||||
AND (@UrunIcerigi IS NULL OR ProductAtt41Desc = @UrunIcerigi)
|
||||
AND (@Fit IS NULL OR ProductAtt38Desc = @Fit)
|
||||
AND (@Drop IS NULL OR ProductAtt11Desc = @Drop);
|
||||
IF OBJECT_ID('dbo.ProductFilterTRCache','U') IS NOT NULL
|
||||
BEGIN
|
||||
INSERT INTO #AttrBase (ProductCode, Kategori, UrunAnaGrubu, UrunAltGrubu, UrunIcerigi, Fit, DropVal)
|
||||
SELECT
|
||||
ProductCode,
|
||||
Kategori = LTRIM(RTRIM(ProductAtt44Desc)),
|
||||
UrunAnaGrubu = LTRIM(RTRIM(ProductAtt01Desc)),
|
||||
UrunAltGrubu = LTRIM(RTRIM(ProductAtt02Desc)),
|
||||
UrunIcerigi = LTRIM(RTRIM(ProductAtt41Desc)),
|
||||
Fit = LTRIM(RTRIM(ProductAtt38Desc)),
|
||||
DropVal = LTRIM(RTRIM(ProductAtt11Desc))
|
||||
FROM dbo.ProductFilterTRCache
|
||||
WHERE LEN(ProductCode) = 13
|
||||
AND (@Kategori IS NULL OR ProductAtt44Desc = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR ProductAtt01Desc = @UrunAnaGrubu)
|
||||
AND (@UrunAltGrubu IS NULL OR ProductAtt02Desc = @UrunAltGrubu)
|
||||
AND (@UrunIcerigi IS NULL OR ProductAtt41Desc = @UrunIcerigi)
|
||||
AND (@Fit IS NULL OR ProductAtt38Desc = @Fit)
|
||||
AND (@Drop IS NULL OR ProductAtt11Desc = @Drop);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #AttrBase (ProductCode, Kategori, UrunAnaGrubu, UrunAltGrubu, UrunIcerigi, Fit, DropVal)
|
||||
SELECT
|
||||
ProductCode,
|
||||
Kategori = LTRIM(RTRIM(ProductAtt44Desc)),
|
||||
UrunAnaGrubu = LTRIM(RTRIM(ProductAtt01Desc)),
|
||||
UrunAltGrubu = LTRIM(RTRIM(ProductAtt02Desc)),
|
||||
UrunIcerigi = LTRIM(RTRIM(ProductAtt41Desc)),
|
||||
Fit = LTRIM(RTRIM(ProductAtt38Desc)),
|
||||
DropVal = LTRIM(RTRIM(ProductAtt11Desc))
|
||||
FROM ProductFilterWithDescription('TR')
|
||||
WHERE LEN(ProductCode) = 13
|
||||
AND (@Kategori IS NULL OR ProductAtt44Desc = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR ProductAtt01Desc = @UrunAnaGrubu)
|
||||
AND (@UrunAltGrubu IS NULL OR ProductAtt02Desc = @UrunAltGrubu)
|
||||
AND (@UrunIcerigi IS NULL OR ProductAtt41Desc = @UrunIcerigi)
|
||||
AND (@Fit IS NULL OR ProductAtt38Desc = @Fit)
|
||||
AND (@Drop IS NULL OR ProductAtt11Desc = @Drop);
|
||||
END;
|
||||
|
||||
IF @Kategori IS NULL OR @UrunAnaGrubu IS NULL
|
||||
BEGIN
|
||||
CREATE CLUSTERED INDEX IX_AttrBase_ProductCode ON #AttrBase(ProductCode);
|
||||
SELECT 'kategori' AS FieldName, X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.Kategori
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.Kategori <> ''
|
||||
) X
|
||||
UNION ALL
|
||||
SELECT 'urun_ana_grubu', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.UrunAnaGrubu
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.UrunAnaGrubu <> ''
|
||||
) X;
|
||||
RETURN;
|
||||
END;
|
||||
|
||||
CREATE CLUSTERED INDEX IX_AttrBase_ProductCode ON #AttrBase(ProductCode);
|
||||
CREATE NONCLUSTERED INDEX IX_AttrBase_Filter ON #AttrBase(Kategori, UrunAnaGrubu, UrunAltGrubu, UrunIcerigi, Fit, DropVal);
|
||||
|
||||
;WITH INV AS
|
||||
(
|
||||
SELECT
|
||||
@@ -77,7 +104,7 @@ END;
|
||||
P.ItemCode, P.ColorCode, P.ItemDim1Code, P.ItemDim2Code,
|
||||
P.Qty1 AS PickingQty1, 0 AS ReserveQty1, 0 AS DispOrderQty1, 0 AS InventoryQty1
|
||||
FROM PickingStates P
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = P.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = P.ItemCode
|
||||
WHERE P.ItemTypeCode = 1
|
||||
AND LEN(P.ItemCode) = 13
|
||||
|
||||
@@ -86,7 +113,7 @@ END;
|
||||
R.ItemCode, R.ColorCode, R.ItemDim1Code, R.ItemDim2Code,
|
||||
0, R.Qty1, 0, 0
|
||||
FROM ReserveStates R
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = R.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = R.ItemCode
|
||||
WHERE R.ItemTypeCode = 1
|
||||
AND LEN(R.ItemCode) = 13
|
||||
|
||||
@@ -95,7 +122,7 @@ END;
|
||||
D.ItemCode, D.ColorCode, D.ItemDim1Code, D.ItemDim2Code,
|
||||
0, 0, D.Qty1, 0
|
||||
FROM DispOrderStates D
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = D.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = D.ItemCode
|
||||
WHERE D.ItemTypeCode = 1
|
||||
AND LEN(D.ItemCode) = 13
|
||||
|
||||
@@ -104,7 +131,7 @@ END;
|
||||
T.ItemCode, T.ColorCode, T.ItemDim1Code, T.ItemDim2Code,
|
||||
0, 0, 0, SUM(T.In_Qty1 - T.Out_Qty1)
|
||||
FROM trStock T WITH (NOLOCK)
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = T.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = T.ItemCode
|
||||
WHERE T.ItemTypeCode = 1
|
||||
AND LEN(T.ItemCode) = 13
|
||||
GROUP BY T.ItemCode, T.ColorCode, T.ItemDim1Code, T.ItemDim2Code
|
||||
@@ -129,21 +156,21 @@ Avail AS
|
||||
SELECT 'kategori' AS FieldName, X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.Kategori
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.Kategori <> ''
|
||||
) X
|
||||
UNION ALL
|
||||
SELECT 'urun_ana_grubu', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.UrunAnaGrubu
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.UrunAnaGrubu <> ''
|
||||
) X
|
||||
UNION ALL
|
||||
SELECT 'urun_alt_grubu', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.UrunAltGrubu
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.UrunAltGrubu <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -153,7 +180,7 @@ SELECT 'renk', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = CASE WHEN A.RenkAciklama <> '' THEN A.RenkAciklama ELSE A.Renk END
|
||||
FROM Avail A
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
WHERE (CASE WHEN A.RenkAciklama <> '' THEN A.RenkAciklama ELSE A.Renk END) <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -169,7 +196,7 @@ SELECT 'renk2', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = A.Renk2
|
||||
FROM Avail A
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
WHERE A.Renk2 <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -184,7 +211,7 @@ UNION ALL
|
||||
SELECT 'urun_icerigi', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.UrunIcerigi
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.UrunIcerigi <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -193,7 +220,7 @@ UNION ALL
|
||||
SELECT 'fit', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.Fit
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.Fit <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -202,7 +229,7 @@ UNION ALL
|
||||
SELECT 'drop', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = AB.DropVal
|
||||
FROM @AttrBase AB
|
||||
FROM #AttrBase AB
|
||||
WHERE AB.DropVal <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -212,7 +239,7 @@ SELECT 'beden', X.FieldValue
|
||||
FROM (
|
||||
SELECT DISTINCT FieldValue = A.Beden
|
||||
FROM Avail A
|
||||
INNER JOIN @AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
INNER JOIN #AttrBase AB ON AB.ProductCode = A.ItemCode
|
||||
WHERE A.Beden <> ''
|
||||
AND (@Kategori IS NULL OR AB.Kategori = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR AB.UrunAnaGrubu = @UrunAnaGrubu)
|
||||
@@ -222,7 +249,8 @@ FROM (
|
||||
AND (@Drop IS NULL OR AB.DropVal = @Drop)
|
||||
AND (@Renk IS NULL OR (CASE WHEN A.RenkAciklama <> '' THEN A.RenkAciklama ELSE A.Renk END) = @Renk)
|
||||
AND (@Renk2 IS NULL OR A.Renk2 = @Renk2)
|
||||
) X;
|
||||
) X
|
||||
OPTION (RECOMPILE);
|
||||
`
|
||||
|
||||
// GetProductStockQueryByAttributes:
|
||||
@@ -238,8 +266,158 @@ DECLARE @Fit NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p7)), '');
|
||||
DECLARE @Drop NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p8)), '');
|
||||
DECLARE @Beden NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p9)), '');
|
||||
|
||||
;WITH AttrFiltered AS
|
||||
CREATE TABLE #AttrFiltered
|
||||
(
|
||||
ProductCode NVARCHAR(50) NOT NULL,
|
||||
ProductDescription NVARCHAR(255) NULL,
|
||||
ProductAtt01Desc NVARCHAR(255) NULL,
|
||||
ProductAtt02Desc NVARCHAR(255) NULL,
|
||||
ProductAtt10Desc NVARCHAR(255) NULL,
|
||||
ProductAtt11Desc NVARCHAR(255) NULL,
|
||||
ProductAtt21Desc NVARCHAR(255) NULL,
|
||||
ProductAtt22Desc NVARCHAR(255) NULL,
|
||||
ProductAtt23Desc NVARCHAR(255) NULL,
|
||||
ProductAtt24Desc NVARCHAR(255) NULL,
|
||||
ProductAtt25Desc NVARCHAR(255) NULL,
|
||||
ProductAtt26Desc NVARCHAR(255) NULL,
|
||||
ProductAtt27Desc NVARCHAR(255) NULL,
|
||||
ProductAtt28Desc NVARCHAR(255) NULL,
|
||||
ProductAtt29Desc NVARCHAR(255) NULL,
|
||||
ProductAtt30Desc NVARCHAR(255) NULL,
|
||||
ProductAtt31Desc NVARCHAR(255) NULL,
|
||||
ProductAtt32Desc NVARCHAR(255) NULL,
|
||||
ProductAtt33Desc NVARCHAR(255) NULL,
|
||||
ProductAtt34Desc NVARCHAR(255) NULL,
|
||||
ProductAtt35Desc NVARCHAR(255) NULL,
|
||||
ProductAtt36Desc NVARCHAR(255) NULL,
|
||||
ProductAtt37Desc NVARCHAR(255) NULL,
|
||||
ProductAtt38Desc NVARCHAR(255) NULL,
|
||||
ProductAtt39Desc NVARCHAR(255) NULL,
|
||||
ProductAtt40Desc NVARCHAR(255) NULL,
|
||||
ProductAtt41Desc NVARCHAR(255) NULL,
|
||||
ProductAtt42Desc NVARCHAR(255) NULL,
|
||||
ProductAtt43Desc NVARCHAR(255) NULL,
|
||||
ProductAtt44Desc NVARCHAR(255) NULL,
|
||||
ProductAtt45Desc NVARCHAR(255) NULL,
|
||||
ProductAtt46Desc NVARCHAR(255) NULL
|
||||
);
|
||||
|
||||
IF OBJECT_ID('dbo.ProductFilterTRCache','U') IS NOT NULL
|
||||
BEGIN
|
||||
INSERT INTO #AttrFiltered
|
||||
(
|
||||
ProductCode,
|
||||
ProductDescription,
|
||||
ProductAtt01Desc,
|
||||
ProductAtt02Desc,
|
||||
ProductAtt10Desc,
|
||||
ProductAtt11Desc,
|
||||
ProductAtt21Desc,
|
||||
ProductAtt22Desc,
|
||||
ProductAtt23Desc,
|
||||
ProductAtt24Desc,
|
||||
ProductAtt25Desc,
|
||||
ProductAtt26Desc,
|
||||
ProductAtt27Desc,
|
||||
ProductAtt28Desc,
|
||||
ProductAtt29Desc,
|
||||
ProductAtt30Desc,
|
||||
ProductAtt31Desc,
|
||||
ProductAtt32Desc,
|
||||
ProductAtt33Desc,
|
||||
ProductAtt34Desc,
|
||||
ProductAtt35Desc,
|
||||
ProductAtt36Desc,
|
||||
ProductAtt37Desc,
|
||||
ProductAtt38Desc,
|
||||
ProductAtt39Desc,
|
||||
ProductAtt40Desc,
|
||||
ProductAtt41Desc,
|
||||
ProductAtt42Desc,
|
||||
ProductAtt43Desc,
|
||||
ProductAtt44Desc,
|
||||
ProductAtt45Desc,
|
||||
ProductAtt46Desc
|
||||
)
|
||||
SELECT
|
||||
C.ProductCode,
|
||||
C.ProductDescription,
|
||||
C.ProductAtt01Desc,
|
||||
C.ProductAtt02Desc,
|
||||
'' AS ProductAtt10Desc,
|
||||
C.ProductAtt11Desc,
|
||||
'' AS ProductAtt21Desc,
|
||||
'' AS ProductAtt22Desc,
|
||||
'' AS ProductAtt23Desc,
|
||||
'' AS ProductAtt24Desc,
|
||||
'' AS ProductAtt25Desc,
|
||||
'' AS ProductAtt26Desc,
|
||||
'' AS ProductAtt27Desc,
|
||||
'' AS ProductAtt28Desc,
|
||||
'' AS ProductAtt29Desc,
|
||||
'' AS ProductAtt30Desc,
|
||||
'' AS ProductAtt31Desc,
|
||||
'' AS ProductAtt32Desc,
|
||||
'' AS ProductAtt33Desc,
|
||||
'' AS ProductAtt34Desc,
|
||||
'' AS ProductAtt35Desc,
|
||||
'' AS ProductAtt36Desc,
|
||||
'' AS ProductAtt37Desc,
|
||||
C.ProductAtt38Desc,
|
||||
'' AS ProductAtt39Desc,
|
||||
'' AS ProductAtt40Desc,
|
||||
C.ProductAtt41Desc,
|
||||
'' AS ProductAtt42Desc,
|
||||
'' AS ProductAtt43Desc,
|
||||
C.ProductAtt44Desc,
|
||||
'' AS ProductAtt45Desc,
|
||||
'' AS ProductAtt46Desc
|
||||
FROM dbo.ProductFilterTRCache C
|
||||
WHERE LEN(C.ProductCode) = 13
|
||||
AND (@Kategori IS NULL OR C.ProductAtt44Desc = @Kategori)
|
||||
AND (@UrunAnaGrubu IS NULL OR C.ProductAtt01Desc = @UrunAnaGrubu)
|
||||
AND (@UrunAltGrubu IS NULL OR C.ProductAtt02Desc = @UrunAltGrubu)
|
||||
AND (@UrunIcerigi IS NULL OR C.ProductAtt41Desc = @UrunIcerigi)
|
||||
AND (@Fit IS NULL OR C.ProductAtt38Desc = @Fit)
|
||||
AND (@Drop IS NULL OR C.ProductAtt11Desc = @Drop);
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO #AttrFiltered
|
||||
(
|
||||
ProductCode,
|
||||
ProductDescription,
|
||||
ProductAtt01Desc,
|
||||
ProductAtt02Desc,
|
||||
ProductAtt10Desc,
|
||||
ProductAtt11Desc,
|
||||
ProductAtt21Desc,
|
||||
ProductAtt22Desc,
|
||||
ProductAtt23Desc,
|
||||
ProductAtt24Desc,
|
||||
ProductAtt25Desc,
|
||||
ProductAtt26Desc,
|
||||
ProductAtt27Desc,
|
||||
ProductAtt28Desc,
|
||||
ProductAtt29Desc,
|
||||
ProductAtt30Desc,
|
||||
ProductAtt31Desc,
|
||||
ProductAtt32Desc,
|
||||
ProductAtt33Desc,
|
||||
ProductAtt34Desc,
|
||||
ProductAtt35Desc,
|
||||
ProductAtt36Desc,
|
||||
ProductAtt37Desc,
|
||||
ProductAtt38Desc,
|
||||
ProductAtt39Desc,
|
||||
ProductAtt40Desc,
|
||||
ProductAtt41Desc,
|
||||
ProductAtt42Desc,
|
||||
ProductAtt43Desc,
|
||||
ProductAtt44Desc,
|
||||
ProductAtt45Desc,
|
||||
ProductAtt46Desc
|
||||
)
|
||||
SELECT
|
||||
ProductCode,
|
||||
ProductDescription,
|
||||
@@ -280,8 +458,12 @@ DECLARE @Beden NVARCHAR(100) = NULLIF(LTRIM(RTRIM(@p9)), '');
|
||||
AND (@UrunAltGrubu IS NULL OR ProductAtt02Desc = @UrunAltGrubu)
|
||||
AND (@UrunIcerigi IS NULL OR ProductAtt41Desc = @UrunIcerigi)
|
||||
AND (@Fit IS NULL OR ProductAtt38Desc = @Fit)
|
||||
AND (@Drop IS NULL OR ProductAtt11Desc = @Drop)
|
||||
),
|
||||
AND (@Drop IS NULL OR ProductAtt11Desc = @Drop);
|
||||
END;
|
||||
|
||||
CREATE CLUSTERED INDEX IX_AttrFiltered_ProductCode ON #AttrFiltered(ProductCode);
|
||||
|
||||
;WITH
|
||||
INV AS
|
||||
(
|
||||
SELECT
|
||||
@@ -307,9 +489,15 @@ INV AS
|
||||
P.ItemTypeCode, P.ItemCode, P.ColorCode, P.ItemDim1Code, P.ItemDim2Code, P.ItemDim3Code,
|
||||
P.Qty1 AS PickingQty1, 0 AS ReserveQty1, 0 AS DispOrderQty1, 0 AS InventoryQty1
|
||||
FROM PickingStates P
|
||||
INNER JOIN AttrFiltered AF ON AF.ProductCode = P.ItemCode
|
||||
INNER JOIN #AttrFiltered AF ON AF.ProductCode = P.ItemCode
|
||||
WHERE P.ItemTypeCode = 1
|
||||
AND LEN(P.ItemCode) = 13
|
||||
AND P.WarehouseCode IN
|
||||
(
|
||||
'1-0-14','1-0-10','1-0-8','1-2-5','1-2-4','1-0-12','100','1-0-28',
|
||||
'1-0-24','1-2-6','1-1-14','1-0-2','1-0-52','1-1-2','1-0-21','1-1-3',
|
||||
'1-0-33','101','1-014','1-0-49','1-0-36'
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
SELECT
|
||||
@@ -317,9 +505,15 @@ INV AS
|
||||
R.ItemTypeCode, R.ItemCode, R.ColorCode, R.ItemDim1Code, R.ItemDim2Code, R.ItemDim3Code,
|
||||
0, R.Qty1, 0, 0
|
||||
FROM ReserveStates R
|
||||
INNER JOIN AttrFiltered AF ON AF.ProductCode = R.ItemCode
|
||||
INNER JOIN #AttrFiltered AF ON AF.ProductCode = R.ItemCode
|
||||
WHERE R.ItemTypeCode = 1
|
||||
AND LEN(R.ItemCode) = 13
|
||||
AND R.WarehouseCode IN
|
||||
(
|
||||
'1-0-14','1-0-10','1-0-8','1-2-5','1-2-4','1-0-12','100','1-0-28',
|
||||
'1-0-24','1-2-6','1-1-14','1-0-2','1-0-52','1-1-2','1-0-21','1-1-3',
|
||||
'1-0-33','101','1-014','1-0-49','1-0-36'
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
SELECT
|
||||
@@ -327,9 +521,15 @@ INV AS
|
||||
D.ItemTypeCode, D.ItemCode, D.ColorCode, D.ItemDim1Code, D.ItemDim2Code, D.ItemDim3Code,
|
||||
0, 0, D.Qty1, 0
|
||||
FROM DispOrderStates D
|
||||
INNER JOIN AttrFiltered AF ON AF.ProductCode = D.ItemCode
|
||||
INNER JOIN #AttrFiltered AF ON AF.ProductCode = D.ItemCode
|
||||
WHERE D.ItemTypeCode = 1
|
||||
AND LEN(D.ItemCode) = 13
|
||||
AND D.WarehouseCode IN
|
||||
(
|
||||
'1-0-14','1-0-10','1-0-8','1-2-5','1-2-4','1-0-12','100','1-0-28',
|
||||
'1-0-24','1-2-6','1-1-14','1-0-2','1-0-52','1-1-2','1-0-21','1-1-3',
|
||||
'1-0-33','101','1-014','1-0-49','1-0-36'
|
||||
)
|
||||
|
||||
UNION ALL
|
||||
SELECT
|
||||
@@ -337,9 +537,15 @@ INV AS
|
||||
T.ItemTypeCode, T.ItemCode, T.ColorCode, T.ItemDim1Code, T.ItemDim2Code, T.ItemDim3Code,
|
||||
0, 0, 0, SUM(T.In_Qty1 - T.Out_Qty1)
|
||||
FROM trStock T WITH (NOLOCK)
|
||||
INNER JOIN AttrFiltered AF ON AF.ProductCode = T.ItemCode
|
||||
INNER JOIN #AttrFiltered AF ON AF.ProductCode = T.ItemCode
|
||||
WHERE T.ItemTypeCode = 1
|
||||
AND LEN(T.ItemCode) = 13
|
||||
AND T.WarehouseCode IN
|
||||
(
|
||||
'1-0-14','1-0-10','1-0-8','1-2-5','1-2-4','1-0-12','100','1-0-28',
|
||||
'1-0-24','1-2-6','1-1-14','1-0-2','1-0-52','1-1-2','1-0-21','1-1-3',
|
||||
'1-0-33','101','1-014','1-0-49','1-0-36'
|
||||
)
|
||||
GROUP BY
|
||||
T.CompanyCode, T.OfficeCode, T.StoreTypeCode, T.StoreCode, T.WarehouseCode,
|
||||
T.ItemTypeCode, T.ItemCode, T.ColorCode, T.ItemDim1Code, T.ItemDim2Code, T.ItemDim3Code
|
||||
@@ -391,7 +597,7 @@ Grouped AS
|
||||
A.ColorCode,
|
||||
A.ItemDim2Code
|
||||
FROM Avail A
|
||||
INNER JOIN AttrFiltered AF ON AF.ProductCode = A.ItemCode
|
||||
INNER JOIN #AttrFiltered AF ON AF.ProductCode = A.ItemCode
|
||||
WHERE (@Renk IS NULL OR (CASE WHEN A.RenkAciklama <> '' THEN A.RenkAciklama ELSE A.ColorCode END) = @Renk)
|
||||
AND (@Renk2 IS NULL OR A.ItemDim2Code = @Renk2)
|
||||
AND (
|
||||
@@ -454,7 +660,7 @@ INNER JOIN Grouped G
|
||||
ON G.ItemCode = A.ItemCode
|
||||
AND G.ColorCode = A.ColorCode
|
||||
AND ISNULL(G.ItemDim2Code, '') = ISNULL(A.ItemDim2Code, '')
|
||||
INNER JOIN AttrFiltered AF
|
||||
INNER JOIN #AttrFiltered AF
|
||||
ON AF.ProductCode = A.ItemCode
|
||||
LEFT JOIN cdWarehouseDesc W WITH (NOLOCK)
|
||||
ON W.WarehouseCode = A.WarehouseCode
|
||||
@@ -469,5 +675,6 @@ OUTER APPLY (
|
||||
AND PB.ItemCode = A.ItemCode
|
||||
AND LEN(PB.ItemCode) = 13
|
||||
ORDER BY PB.PriceDate DESC
|
||||
) P;
|
||||
) P
|
||||
OPTION (RECOMPILE);
|
||||
`
|
||||
|
||||
@@ -23,11 +23,53 @@ type ProductImageItem struct {
|
||||
ContentURL string `json:"content_url"`
|
||||
}
|
||||
|
||||
func tokenizeImageFileName(fileName string) []string {
|
||||
up := strings.ToUpper(strings.TrimSpace(fileName))
|
||||
if up == "" {
|
||||
return nil
|
||||
}
|
||||
return strings.FieldsFunc(up, func(r rune) bool {
|
||||
isUpper := r >= 'A' && r <= 'Z'
|
||||
isDigit := r >= '0' && r <= '9'
|
||||
if isUpper || isDigit || r == '_' {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
})
|
||||
}
|
||||
|
||||
func imageFileMatches(fileName, color, secondColor string) bool {
|
||||
color = strings.ToUpper(strings.TrimSpace(color))
|
||||
secondColor = strings.ToUpper(strings.TrimSpace(secondColor))
|
||||
if color == "" && secondColor == "" {
|
||||
return true
|
||||
}
|
||||
|
||||
tokens := tokenizeImageFileName(fileName)
|
||||
if len(tokens) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
hasToken := func(target string) bool {
|
||||
if target == "" {
|
||||
return true
|
||||
}
|
||||
for _, t := range tokens {
|
||||
if t == target {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
return hasToken(color) && hasToken(secondColor)
|
||||
}
|
||||
|
||||
//
|
||||
// LIST PRODUCT IMAGES
|
||||
//
|
||||
|
||||
// GET /api/product-images?code=...&color=...
|
||||
// GET /api/product-images?code=...&color=...&yaka=...
|
||||
func GetProductImagesHandler(pg *sql.DB) http.HandlerFunc {
|
||||
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -41,6 +83,10 @@ func GetProductImagesHandler(pg *sql.DB) http.HandlerFunc {
|
||||
|
||||
code := strings.TrimSpace(r.URL.Query().Get("code"))
|
||||
color := strings.TrimSpace(r.URL.Query().Get("color"))
|
||||
secondColor := strings.TrimSpace(r.URL.Query().Get("yaka"))
|
||||
if secondColor == "" {
|
||||
secondColor = strings.TrimSpace(r.URL.Query().Get("renk2"))
|
||||
}
|
||||
|
||||
if code == "" {
|
||||
|
||||
@@ -67,18 +113,13 @@ JOIN mmitem i
|
||||
WHERE b.typ = 'img'
|
||||
AND b.src_table = 'mmitem'
|
||||
AND UPPER(i.code) = UPPER($1)
|
||||
AND (
|
||||
$2 = ''
|
||||
OR b.file_name ILIKE '%' || '-' || $2 || '-%'
|
||||
OR b.file_name ILIKE '%' || '-' || $2 || '_%'
|
||||
)
|
||||
ORDER BY
|
||||
COALESCE(b.sort_order,999999),
|
||||
b.zlins_dttm DESC,
|
||||
b.id DESC
|
||||
`
|
||||
|
||||
rows, err := pg.Query(query, code, color)
|
||||
rows, err := pg.Query(query, code)
|
||||
|
||||
if err != nil {
|
||||
|
||||
@@ -86,6 +127,7 @@ ORDER BY
|
||||
"req_id", reqID,
|
||||
"code", code,
|
||||
"color", color,
|
||||
"second_color", secondColor,
|
||||
"err", err.Error(),
|
||||
)
|
||||
|
||||
@@ -109,6 +151,9 @@ ORDER BY
|
||||
); err != nil {
|
||||
continue
|
||||
}
|
||||
if !imageFileMatches(it.FileName, color, secondColor) {
|
||||
continue
|
||||
}
|
||||
|
||||
it.ContentURL = fmt.Sprintf("/api/product-images/%d/content", it.ID)
|
||||
|
||||
@@ -119,6 +164,7 @@ ORDER BY
|
||||
"req_id", reqID,
|
||||
"code", code,
|
||||
"color", color,
|
||||
"second_color", secondColor,
|
||||
"count", len(items),
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user