InventoryValuation Stored Procedure

<< Click to Display Table of Contents >>

Navigation:  iVend Database Database > Stored Procedures >

InventoryValuation Stored Procedure

Navigation: iVend Database Database > Stored Procedures >

hm_btn_navigate_prevhm_btn_navigate_tophm_btn_navigate_next

iVend 6.6 Database Help

InventoryValuation Stored Procedure

Collapse All Expand All

iVend Database Database : InventoryValuation Stored Procedure

Properties

Creation Date

10/8/2018 5:58 PM

Encrypted

dbimages_boolean-false

Ansi Nulls

dbimages_boolean-true

Parameters

Parameter

Direction

Description

Data Type

Size

@FromDate

In

 

VarChar

8

@Subsidiary

In

 

VarWChar

200

@FromWarehouse

In

 

VarWChar

200

@ToWarehouse

In

 

VarWChar

200

@ProductGroup

In

 

VarWChar

200

@FromProduct

In

 

VarWChar

200

@ToProduct

In

 

VarWChar

200

@HOCurrency

In

 

Boolean

1

@RETURN_VALUE

Return Value

 

Integer

4

Procedure Source Code

CREATE Proc InventoryValuation (

  @FromDate Varchar(8)

, @Subsidiary NVarchar(200)

, @FromWarehouse NVarchar(200)

, @ToWarehouse NVarchar(200)

, @ProductGroup NVarchar(200)

, @FromProduct NVarchar(200)

, @ToProduct NVarchar(200)

, @HOCurrency Bit =0

)

AS

BEGIN

/*  Created By: Jyotsna Tyagi

Created On: June 18, 2018

Report generate data based on inventory and cost table and its generate all the products cycle

*/

--Declare @FromDate Varchar(8)='20180101', @ToDate Varchar(8)='20180131', @Subsidiary NVarchar(200)='', @FromWarehouse NVarchar(200)='', @ToWarehouse NVarchar(200)='',

-- @ProductGroup NVarchar(200)='', @FromProduct NVarchar(200)='', @ToProduct NVarchar(200)='', @HOCurrency Bit =0

--EXEC  InventoryValuation @FromDate,  @Subsidiary, @FromWarehouse, @ToWarehouse, @ProductGroup, @FromProduct, @ToProduct, @HOCurrency

/* Insert data into temp table for create index on Warehouse and product */

IF OBJECT_ID('tempdb..#InventoryItemLog') IS NOT NULL

  DROP TABLE #InventoryItemLog

CREATE TABLE [dbo].[#InventoryItemLog](

[InventoryItemLogKey] [bigint] NOT NULL,

[WarehouseKey] [bigint] NOT NULL,

[ProductKey] [bigint] NOT NULL,

[Quantity] [decimal](20, 5) NOT NULL,

[SourceType] [int] NOT NULL,

[Created] [datetime] NOT NULL)

CREATE CLUSTERED INDEX IDX_InventoryLog_WHProd ON #InventoryItemLog(WarehouseKey, ProductKey, Created)

INSERT INTO #InventoryItemLog (InventoryItemLogKey, WarehouseKey, ProductKey, Quantity, SourceType, Created)

Select InventoryItemLogKey, WarehouseKey, ProductKey, (ISNULL(InQty,0)-ISNULL(OutQty,0)), SourceType, Created From InvInventoryItemLog

/* Generate all the transaction data based on filter selection */

;WITH CostValue AS(

Select Row_NUMBER() OVER(Partition BY IL.WarehouseKey, IL.ProductKey ORDER BY IL.WarehouseKey, IL.ProductKey, IL.Created) AS RN,

ISNULL(Sub.SubsidiaryKey, 0) SubsidiaryKey, ISNULL(Sub.Id,'') AS Subsidiary, ISNULL(Sub.Description,'') AS SubsidiaryDesc,

IL.WarehouseKey, WH.Id AS Warehouse, WH.Description AS WarehouseDesc, PG.ProductGroupKey, PG.Id AS ProductGroup, PG.Description AS ProductGroupDesc,

IL.ProductKey, P.Id AS Product, P.Description AS ProductDesc, IL.SourceType, Quantity AS Quantity, IL.Created,

ISNULL(ER.SellRate,1) AS ExchangeRate, P.CostingMethod,

(CASE WHEN (Sub.SubsidiaryKey=0 or Sub.SubsidiaryKey IS NULL) THEN (Select CultureInfo From PmtCurrency Where IsBaseCurrency=1) ELSE Sub.CultureInfo END) AS CultureInfo,

(Select CultureInfo From PmtCurrency Where IsBaseCurrency=1) AS BaseCultureInfo,

CASE WHEN P.CostingMethod=1 THEN

ISNULL((

SELECT TOP 1 UpdatedAverageCost

  FROM InvInventoryItemLog WITH (NOLOCK)

  WHERE ProductKey IN (IL.ProductKey, 0)

  AND WarehouseKey IN (IL.WarehouseKey, 0)

  AND Created<= IL.Created AND ISNULL(UpdatedAverageCost, 0) <> 0

  ORDER BY Created DESC

),0)

WHEN P.CostingMethod=2 THEN ISNULL((Select Top 1 ISNULL(Cost,0) From InvProductCost PC Where IL.ProductKey=PC.ProductKey

AND IL.WarehouseKey IN (ISNULL(PC.WarehouseKey,0)) AND ISNULL(Sub.SubsidiaryKey,0)=ISNULL(PC.SubsidiaryKey,0)

AND PC.EffectiveDate <=IL.Created),0) ELSE 0 END AS Cost

From #InventoryItemLog IL WITH (NOLOCK)

INNER JOIN InvWarehouse WH WITH (NOLOCK) ON IL.WarehouseKey=WH.WarehouseKey

INNER JOIN InvProduct P WITH (NOLOCK) ON IL.ProductKey=P.ProductKey

INNER JOIN InvProductGroup PG WITH (NOLOCK) ON P.ProductGroupKey=PG.ProductGroupKey

LEFT OUTER JOIN RtlSubsidiary Sub WITH (NOLOCK) ON ISNULL(WH.SubsidiaryKey,0)=ISNULL(Sub.SubsidiaryKey,0)

LEFT OUTER JOIN PmtExchangeRate ER WITH (NOLOCK) ON Sub.LocalCurrencyKey= Er.CurrencyKey AND CONVERT(Nvarchar(8),IL.Created,112) = CONVERT(NVARCHAR(8), ER.EffectiveDate,112)

Where Convert(Varchar(8), IL.Created, 112)<=@FromDate

AND ISNULL(Sub.Id,'')=CASE WHEN Sub.Id<>'' THEN @Subsidiary ELSE ISNULL(Sub.Id,'') END

AND (WH.Id BETWEEN CASE WHEN @FromWarehouse<>'' THEN @FromWarehouse ELSE WH.Id END AND CASE WHEN @ToWarehouse<>'' THEN @ToWarehouse ELSE WH.Id END

          OR

WH.Id BETWEEN CASE WHEN @ToWarehouse<>'' THEN @ToWarehouse ELSE WH.Id END AND CASE WHEN @FromWarehouse<>'' THEN @Fromwarehouse ELSE WH.Id END)

AND CHARINDEX(PG.Id, @ProductGroup)> CASE WHEN @ProductGroup<>'' THEN 0 ELSE -1 END

AND (P.Id BETWEEN CASE WHEN @FromProduct<>'' THEN @FromProduct ELSE P.Id END AND CASE WHEN @ToProduct<>'' THEN @ToProduct ELSE P.Id END

            OR

P.Id BETWEEN CASE WHEN @ToProduct<>'' THEN @ToProduct ELSE P.Id END AND CASE WHEN @FromProduct<>'' THEN @FromProduct ELSE P.Id END)

)

Select RN, SubsidiaryKey, Subsidiary, SubsidiaryDesc, WarehouseKey, Warehouse, WarehouseDesc, ProductGroupKey, ProductGroup, ProductGroupDesc,

ProductKey, Product, ProductDesc, SourceType, Created, Quantity,

(CASE WHEN @HOCurrency='true' THEN BaseCultureInfo ELSE CultureInfo END) AS CultureInfo, BaseCultureInfo, ExchangeRate, CostingMethod,

(CASE WHEN @HOCurrency='true' THEN (Cost*ExchangeRate) ELSE Cost END) AS Cost,

(CASE WHEN @HOCurrency='true' THEN (Quantity*(Cost*ExchangeRate)) ELSE (Quantity* Cost) END) AS TotalAmount,

(Cost*ExchangeRate) AS CostEC,(Quantity* (Cost*ExchangeRate)) AS TotalAmountEC

FROM CostValue

Order BY SubsidiaryKey, WarehouseKey, ProductGroupKey, ProductKey

END

See Also

Related Objects

iVend Database Database

 

 


© 2019 All Rights Reserved.

Send comments on this topic.