rpt_Delivery Stored Procedure

<< Click to Display Table of Contents >>

Navigation:  iVend Database Database > Stored Procedures >

rpt_Delivery Stored Procedure

Navigation: iVend Database Database > Stored Procedures >

hm_btn_navigate_prevhm_btn_navigate_tophm_btn_navigate_next

iVend 6.6 Database Help

rpt_Delivery Stored Procedure

Collapse All Expand All

iVend Database Database : rpt_Delivery Stored Procedure

Properties

Creation Date

8/12/2019 6:09 PM

Encrypted

dbimages_boolean-false

Ansi Nulls

dbimages_boolean-true

Parameters

Parameter

Direction

Description

Data Type

Size

@FromDate

In

From Date (Part of Date Range in YYYYMMDD Format)

VarChar

8

@ToDate

In

To Date (Part of Date Range in YYYYMMDD Format)

VarChar

8

@ProductGroup

In

Product Group (Prefixed and Postfixed with '?' character )

VarChar

4000

@FromProduct

In

From Product (Part of Product Range )

VarChar

40

@ToProduct

In

To Product (Part of Product Range )

VarChar

40

@CustomerGroup

In

Customer Group (Prefixed and Postfixed with '?' character)

VarChar

4000

@FromCustomer

In

From Customer (Part of Customer Range )

VarChar

40

@ToCustomer

In

To Customer (Part of Customer Range )

VarChar

40

@Store

In

Prefixed and Postfixed with '?' character

VarChar

4000

@Subsidiary

In

Prefixed and Postfixed with '?' character

VarChar

4000

@POS

In

Prefixed and Postfixed with '?' character

VarChar

4000

@BookStore

In

 

VarWChar

200

@DelStore

In

 

VarWChar

200

@IncludeLayAway

In

Specify Whether to include LayAway Records in Report.

Boolean

1

@IncludeSale

In

Specify Whether to include Sale Records in Report.

Boolean

1

@IncludeOrder

In

Specify Whether to include Order Records in Report.

Boolean

1

@RETURN_VALUE

Return Value

 

Integer

4

Procedure Source Code

--  this procedure Delivery Report is generated.

-- Case1 ( If @IncludeLayAway = 1 )

--     Then LayAway Records are included in the delivery Report.

-- Case2 (If @IncludeSale = 1)

--     Then Sales Records are included in the delivery Report.

-- Case3 (If @IncludeOrder = 1)

--      Then Order Records are included in the delivery Report.

CREATE PROCEDURE [dbo].[rpt_Delivery](

@FromDate VARCHAR(8),

@ToDate   VARCHAR(8),

@ProductGroup VARCHAR(4000),

@FromProduct VARCHAR(40),

@ToProduct VARCHAR(40),

@CustomerGroup VARCHAR(4000),

@FromCustomer VARCHAR(40),

@ToCustomer VARCHAR(40),

@Store   VARCHAR(4000),

@Subsidiary   VARCHAR(4000),

@POS   VARCHAR(4000),

@BookStore NVARCHAR(200),

@DelStore NVARCHAR(200),

@IncludeLayAway BIT,

@IncludeSale BIT,

@IncludeOrder BIT

   )

AS

BEGIN

Set NoCount On

/*

Exec [rpt_Delivery]  '', '',  --FromDate, ToDate

      '',       --ProductGroup

      '', '',      --FromProduct , ToProduct

      '',       --CustomerGroup

      '', '',      --FromCustomer, ToCustomer

      '',       --Store

      0,       --IncludeLayAway

   1,       --IncludeSale

   0       --IncludeOrder

*/

CREATE TABLE #temp

(

ProductPromisedDate NVARCHAR(50),

TransactionId   NVARCHAR(50),

Cust     NVARCHAR(40),

CustFirstName   NVARCHAR(200),

CustMiddleName   NVARCHAR(100),

CustLastName   NVARCHAR(80),

CustPhone   NVARCHAR(40),

StoreId   NVARCHAR(40),

StoreDesc   NVARCHAR(200),

SubsidiaryId   NVARCHAR(40),

SubsidiaryDesc   NVARCHAR(200),

Item     NVARCHAR(40),

ItemDescription NVARCHAR(200),

Quantity   DECIMAL(20, 5),

OpenQuantity   DECIMAL(20, 5),

FullfilledQty   DECIMAL(20, 5),

SourceType   NVARCHAR(20),

FulfillmentKey   NVARCHAR(50),

UOM     NVARCHAR(200),

POSId       NVARCHAR(40) ,

BookingStore   NVARCHAR(200),

DeliveryStore   NVARCHAR(200)

)

If @IncludeSale = 1

BEGIN

INSERT INTO #temp

SELECT CONVERT(VARCHAR(50), ProductPromisedDate, 106) AS ProductPromisedDate, TransactionId, Cust.Id AS Cust, Cust.FirstName AS CustFirstName,

Cust.MiddleName AS CustMiddleName, Cust.LastName AS CustLastName, Cust.PhoneNumber AS CustPhone, RtlStore.Id, RtlStore.Description AS StoreDescriotion,  RTLSUBSIDIARY.Id, RTLSUBSIDIARY.Description AS SubsidiaryDescription,

   Prod.Id AS Item, TrxnSale.Description AS ItemDescription, TrxnSale.Quantity/ISNULL(TrxnSale.UOMBaseQuantity,1) AS Quantity,

TrxnSale.OpenQuantity/ISNULL(TrxnSale.UOMBaseQuantity,1) AS OpenQuantity, TrxnSale.FullfilledQuantity/ISNULL(TrxnSale.UOMBaseQuantity,1) AS FullfilledQty,

   (CASE WHEN FulDet.SourceType = 0 THEN 'Sale' WHEN FulDet.SourceType = 1 THEN 'ORDER' WHEN FulDet.SourceType = 2 THEN 'Layaway' END) AS SourceType,

   FulDet.FulfillmentKey, ISNULL(UOM.Description,'') as UOM, RtlPOS.Id, BookStore.Id AS BookingStore, DelStore.Id AS DeliveryStore

From TrxTransaction AS Trxn WITH (NOLOCK)

  INNER JOIN TrxTransactionSaleItem AS TrxnSale WITH (NOLOCK) ON Trxn.TransactionKey = TrxnSale.TransactionKey

  LEFT JOIN InvUOMGroupDetail  UOMD WITH (NOLOCK) ON TrxnSale.UOMGroupDetailKey=UOMD.UOMGroupDetailKey

  LEFT JOIN InvUOM UOM WITH (NOLOCK) ON UOMD.UOMKey=UOM.UOMKey

  INNER JOIN TrxTransactionFulfillmentDetail AS FulDet WITH (NOLOCK) ON Trxn.TransactionKey = FulDet.TransactionKey And TrxnSale.TransactionItemKey = FulDet.SourceDetailKey

  INNER JOIN CusCustomer AS Cust WITH (NOLOCK) ON Trxn.CustomerKey = Cust.CustomerKey

  INNER JOIN InvProduct AS Prod WITH (NOLOCK) ON TrxnSale.ProductKey = Prod.ProductKey

  INNER JOIN InvProductGroup AS ProdGrp WITH (NOLOCK) ON ProdGrp.ProductGroupKey = Prod.ProductGroupKey

  INNER JOIN CusCustomerGroup AS CustGrp WITH (NOLOCK) ON CustGrp.CustomerGroupKey = Cust.CustomerGroupKey

  INNER JOIN RtlStore WITH (NOLOCK) ON Trxn.StoreKey = RtlStore.StoreKey

  LEFT OUTER JOIN RtlSubsidiary WITH (NOLOCK) ON RtlStore.SubsidiaryKey = RtlSubsidiary.SubsidiaryKey

  LEFT OUTER JOIN RtlPOS WITH (NOLOCK) ON Trxn.POSKey = RtlPOS.POSKey

  LEFT OUTER JOIN RtlStore DelStore WITH (NOLOCK) ON DelStore.WarehouseKey = TrxnSale.DeliveryWarehouseKey

  LEFT OUTER JOIN RtlStore bookStore WITH (NOLOCK) ON bookStore.WarehouseKey = TrxnSale.BookingWarehouseKey

Where

  CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) Between Case When @FromDate = '' Then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @FromDate End And Case When @ToDate = '' then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @ToDate

end --Date Filter                          --Date Filter

  And  ((Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @FromProduct End And Case When @ToProduct = '' Then Prod.Id Else @ToProduct End)

  OR

  (Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @ToProduct End And Case When @ToProduct = '' Then Prod.Id Else @FromProduct End))                       --Product Filter

  And  ((Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @FromCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @ToCustomer End)

  OR                 --Customer Filter

  (Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @ToCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @FromCustomer End))

  AND ISNULL (RtlSubsidiary.Id,'') = Case When @Subsidiary <> '' Then @Subsidiary Else ISNULL(RtlSubsidiary.Id,'') End

AND (RtlStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@Store)) OR RtlStore.Id IN (CASE WHEN @Store='' THEN RtlStore.Id END))

AND (ISNULL(RtlPOS.Id,'') IN (SELECT DataString FROM [dbo].[fnSplitValues](@POS)) OR ISNULL(RtlPOS.Id,'') IN (CASE WHEN @POS='' THEN ISNULL(RtlPOS.Id,'') END))

AND (ProdGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@ProductGroup)) OR ProdGrp.Id IN (CASE WHEN @ProductGroup='' THEN ProdGrp.Id END))

AND (CustGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@CustomerGroup)) OR CustGrp.Id IN (CASE WHEN @CustomerGroup='' THEN CustGrp.Id END))

And  FulDet.SourceType = 0 AND FulDet.IsDeleted = 0 AND Trxn.IsVoided='False' AND Trxn.IsSuspended =0

AND (DelStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@DelStore)) OR DelStore.Id IN (CASE WHEN @DelStore='' THEN DelStore.Id END))

AND (bookStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@BookStore)) OR bookStore.Id IN (CASE WHEN @BookStore='' THEN bookStore.Id END))

End

If @IncludeOrder = 1

BEGIN

INSERT INTO #temp

SELECT CONVERT(VARCHAR(50), ProductPromisedDate, 106) AS ProductPromisedDate, TransactionId,

   Cust.Id AS Cust, Cust.FirstName AS CustFirstName, Cust.MiddleName AS CustMiddleName, Cust.LastName AS CustLastName, Cust.PhoneNumber AS CustPhone,

   RtlStore.Id, RtlStore.Description AS StoreDescriotion,  RTLSUBSIDIARY.Id, RTLSUBSIDIARY.Description AS SubsidiaryDescription,

   Prod.Id AS Item,

   TrxnOrder.Description AS ItemDescription, TrxnOrder.Quantity/ISNULL(TrxnOrder.UOMBaseQuantity,1) AS Quantity, TrxnOrder.OpenQuantity/ISNULL(TrxnOrder.UOMBaseQuantity,1) AS OpenQuantity, TrxnOrder.FullfilledQuantity/ISNULL(TrxnOrder.UOMBaseQuantity,1)

AS FullfilledQty,

   (CASE WHEN FulDet.SourceType = 0 THEN 'Sale' WHEN FulDet.SourceType = 1 THEN 'ORDER' WHEN FulDet.SourceType = 2 THEN 'Layaway' END) AS SourceType,

   FulDet.FulfillmentKey, ISNULL(UOM.Description,'') as UOM, RtlPOS.Id, BookStore.Id AS BookingStore, DelStore.Id AS DeliveryStore

From TrxTransaction AS Trxn WITH (NOLOCK)

INNER JOIN TrxTransactionOrder AS TrxnOrder WITH (NOLOCK) ON Trxn.TransactionKey = TrxnOrder.TransactionKey

LEFT JOIN InvUOMGroupDetail  UOMD WITH (NOLOCK) ON TrxnOrder.UOMGroupDetailKey=UOMD.UOMGroupDetailKey

LEFT JOIN InvUOM UOM WITH (NOLOCK) ON UOMD.UOMKey=UOM.UOMKey

INNER JOIN TrxTransactionFulfillmentDetail AS FulDet WITH (NOLOCK) ON Trxn.TransactionKey = FulDet.TransactionKey And TrxnOrder.TransactionOrderKey = FulDet.SourceDetailKey And  FulDet.SourceType = 1 AND FulDet.IsDeleted = 0

INNER JOIN CusCustomer AS Cust WITH (NOLOCK) ON Trxn.CustomerKey = Cust.CustomerKey

INNER JOIN InvProduct AS Prod WITH (NOLOCK) ON TrxnOrder.ProductKey = Prod.ProductKey

INNER JOIN InvProductGroup AS ProdGrp WITH (NOLOCK) ON ProdGrp.ProductGroupKey = Prod.ProductGroupKey

INNER JOIN CusCustomerGroup AS CustGrp WITH (NOLOCK) ON CustGrp.CustomerGroupKey = Cust.CustomerGroupKey

INNER JOIN RtlStore WITH (NOLOCK) ON Trxn.StoreKey = RtlStore.StoreKey

  LEFT OUTER JOIN RtlSubsidiary WITH (NOLOCK) ON RtlStore.SubsidiaryKey = RtlSubsidiary.SubsidiaryKey

LEFT OUTER JOIN RtlPOS WITH (NOLOCK) ON Trxn.POSKey = RtlPOS.POSKey

LEFT OUTER JOIN RtlStore DelStore WITH (NOLOCK) ON DelStore.WarehouseKey = TrxnOrder.DeliveryWarehouseKey

LEFT OUTER JOIN RtlStore bookStore WITH (NOLOCK) ON bookStore.WarehouseKey = TrxnOrder.BookingWarehouseKey

Where

CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) Between Case When @FromDate = '' Then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @FromDate End And Case When @ToDate = '' then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @ToDate end --Date Filter                          --Date Filter

And  ((Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @FromProduct End And Case When @ToProduct = '' Then Prod.Id Else @ToProduct End)

    OR

 (Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @ToProduct End And Case When @ToProduct = '' Then Prod.Id Else @FromProduct End))                       --Product Filter

And  ((Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @FromCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @ToCustomer End)

  OR

 (Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @ToCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @FromCustomer End))

AND ISNULL (RtlSubsidiary.Id,'') = Case When @Subsidiary <> '' Then @Subsidiary Else ISNULL(RtlSubsidiary.Id,'') End

AND Trxn.IsVoided='False' AND Trxn.IsSuspended =0

AND (RtlStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@Store)) OR RtlStore.Id IN (CASE WHEN @Store='' THEN RtlStore.Id END))

AND (ISNULL(RtlPOS.Id,'') IN (SELECT DataString FROM [dbo].[fnSplitValues](@POS)) OR ISNULL(RtlPOS.Id,'') IN (CASE WHEN @POS='' THEN ISNULL(RtlPOS.Id,'') END))

AND (ProdGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@ProductGroup)) OR ProdGrp.Id IN (CASE WHEN @ProductGroup='' THEN ProdGrp.Id END))

AND (CustGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@CustomerGroup)) OR CustGrp.Id IN (CASE WHEN @CustomerGroup='' THEN CustGrp.Id END))

AND (DelStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@DelStore)) OR DelStore.Id IN (CASE WHEN @DelStore='' THEN DelStore.Id END))

  AND (bookStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@BookStore)) OR bookStore.Id IN (CASE WHEN @BookStore='' THEN bookStore.Id END))

End

If @IncludeLayAway = 1

BEGIN

INSERT INTO #temp

SELECT CONVERT(VARCHAR(50), ProductPromisedDate, 106) AS ProductPromisedDate, TransactionId,

   Cust.Id AS Cust, Cust.FirstName AS CustFirstName, Cust.MiddleName AS CustMiddleName, Cust.LastName AS CustLastName, Cust.PhoneNumber AS CustPhone,

   RtlStore.Id, RtlStore.Description AS StoreDescriotion, RTLSUBSIDIARY.Id, RTLSUBSIDIARY.Description AS SubsidiaryDescription,

   Prod.Id AS Item,

   TrxnLayaway.Description AS ItemDescription, TrxnLayaway.Quantity/ISNULL(TrxnLayaway.UOMBaseQuantity,1) AS Quantity, TrxnLayaway.OpenQuantity/ISNULL(TrxnLayaway.UOMBaseQuantity,1) AS OpenQuantity, TrxnLayaway.FullfilledQuantity/ISNULL(TrxnLayaway.UOMBaseQuantity,1) AS FullfilledQty,

   (CASE WHEN FulDet.SourceType = 0 THEN 'Sale' WHEN FulDet.SourceType = 1 THEN 'ORDER' WHEN FulDet.SourceType = 2 THEN 'Layaway' END) AS SourceType,

   FulDet.FulfillmentKey, ISNULL(UOM.Description,'') as UOM, RtlPOS.Id, BookStore.Id AS BookingStore, DelStore.Id AS DeliveryStore

From TrxTransaction AS Trxn WITH (NOLOCK)

INNER JOIN TrxTransactionLayaway AS TrxnLayaway WITH (NOLOCK) ON Trxn.TransactionKey = TrxnLayaway.TransactionKey

LEFT JOIN InvUOMGroupDetail  UOMD WITH (NOLOCK) ON TrxnLayaway.UOMGroupDetailKey=UOMD.UOMGroupDetailKey

LEFT JOIN InvUOM UOM WITH (NOLOCK) ON UOMD.UOMKey=UOM.UOMKey

INNER JOIN TrxTransactionFulfillmentDetail AS FulDet WITH (NOLOCK) ON Trxn.TransactionKey = FulDet.TransactionKey And TrxnLayaway.TransactionLayawayKey = FulDet.SourceDetailKey And FulDet.SourceType = 2 AND FulDet.IsDeleted=0

INNER JOIN CusCustomer AS Cust WITH (NOLOCK) ON Trxn.CustomerKey = Cust.CustomerKey

INNER JOIN InvProduct AS Prod WITH (NOLOCK) ON TrxnLayaway.ProductKey = Prod.ProductKey

INNER JOIN InvProductGroup AS ProdGrp WITH (NOLOCK) ON ProdGrp.ProductGroupKey = Prod.ProductGroupKey

INNER JOIN CusCustomerGroup AS CustGrp WITH (NOLOCK) ON CustGrp.CustomerGroupKey = Cust.CustomerGroupKey

INNER JOIN  RtlStore WITH (NOLOCK) ON Trxn.StoreKey = RtlStore.StoreKey

LEFT OUTER JOIN RtlSubsidiary WITH (NOLOCK) ON RtlStore.SubsidiaryKey = RtlSubsidiary.SubsidiaryKey

LEFT OUTER JOIN RtlPOS WITH (NOLOCK) ON Trxn.POSKey = RtlPOS.POSKey

LEFT OUTER JOIN RtlStore DelStore WITH (NOLOCK) ON DelStore.WarehouseKey = TrxnLayaway.DeliveryWarehouseKey

LEFT OUTER JOIN RtlStore bookStore WITH (NOLOCK) ON bookStore.WarehouseKey = TrxnLayaway.BookingWarehouseKey

Where CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) Between Case When @FromDate = '' Then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @FromDate End And Case When @ToDate = '' then CONVERT(VARCHAR, FulDet.ProductPromisedDate, 112) else @ToDate end --Date Filter                          --Date Filter

And  ((Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @FromProduct End And Case When @ToProduct = '' Then Prod.Id Else @ToProduct End)

    OR

 (Prod.Id Between Case When @FromProduct = '' Then Prod.Id Else @ToProduct End And Case When @ToProduct = '' Then Prod.Id Else @FromProduct End))                       --Product Filter

And  ((Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @FromCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @ToCustomer End)

  OR                 --Customer Filter

 (Cust.Id Between Case When @FromCustomer = '' Then Cust.Id Else @ToCustomer End And Case When @ToCustomer = '' Then Cust.Id Else @FromCustomer End))

AND ISNULL (RtlSubsidiary.Id,'') = Case When @Subsidiary <> '' Then @Subsidiary Else ISNULL(RtlSubsidiary.Id,'') End

AND Trxn.IsVoided='False' AND Trxn.IsSuspended =0

AND (RtlStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@Store)) OR RtlStore.Id IN (CASE WHEN @Store='' THEN RtlStore.Id END))

AND (ISNULL(RtlPOS.Id,'') IN (SELECT DataString FROM [dbo].[fnSplitValues](@POS)) OR ISNULL(RtlPOS.Id,'') IN (CASE WHEN @POS='' THEN ISNULL(RtlPOS.Id,'') END))

AND (ProdGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@ProductGroup)) OR ProdGrp.Id IN (CASE WHEN @ProductGroup='' THEN ProdGrp.Id END))

AND (CustGrp.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@CustomerGroup)) OR CustGrp.Id IN (CASE WHEN @CustomerGroup='' THEN CustGrp.Id END))

AND (DelStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@DelStore)) OR DelStore.Id IN (CASE WHEN @DelStore='' THEN DelStore.Id END))

  AND (bookStore.Id IN (SELECT DataString FROM [dbo].[fnSplitValues](@BookStore)) OR bookStore.Id IN (CASE WHEN @BookStore='' THEN bookStore.Id END))

End

Set NoCount Off

SELECT * From #temp

End

See Also

Related Objects

iVend Database Database

 

 


© 2019 All Rights Reserved.

Send comments on this topic.