202 lines
6.4 KiB
Go
202 lines
6.4 KiB
Go
package queries
|
||
|
||
// GetProductStockQuery:
|
||
// Ürün kodu bazlı, optimize stok + attribute sorgusu.
|
||
const GetProductStockQuery = `
|
||
DECLARE @ProductCode NVARCHAR(50) = @p1;
|
||
|
||
;WITH INV AS
|
||
(
|
||
SELECT
|
||
CompanyCode,
|
||
OfficeCode,
|
||
StoreTypeCode,
|
||
StoreCode,
|
||
WarehouseCode,
|
||
ItemTypeCode,
|
||
ItemCode,
|
||
ColorCode,
|
||
ItemDim1Code,
|
||
ItemDim2Code,
|
||
ItemDim3Code,
|
||
SUM(PickingQty1) AS PickingQty1,
|
||
SUM(ReserveQty1) AS ReserveQty1,
|
||
SUM(DispOrderQty1) AS DispOrderQty1,
|
||
SUM(InventoryQty1) AS InventoryQty1
|
||
FROM
|
||
(
|
||
SELECT
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code,
|
||
Qty1 AS PickingQty1, 0 AS ReserveQty1, 0 AS DispOrderQty1, 0 AS InventoryQty1
|
||
FROM PickingStates
|
||
WHERE ItemTypeCode = 1
|
||
AND ItemCode = @ProductCode
|
||
AND LEN(ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
|
||
UNION ALL
|
||
SELECT
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code,
|
||
0, Qty1, 0, 0
|
||
FROM ReserveStates
|
||
WHERE ItemTypeCode = 1
|
||
AND ItemCode = @ProductCode
|
||
AND LEN(ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
|
||
UNION ALL
|
||
SELECT
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code,
|
||
0, 0, Qty1, 0
|
||
FROM DispOrderStates
|
||
WHERE ItemTypeCode = 1
|
||
AND ItemCode = @ProductCode
|
||
AND LEN(ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
|
||
UNION ALL
|
||
SELECT
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code,
|
||
0, 0, 0, SUM(In_Qty1 - Out_Qty1)
|
||
FROM trStock WITH (NOLOCK)
|
||
WHERE ItemTypeCode = 1
|
||
AND ItemCode = @ProductCode
|
||
AND LEN(ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
GROUP BY
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code
|
||
) X
|
||
GROUP BY
|
||
CompanyCode, OfficeCode, StoreTypeCode, StoreCode, WarehouseCode,
|
||
ItemTypeCode, ItemCode, ColorCode, ItemDim1Code, ItemDim2Code, ItemDim3Code
|
||
),
|
||
Attr AS
|
||
(
|
||
SELECT TOP 1
|
||
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
|
||
FROM ProductFilterWithDescription('TR')
|
||
WHERE ProductCode = @ProductCode
|
||
AND LEN(ProductCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
),
|
||
Price AS
|
||
(
|
||
SELECT TOP 1
|
||
Price
|
||
FROM prItemBasePrice WITH (NOLOCK)
|
||
WHERE ItemTypeCode = 1
|
||
AND ItemCode = @ProductCode
|
||
AND LEN(ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
ORDER BY PriceDate DESC
|
||
)
|
||
SELECT
|
||
I.WarehouseCode AS Depo_Kodu,
|
||
W.WarehouseDescription AS Depo_Adi,
|
||
IT.ItemTypeDescription AS InventoryType,
|
||
I.ItemCode AS Urun_Kodu,
|
||
A.ProductDescription AS Madde_Aciklamasi,
|
||
I.ColorCode AS Renk_Kodu,
|
||
C.ColorDescription AS Renk_Aciklamasi,
|
||
I.ItemDim1Code AS Beden,
|
||
I.ItemDim2Code AS Yaka,
|
||
ROUND(I.InventoryQty1 - I.PickingQty1 - I.ReserveQty1 - I.DispOrderQty1, U.RoundDigit) AS Kullanilabilir_Envanter,
|
||
A.ProductAtt01Desc AS URUN_ANA_GRUBU,
|
||
A.ProductAtt02Desc AS URUN_ALT_GRUBU,
|
||
A.ProductAtt10Desc AS MARKA,
|
||
A.ProductAtt11Desc AS DR,
|
||
A.ProductAtt21Desc AS KALIP,
|
||
A.ProductAtt22Desc AS IKINCI_PARCA_KALIP,
|
||
A.ProductAtt23Desc AS PACA_GENISLIGI,
|
||
A.ProductAtt24Desc AS UCUNCU_PARCA_KALIP,
|
||
A.ProductAtt25Desc AS UCUNCU_PARCA_MODEL,
|
||
A.ProductAtt26Desc AS BIRINCI_PARCA_KUMAS,
|
||
A.ProductAtt27Desc AS IKINCI_PARCA_KUMAS,
|
||
A.ProductAtt28Desc AS UCUNCU_PARCA_KUMAS,
|
||
A.ProductAtt29Desc AS BIRINCI_PARCA_KARISIM,
|
||
A.ProductAtt30Desc AS IKINCI_PARCA_KARISIM,
|
||
A.ProductAtt31Desc AS UCUNCU_PARCA_KARISIM,
|
||
A.ProductAtt32Desc AS YAKA_TIPI,
|
||
A.ProductAtt33Desc AS DUGME,
|
||
A.ProductAtt34Desc AS YIRTMAC,
|
||
A.ProductAtt35Desc AS SEZON_YILI,
|
||
A.ProductAtt36Desc AS MEVSIM,
|
||
A.ProductAtt37Desc AS TABAN,
|
||
A.ProductAtt38Desc AS BIRINCI_PARCA_FIT,
|
||
A.ProductAtt39Desc AS IKINCI_PARCA_FIT,
|
||
A.ProductAtt40Desc AS BOS2,
|
||
A.ProductAtt41Desc AS KISA_KAR,
|
||
A.ProductAtt42Desc AS SERI_FASON,
|
||
A.ProductAtt43Desc AS STOK_GIRIS_YONTEMI,
|
||
A.ProductAtt44Desc AS YETISKIN_GARSON,
|
||
A.ProductAtt45Desc AS ASKILI_YAN,
|
||
A.ProductAtt46Desc AS BOS3,
|
||
P.Price AS Fiyat
|
||
FROM INV I
|
||
JOIN cdItem CI WITH (NOLOCK)
|
||
ON CI.ItemTypeCode = I.ItemTypeCode
|
||
AND CI.ItemCode = I.ItemCode
|
||
LEFT JOIN cdUnitOfMeasure U WITH (NOLOCK)
|
||
ON U.UnitOfMeasureCode = CI.UnitOfMeasureCode1
|
||
LEFT JOIN cdWarehouseDesc W WITH (NOLOCK)
|
||
ON W.WarehouseCode = I.WarehouseCode
|
||
AND W.LangCode = 'TR'
|
||
LEFT JOIN bsItemTypeDesc IT WITH (NOLOCK)
|
||
ON IT.ItemTypeCode = I.ItemTypeCode
|
||
AND IT.LangCode = 'TR'
|
||
LEFT JOIN cdColorDesc C WITH (NOLOCK)
|
||
ON C.ColorCode = I.ColorCode
|
||
AND C.LangCode = 'TR'
|
||
CROSS JOIN Attr A
|
||
OUTER APPLY (SELECT TOP 1 Price FROM Price) P
|
||
WHERE
|
||
I.ItemTypeCode = 1
|
||
AND I.ItemCode = @ProductCode
|
||
AND LEN(I.ItemCode) = 13
|
||
AND LEN(@ProductCode) = 13
|
||
AND (I.InventoryQty1 - I.PickingQty1 - I.ReserveQty1 - I.DispOrderQty1) > 0
|
||
AND CI.IsBlocked = 0
|
||
AND I.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'
|
||
);
|
||
`
|