Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 3353

Re: Sales analysis report

$
0
0

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


Viewing all articles
Browse latest Browse all 3353

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>