Hi Nevashan,
Please try the below query which is SP and used in Sales Analysis Reports , So you can get idea about the reference table details.
alter PROCEDURE TmSp_Sales_An_Itm_Det_Y
@ObjectType nChar(3),
@ShowType nChar(3),
@DocDateFrom nvarchar(8) = '19700101',
@DocDateTo nvarchar(8) = '21000101',
@DocDueDateFrom nvarchar(8) = '19700101',
@DocDueDateTo nvarchar(8) = '21000101',
@CardCodeFrom nvarchar(30) = '' ,
@CardCodeTo nvarchar(30) = '',
@CrdGroupCode nvarchar(11) = '',
@ItemCodeFrom nvarchar(40) = '' ,
@ItemCodeTo nvarchar(40) = '',
@ItmGroupCode nvarchar(11) = '',
@ItmProps nvarchar(70) = '',
@CrdProps nvarchar(70 )= '',
@SlpCodeFrom nvarchar(155) = '',
@SlpCodeTo nvarchar(155) = '',
@TaxDateFrom nvarchar(8) = '19700101',
@TaxDateTo nvarchar(8) = '21000101',
@Brand nvarchar(11) ='',
@PrjCode nvarchar(20) ='',
@RptType int = 0,
@cutbyObject nchar(3) = 'NON',
@DspFrznBP char(1) = 'Y',
@DspFrznITM char(1) = 'Y',
@BPLIdSet nvarchar(1000) = '',
@SlpIncludeInactive char(1) = 'N'
With Encryption
AS
if (@ObjectType = 'NON')
begin
return (0)
end
Declare @MultOrDivSysRate nvarchar(4)
Set @MultOrDivSysRate = (Select TOP 1 DirectRate from OADM)
if (@MultOrDivSysRate = 'Y')
Set @MultOrDivSysRate = '/'
else
Set @MultOrDivSysRate = '*'
Declare @Header nvarchar(4)
Declare @Lines nvarchar(255)
Declare @WTLines nvarchar(4)
Declare @opObject nvarchar(4)
Declare @tmpStr nvarchar(4000)
Declare @tmpStr2 nvarchar(4000)
Declare @tmpStr3 nvarchar(4000)
Declare @tmpStr4 nvarchar(4000)
Declare @fromStr nvarchar(4000)
Declare @TotalDiscPerc nvarchar(512)
Declare @TotalDiscPercSC nvarchar(512)
Declare @PropsRel nvarchar(10)
Declare @ii int
Declare @jj int
Declare @GrossBySal nChar(1)
Declare @WhereStr nvarchar(4000)
Declare @DiscSumSysColName nvarchar(20)
Declare @VatSysColName nvarchar(20)
Declare @ObjectColName nvarchar(20)
Declare @QtyFldName nvarchar(100)
Declare @Mult nvarchar(5)
Declare @DpmAffectsTotal bit
set @DpmAffectsTotal = (select case when ('Y' = DpmAffTot) then 1 else 0 end from cinf)
if ((@ShowType = 'SNG' or @ShowType = 'SN1' or @ShowType = 'SN2') OR (@ShowType = 'CAN' AND (@ObjectType = 'RIN' OR @ObjectType = 'RDN')))
Begin
Set @Mult = ' 1 '
end
Else
Begin
Set @Mult = ' -1 '
End
SET ANSI_WARNINGS OFF
SET ARITHIGNORE ON
SET ARITHABORT OFF
IF LEN(@DocDateFrom) = 0
BEGIN
SET @DocDateFrom = '19700101'
END
IF LEN(@DocDateTo) = 0
BEGIN
SET @DocDateTo = '21000101'
END
IF LEN(@DocDueDateFrom) = 0
BEGIN
SET @DocDueDateFrom = '19700101'
END
IF LEN(@DocDueDateTo) = 0
BEGIN
SET @DocDueDateTo = '21000101'
END
IF LEN(@TaxDateFrom) = 0
BEGIN
SET @TaxDateFrom = '19700101'
END
IF LEN(@TaxDateTo) = 0
BEGIN
SET @TaxDateTo = '21000101'
END
if (@ObjectType = 'INV')
Begin
Set @Header = 'OINV'
Set @Lines = 'INV1'
Set @WTLines = @ObjectType + '5'
Set @opObject = 'RIN'
End
if (@ObjectType = 'CSI')
Begin
Set @Header = 'OCSI'
Set @Lines = 'CSI1'
Set @WTLines = @ObjectType + '5'
Set @opObject = 'NON'
End
if (@ObjectType = 'CSV')
Begin
Set @Header = 'OCSV'
Set @Lines = 'CSV1'
Set @WTLines = @ObjectType + '5'
Set @opObject = 'NON'
End
if (@ObjectType = 'RDR')
Begin
Set @Header = 'ORDR'
Set @Lines = 'RDR1'
Set @WTLines = @ObjectType + '5'
Set @opObject = 'NON'
End
if (@ObjectType = 'DLN')
Begin
Set @Header = 'ODLN'
Set @Lines = 'DLN1'
Set @WTLines = @ObjectType + '5'
Set @opObject = 'RDN'
End
if (@ObjectType = 'RIN')
Begin
Set @Header = 'ORIN'
Set @Lines = 'RIN1'
Set @WTLines = @ObjectType + '5'
End
if (@ObjectType = 'RDN')
Begin
Set @Header = 'ORDN'
Set @Lines = 'RDN1'
Set @WTLines = @ObjectType + '5'
End
--[RemoveCIN]
--if (@ObjectType = 'CIN')
--Begin
-- Set @Header = 'OCIN'
-- Set @Lines = 'CIN1'
-- Set @WTLines = @ObjectType + '5'
--End
select @DiscSumSysColName = COL_NAME(OBJECT_ID(@Header), 58)
select @ObjectColName = COL_NAME(OBJECT_ID(@Header), 10)
select @VatSysColName = COL_NAME(OBJECT_ID(@Header), 57)
Set @WhereStr ='
Main.DocDate Between CONVERT(DATETIME, ''' + @DocDateFrom + ''', 112 ) And CONVERT(DATETIME, ''' + @DocDateTo + ''', 112 )
And Main.DocDueDate Between CONVERT(DATETIME, ''' + @DocDueDateFrom + ''', 112 ) And CONVERT(DATETIME, ''' + @DocDueDateTo + ''', 112 )
'
--Card Code range
if LEN (@CardCodeFrom) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Main.CardCode >= N''' + @CardCodeFrom + ''' '
END
if LEN (@CardCodeTo) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Main.CardCode <= N''' + @CardCodeTo + ''' '
END
--Sales person range
if LEN (@SlpCodeFrom) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Slp.SlpName >= N''' + @SlpCodeFrom + ''' '
END
if LEN (@SlpCodeTo) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Slp.SlpName <= N''' + @SlpCodeTo + ''' '
END
--Item Code range
if LEN (@ItemCodeFrom) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Items.ItemCode >= N''' + @ItemCodeFrom + + ''' '
END
if LEN (@ItemCodeTo) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Items.ItemCode <= N''' + @ItemCodeTo + + ''' '
END
Set @WhereStr = @WhereStr + '
And Main.Instance = 0
--And Main.Canceled = ''N''
And Main.TaxDate Between CONVERT(DATETIME, ''' + @TaxDateFrom + ''', 112 ) And CONVERT(DATETIME, ''' + @TaxDateTo + ''', 112 )
'
If(@ObjectType='INV' OR @ObjectType='DLN' OR @ObjectType = 'RIN' OR @ObjectType = 'RDN')
Begin
If(@ShowType = 'CAN')
Begin
Set @WhereStr = @WhereStr + 'And Main.Canceled = ''C'' '
End
Else
Begin
Set @WhereStr = @WhereStr + 'And Main.Canceled <> ''C'' '
End
End
ELSE
Begin
If (@ObjectType <> 'CSI')
Begin
Set @WhereStr = @WhereStr + 'And Main.Canceled = ''N'' '
End
End
--[RemoveCIN]
--if (@ObjectType = 'INV'or @ObjectType = 'CIN')
--Begin
-- Set @WhereStr = @WhereStr + ' And Main.isCrin = ''N'' '
--End
if (@ObjectType = 'RDN')
Begin
Set @WhereStr = @WhereStr + ' And Lines.BaseType <= 0'
end
if (@ObjectType = 'INV'or @ObjectType = 'DLN')
Begin
Set @WhereStr = @WhereStr + ' And Lines.Quantity <> 0'
end
IF LEN(@CrdGroupCode) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And Cards.GroupCode = ' + @CrdGroupCode
END
IF LEN(@CrdProps) > 0
BEGIN
IF (SUBSTRING (@CrdProps, 65, 1) = 'N')
BEGIN
Set @PropsRel = ' OR '
End
Else
BEGIN
Set @PropsRel = ' AND '
End
Set @WhereStr = @WhereStr + ' And ( '
Set @ii = 1
Set @jj = 1
While (@ii <= 64)
Begin
IF (SUBSTRING (@CrdProps, @ii, 1) = 'Y')
BEGIN
if (@jj <> 1)
Begin
Set @WhereStr = @WhereStr + @PropsRel
End
Set @WhereStr = @WhereStr + ' Cards.QryGroup' + Cast (@ii As nChar(2)) + ' = ''Y'''
Set @jj = @jj + 1
End
Set @ii = @ii + 1
End
Set @WhereStr = @WhereStr + ') '
END
IF LEN(@ItmProps) > 0
BEGIN
IF (SUBSTRING (@ItmProps, 65, 1) = 'N')
BEGIN
Set @PropsRel = ' OR '
End
Else
BEGIN
Set @PropsRel = ' AND '
End
Set @WhereStr = @WhereStr + ' And ( '
Set @ii = 1
Set @jj = 1
While (@ii <= 64)
Begin
IF (SUBSTRING (@ItmProps, @ii, 1) = 'Y')
BEGIN if (@jj <> 1)
Begin
Set @WhereStr = @WhereStr + @PropsRel
End
Set @WhereStr = @WhereStr + ' Items.QryGroup' + Cast (@ii As Char(2)) + ' = ''Y'''
Set @jj = @jj + 1
End
Set @ii = @ii + 1
End
Set @WhereStr = @WhereStr + ') '
END
IF LEN(@ItmGroupCode) > 0
BEGIN
Set @WhereStr = @WhereStr + ' And ItmGrp.ItmsGrpCod = ' + @ItmGroupCode
END
if (@ObjectType = 'RIN')
Begin
if(@ShowType <> 'CAN')
Begin
Set @WhereStr = @WhereStr +
'
AND NOT EXISTS (SELECT 1 FROM '+ @ObjectType + '1 T1 WHERE T1.DocEntry = Main.DocEntry
AND T1.BaseType = 203)
'
End
else
Begin
Set @WhereStr = @WhereStr +
'
AND NOT EXISTS (SELECT 1 FROM '+ @ObjectType + '1 T1 ,' + @ObjectType + '1 T2 WHERE T1.DocEntry = Main.DocEntry AND T1.BaseType = 14 AND T1.BaseEntry = T2.DocEntry AND T2.BaseType = 203)
'
End
END
Declare @DpmSUM nVarchar(500);
Declare @DpmSUM_SC nVarchar(500);
set @DpmSUM = '';
set @DpmSUM_SC = '';
if @DpmAffectsTotal = 1
begin
set @DpmSUM = ' + Sum(Distinct(Main.DpmAmnt)) ';
set @DpmSUM_SC = ' + Sum(Distinct(Main.DpmAmntSC)) ';
end
Create Table #TmpPsar (DocEntry nvarchar(20), DocNum nvarchar(20), SlpName nvarchar(155), DocDate DateTime, DocDueDate DateTime, ItemCode nvarchar(20), ItemName nvarchar(100)
, Qty numeric(19,6), NoInvMove char(1), Price numeric(19,6), Sales numeric(19,6), GrossProfit numeric(19,6), GrossPrcnt numeric(19,6), PriceSys numeric(19,6), SalesSys numeric(19,6), GrossProfitSys numeric(19,6),
GrossPrcntSys numeric(19,6), DocType VarChar(10), LineNum int, SalesForPrcnt numeric(19,6), SalesForPrcntSys numeric(19,6))
if (@ObjectType = 'INV' or @ObjectType = 'CSI' or @ObjectType = 'CSV' or @ObjectType = 'RIN')
begin
Set @QtyFldName = ' Lines.Quantity '
end
else
begin
if (@ObjectType = 'DLN')
begin
Set @QtyFldName = ' ( case Lines.BaseType when 13 then 0 else ( Lines.OpenCreQty ) end )'
end
else
begin
Set @QtyFldName = ' Lines.OpenCreQty '
end
end
Set @TotalDiscPerc = '(case (Sum(Distinct(Main.DocTotal)) ' + @DpmSUM + ' + ISNULL(WT.WtSum,0.0) - Sum(Distinct(Main.VatSum)) - Sum(Distinct(Main.TotalExpns)) + Sum(Distinct(Main.DiscSum))) when 0 then 0 else (Sum(Distinct(Main.DiscSum)) / (Sum(Distinct(Main.DocTotal)) + Sum(Distinct(Main.DpmAmnt)) + ISNULL(WT.WtSum,0.0) - Sum(Distinct(Main.VatSum)) - Sum(Distinct(Main.TotalExpns)) + Sum(Distinct(Main.DiscSum)))) end)'
Set @TotalDiscPercSC = '(case (Sum(Distinct(Main.DocTotalSy)) ' + @DpmSUM_SC + ' + ISNULL(WT.WtSumSC,0.0) - Sum(Distinct(Main.' + @VatSysColName + ')) - Sum(Distinct(Main.TotalExpSC)) + Sum(Distinct(Main.' + @DiscSumSysColName + '))) when 0 then 0 else (Sum(Distinct(Main.' + @DiscSumSysColName + ')) / (Sum(Distinct(Main.DocTotalSy)) + Sum(Distinct(Main.DpmAmntSC)) + ISNULL(WT.WtSumSC,0.0) - Sum(Distinct(Main.' + @VatSysColName + ')) - Sum(Distinct(Main.TotalExpSC)) + Sum(Distinct(Main.' + @DiscSumSysColName + ')))) end)'
Set @tmpStr = 'Insert Into #TmpPsar
Select
Main.DocEntry,
Main.DocNum,
Slp.SlpName,
Main.DocDate,
Main.DocDueDate,
Items.ItemCode,
Items.ItemName,
Quantity =
case Lines.usebaseun
when ''Y'' then ' + @QtyFldName + ' * ' + @Mult + '
else (' + @QtyFldName + ' * Lines.NumPerMsr) * ' + @Mult + '
end,
Lines.NoInvtryMv,
Price =
case Lines.TaxOnly
when ''Y'' then 0
else
case Lines.usebaseun
when ''Y'' then (cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity)
else (cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr
end
end, '
If (@ObjectType = 'CSI' OR @ObjectType = 'CSV')
SET @tmpStr = @tmpStr +
'( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
) * ' + @Mult + ' As Sales ,
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
- (Lines.GrossBuyPr *' + @QtyFldName + ' )) * ' + @Mult + ' As GrossProfit,
-1 As GrossPrcnt,
/*System Curr*/
'
ELSE
SET @tmpStr = @tmpStr +
'
-- (cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr As Price ,
Sales =
case Lines.TaxOnly
when ''Y'' then 0
else
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPerc + ' * 100) / 100
)
) * ' + @Mult + '
end,
GrossProfit =
case Lines.TaxOnly
when ''Y'' then (0 - (Lines.GrossBuyPr *' + @QtyFldName + ' )) * ' + @Mult + '
else
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPerc + ' * 100) / 100
) - (Lines.GrossBuyPr *' + @QtyFldName + ' )) * ' + @Mult + '
end,
-1 As GrossPrcnt,
/*System Curr*/
'
If (@ObjectType = 'CSI' OR @ObjectType = 'CSV')
Begin
Set @tmpStr2 = '
((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) ) / Lines.NumPerMsr As PriceSys ,
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
) * ' + @Mult + ' As SalesSys ,
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
- ((Lines.GrossBuyPr / Main.SysRate) *' + @QtyFldName + ' )) * ' + @Mult + ' As GrossProfitSys,
-1 As GrossPrcntSYS,
Main.' + @ObjectColName + ',
Lines.LineNum,
(SELECT ( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
) * ' + @Mult + '
Where (Select ( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
- (Lines.GrossBuyPr *' + @QtyFldName + ' )) * ' + @Mult + ' ) <>0 ) AS GrossCalc,
(SELECT ( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
) * ' + @Mult + '
Where (Select ( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr))
- ((Lines.GrossBuyPr / Main.SysRate) *' + @QtyFldName + ' )) * ' + @Mult + ' ) <>0 ) AS GrossCalcSys
'
Set @tmpStr4 = ' '
End
ELSE
Begin
Set @tmpStr2 = '
PriceSys =
case Lines.TaxOnly
when ''Y'' then 0
else
((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) ) / Lines.NumPerMsr
end,
SalesSys =
case Lines.TaxOnly
when ''Y'' then 0
else
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPercSC + ' * 100) / 100
)
) * ' + @Mult + '
end,
GrossProfitSys =
case Lines.TaxOnly
when ''Y'' then (0 - ((Lines.GrossBuyPr / Main.SysRate) *' + @QtyFldName + ' )) * ' + @Mult + '
else
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPercSC + ' * 100) / 100
) - ((Lines.GrossBuyPr ' + @MultOrDivSysRate + ' Main.SysRate) *' + @QtyFldName + ' )) * ' + @Mult + '
end,
-1 As GrossPrcntSYS,
Main.' + @ObjectColName
Set @tmpStr4 = ',
Lines.LineNum,
GrossCalc =
case Lines.TaxOnly
when ''Y'' then 0
else
(SELECT ( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.LineTotal) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPerc + ' * 100) / 100
)
) * ' + @Mult + ')
end,
GrossCalcSys =
case Lines.TaxOnly
when ''Y'' then 0
else
(SELECT ( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) -
( (((cast (Sum( Lines.TotalSumSy) as numeric (19,6)) / Lines.Quantity) / Lines.NumPerMsr) * (' + @QtyFldName + ' * Lines.NumPerMsr)) *
(' + @TotalDiscPercSC + ' * 100) / 100
)
) * ' + @Mult + ')
end
'
End
Set @tmpStr3 = '
From ' + @Header + ' Main
Inner Join ' + @Lines + ' Lines On Main.DocEntry = Lines.DocEntry
Inner Join OITM Items On Items.ItemCode = Lines.ItemCode
Inner Join OITB ItmGrp On ItmGrp.ItmsGrpCod = Items.ItmsGrpCod
Inner Join OCRD Cards On Cards.CardCode = Main.CardCode
'
if (@RptType = 0)
Begin
Set @tmpStr3 = @tmpStr3 + ' Inner Join OSLP slp On Slp.SlpCode = Main.SlpCode '
End
if (@RptType = 1)
Begin
Set @tmpStr3 = @tmpStr3 + ' Inner Join OSLP slp On Slp.SlpCode = Lines.SlpCode '
End
Set @tmpStr3 = @tmpStr3 + '
LEFT OUTER JOIN
(select WT0.DocEntry, WT0.WtSum, WT0.WtSumSC
from ' + @Header + ' WT0
INNER JOIN ' + @WTLines + ' WT1 on WT1.AbsEntry = WT0.DocEntry
where WT1.Category = ''I''
GROUP BY WT0.DocEntry, WT0.WtSum, WT0.WtSumSC) WT on WT.DocEntry = Main.DocEntry '
IF @DspFrznBP = 'N'
BEGIN
Set @WhereStr = '(' + @WhereStr + ') And ' +
'(Cards.validFor = ''Y'' or (Cards.frozenFor = ''Y'' and (Cards.frozenFrom is not null or Cards.frozenTo is not null)) or (Cards.validFor = ''N'' and Cards.frozenFor = ''N''))'
END
IF @DspFrznITM = 'N'
BEGIN
Set @WhereStr = '(' + @WhereStr + ') And ' +
'(Items.validFor = ''Y'' or (Items.frozenFor = ''Y'' and (Items.frozenFrom is not null or Items.frozenTo is not null)) or (Items.validFor = ''N'' and Items.frozenFor = ''N''))'
END
IF LEN(@BPLIdSet) > 0
BEGIN
Set @WhereStr = @WhereStr + ' AND Main.BPLId IN (' + @BPLIdSet + ') '
END
Set @WhereStr = '
Where ' + @WhereStr + ' Group BY
Main.DocEntry,
Slp.SlpName,
Main.DocEntry,
Main.DocNum,
Main.DocDate,
Items.ItemCode,
Items.ItemName,
Lines.TaxOnly,
Lines.Price,
Main.DocDueDate,
Cards.CardCode,
Cards.CardName,
Lines.GrossBuyPr,
Lines.Quantity,
Main.SysRate,
Lines.LineNum,
Lines.NumPerMsr,
Main.' + @ObjectColName + ',
Lines.usebaseun,
Items.NumInBuy,
Lines.OpenCreQty,
WT.WtSum,
WT.WtSumSC,
Lines.BaseType,
Lines.NoInvtryMv'
IF LEN(@CrdGroupCode) > 0
BEGIN
Set @WhereStr = @WhereStr + ', Cards.GroupCode '
END
IF LEN(@ItmGroupCode) > 0
BEGIN
Set @WhereStr = @WhereStr + ', ItmGrp.ItmsGrpCod '
END
Set @WhereStr = @WhereStr + ' Order By Items.ItemCode, Main.DocEntry, Lines.LineNum'
exec (@tmpStr + @tmpStr2 + @tmpStr4 + @tmpStr3 + @WhereStr)
/* End Here */
--print @tmpStr
--print @tmpStr2
--print @tmpStr3
--print @tmpStr4
--print @WhereStr
If (@ShowType = 'SNG')
Begin
Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y @opObject , 'NST', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
@CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
@TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM, @BPLIdSet
Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y @opObject , 'CAN', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
@CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
@TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM
if (@ObjectType = 'INV')
Begin
--[RemoveCIN]
-- Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y 'CIN' , 'SN1', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
-- @CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
-- @TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM, @BPLIdSet
Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y 'CSI' , 'SN1', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
@CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
@TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM, @BPLIdSet
Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y 'CSV' , 'SN1', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
@CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
@TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM, @BPLIdSet
End
End
If(@ShowType <> 'CAN' AND (@ObjectType = 'INV' or @ObjectType = 'DLN'))
Begin
Insert Into #TmpPsar EXEC TmSp_Sales_An_Itm_Det_Y @ObjectType , 'CAN', @DocDateFrom ,@DocDateTo, @DocDueDateFrom ,@DocDueDateTo,
@CardCodeFrom, @CardCodeTo, @CrdGroupCode, @ItemCodeFrom, @ItemCodeTo, @ItmGroupCode, @ItmProps, @CrdProps, @SlpCodeFrom, @SlpCodeTo,
@TaxDateFrom, @TaxDateTo, @Brand, @PrjCode, @RptType, @cutbyObject, @DspFrznBP, @DspFrznITM
End
select * From #TmpPsar
Rgds,
Kamlesh Naware