USP_SEARCHLIST_ACCOUNTCODE

This provides the ability to search for account codes.

Parameters

Parameter Parameter Type Mode Description
@SHORTID nvarchar(100) IN ID
@DESCRIPTION nvarchar(60) IN Description
@CATEGORYCODE tinyint IN Category
@CATEGORY nvarchar(10) IN
@SUBCATEGORYCODE tinyint IN Subcategory
@SUBCATEGORY nvarchar(10) IN
@CONTRA tinyint IN Contra
@CONTROL tinyint IN Control
@INCLUDEINACTIVE bit IN Include inactive
@ELEMENTNAME nvarchar(100) IN Element name
@MAXROWS smallint IN Input parameter indicating the maximum number of rows to return.
@PDACCOUNTSYSTEMID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_SEARCHLIST_ACCOUNTCODE
(
  @SHORTID nvarchar(100) = null,
  @DESCRIPTION nvarchar(60) = null,
  @CATEGORYCODE tinyint = null,
  @CATEGORY nvarchar(10) = null,
  @SUBCATEGORYCODE tinyint = null,
  @SUBCATEGORY nvarchar(10) = null,
  @CONTRA tinyint = null,
  @CONTROL tinyint = null,
  @INCLUDEINACTIVE bit = 0,
  @ELEMENTNAME nvarchar(100) = null,
  @MAXROWS smallint = 500,
  @PDACCOUNTSYSTEMID uniqueidentifier = null
)
as
    set @SHORTID = coalesce(replace(@SHORTID,'*','%'),'') + '%' ;
    set @DESCRIPTION = coalesce(replace(@DESCRIPTION,'*','%'),'') + '%';

  if @PDACCOUNTSYSTEMID is null
    set @PDACCOUNTSYSTEMID = '4B121C2C-CCE6-440D-894C-EA0DEF80D50B'

  declare @DATAELEMENTS table
  (DATAELEMENTID uniqueidentifier)

  insert into @DATAELEMENTS(DATAELEMENTID)
  select unPvt.DATAELEMENTID
  from
  (select ID, DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
      DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
      DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID
  from dbo.CONTROLACCOUNT) p
  unpivot
  (DATAELEMENTID for dColumn in
      (DATAELEMENT1ID, DATAELEMENT2ID, DATAELEMENT3ID, DATAELEMENT4ID, DATAELEMENT5ID, DATAELEMENT6ID, DATAELEMENT7ID, DATAELEMENT8ID, DATAELEMENT9ID, DATAELEMENT10ID,
      DATAELEMENT11ID, DATAELEMENT12ID, DATAELEMENT13ID, DATAELEMENT14ID, DATAELEMENT15ID, DATAELEMENT16ID, DATAELEMENT17ID, DATAELEMENT18ID, DATAELEMENT19ID, DATAELEMENT20ID,
      DATAELEMENT21ID, DATAELEMENT22ID, DATAELEMENT23ID, DATAELEMENT24ID, DATAELEMENT25ID, DATAELEMENT26ID, DATAELEMENT27ID, DATAELEMENT28ID, DATAELEMENT29ID, DATAELEMENT30ID)) as unPvt

    select top(@MAXROWS)
    PDACCOUNTSEGMENTVALUE.ID,
    PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION,
    PDACCOUNTSEGMENTVALUE.DESCRIPTION,
    ACCOUNTCODE.CATEGORY as CATEGORY,
      ACCOUNTCODE.SUBCATEGORY as SUBCATEGORY,
    case PREVENTDATAENTRY when 0 then 'No' else 'Yes' + 
    case when PREVENTDATAENTRYBEFOREDATE is null then 
      case when PREVENTDATAENTRYAFTERDATE is null then ''
      else ': After ' + convert(nvarchar(10), PREVENTDATAENTRYAFTERDATE, 101)
      end
    else ': Before ' + convert(nvarchar(10), PREVENTDATAENTRYBEFOREDATE, 101)
      + coalesce(', After ' + convert(nvarchar(10), PREVENTDATAENTRYAFTERDATE, 101), '')
    end
  end as PREVENTDATAENTRY,
  case PREVENTPOST when 0 then 'No' else 'Yes' +
    case when PREVENTPOSTBEFOREDATE is null then 
      case when PREVENTPOSTAFTERDATE is null then ''
      else ': After ' + convert(nvarchar(10), PREVENTPOSTAFTERDATE, 101)
      end
    else ': Before ' + convert(nvarchar(10), PREVENTPOSTBEFOREDATE, 101)
      + coalesce(', After ' + convert(nvarchar(10), PREVENTPOSTAFTERDATE, 101), '')
    end
  end as PREVENTPOSTING,
    PDACCOUNTSTRUCTURE.DESCRIPTION as [NAME]
    from 
    dbo.PDACCOUNTSEGMENTVALUE inner join dbo.ACCOUNTCODE
      on dbo.PDACCOUNTSEGMENTVALUE.ID = dbo.ACCOUNTCODE.ID
      inner join dbo.PDACCOUNTSTRUCTURE on PDACCOUNTSTRUCTURE.ID = dbo.PDACCOUNTSEGMENTVALUE.PDACCOUNTSTRUCTUREID
  where
     ((PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION like @SHORTID) or (@SHORTID is null)) and (PDACCOUNTSEGMENTVALUE.DESCRIPTION like @DESCRIPTION or @DESCRIPTION is null)
      and
         (@CONTRA is null or CONTRAACCOUNT = @CONTRA)
         and
         (@CONTROL is null or (@CONTROL = 1 and PDACCOUNTSEGMENTVALUE.ID in (select DATAELEMENTID from @DATAELEMENTS)) or (@CONTROL = 0 and PDACCOUNTSEGMENTVALUE.ID not in (select DATAELEMENTID from @DATAELEMENTS)))
     and
         (@CATEGORYCODE is null or CATEGORYCODE = @CATEGORYCODE)
         and
         ((@SUBCATEGORYCODE is null or @SUBCATEGORYCODE = 0) or (SUBCATEGORYCODE = @SUBCATEGORYCODE)) and
         (ISACTIVE = 1 or @INCLUDEINACTIVE = 1)
   order by 
    PDACCOUNTSEGMENTVALUE.SHORTDESCRIPTION asc