Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
| Name | Data Type | Length | Description |
|---|---|---|---|
| @PARAMETER | xml | -1 |
SQL Script
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.MG_PEMI_RPT_BC23
@PARAMETER xml
--with encryption
as
DECLARE @xStsnoheader varchar(2),
@xStsno varchar(2),
@xStsdes varchar(100)
SET @xStsnoheader='03'
SET @xStsno='00';
SET @xStsdes='sukses'
DECLARE @XmlSts xml
DECLARE @raw xml
DECLARE @rowspage int,
@page int,
@desc int,
@sort varchar(255) ,
@date_printed date ,
@start_date date,
@end_date date,
@mode int,
@format varchar(255),
@source varchar(255)
SELECT
@rowspage=isnull(tempTable.xItem.value('@rowspage', 'int'),50) ,
@page=isnull(tempTable.xItem.value('@page', 'int'),1) ,
@desc=isnull(tempTable.xItem.value('@desc', 'bit'),0) ,
@sort=isnull(tempTable.xItem.value('@sort', 'varchar(255)'),'rID') ,
@date_printed= isnull(tempTable.xItem.value('date_printed[1]', 'varchar(255)'),'') ,
@start_date=dbo.str_to_date(tempTable.xItem.value('start_date[1]', 'varchar(255)') ) ,
@end_date=dbo.str_to_date(tempTable.xItem.value('end_date[1]', 'varchar(255)') ) ,
@mode=isnull(tempTable.xItem.value('mode[1]', 'int'),1) ,
@format=isnull(tempTable.xItem.value('format[1]', 'varchar(255)'),1),
@source=isnull(tempTable.xItem.value('source[1]', 'varchar(255)'),'All')
FROM @PARAMETER.nodes('param/field') tempTable(xItem)
declare @PeriodeName varchar(255)
declare @PeriodeName2 varchar(255)
set @PeriodeName= 'PERIODE ' + dbo.dateToIndStr(@start_date) +' S.D ' + dbo.dateToIndStr( @end_date)
set @PeriodeName2= ': ' + dbo.dateToIndStr(@start_date) +' S.D ' + dbo.dateToIndStr( @end_date)
declare @maxdec int
set @maxdec=(SELECT MAX(set_decimal.detail_total) AS Expr1
FROM set_decimal INNER JOIN
enum_bc_type ON set_decimal.bc_type_id = enum_bc_type.bc_type_id
WHERE (enum_bc_type.x = 1))
if @maxdec is null
set @maxdec=4
DECLARE @motherboard_id varchar(255)
DECLARE @XMLValidString varchar(max)
DECLARE @max_dec_detail_unit int
, @max_dec_detail_total int
, @max_dec_detail_bruto int
, @max_dec_detail_netto int
, @max_dec_header_total int
, @max_dec_header_valuta int
, @max_dec_header_tambahan int
, @max_dec_header_diskon int
, @max_dec_header_asuransi int
, @max_dec_header_freight int
IF @max_dec_detail_unit is null
SET @max_dec_detail_unit=4
IF @max_dec_detail_total is null
SET @max_dec_detail_total=4
IF @max_dec_header_total is null
SET @max_dec_header_total=2
IF @max_dec_header_tambahan is null
SET @max_dec_header_tambahan=2
IF @max_dec_header_diskon is null
SET @max_dec_header_diskon=2
IF @max_dec_header_asuransi is null
SET @max_dec_header_asuransi=2
IF @max_dec_header_freight is null
SET @max_dec_header_freight=2
IF @max_dec_header_valuta is null
SET @max_dec_header_valuta=2
IF @max_dec_detail_bruto is null
SET @max_dec_detail_bruto=2
IF @max_dec_detail_netto is null
SET @max_dec_detail_netto=2
IF @format =''
SET @format='pdf'
declare @xlsreadonly bit
set @xlsreadonly=1
declare @additional_id int
declare @additional_value int
DECLARE @XMLMAPING xml
DECLARE @TABELDATA varchar(max)
SET @XMLMAPING =
'
+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_DAFTAR" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_AJU" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="TANGGAL_DAFTAR" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="TANGGAL_MASUK" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="PELABUHAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="KPBC" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="KETERANGAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_INVOICE" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="URAIAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="JUMLAH_SATUAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_SATUAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_VALUTA" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="CIF" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="BRUTO" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="JUMLAH_KEMASAN" >+ case when @mode =2 then '0' else '1' end +
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_KEMASAN" > '
set @TABELDATA=
' FROM dbo.fn_rpt_bc23(''' + convert(varchar(10),@start_date,121) +''',''' + convert(varchar(10),@end_date,121) +''', '''+ @source +
''') '
DECLARE
@OutSortBy varchar(255),
@rumusWhere varchar(max) ,
@search xml,
@fixWhere varchar(2000)
set @fixWhere=''
EXEC [dbo].[MyRUMUSWhereAndSortView]
@PARAMETER =@PARAMETER,
@XMLMAPING = @XMLMAPING,
@fixWhere = @fixWhere,
@Sort =@sort,
@desc = @desc,
@OutSortBy = @OutSortBy OUTPUT,
@rumusWhere = @rumusWhere OUTPUT,
@search = @search OUTPUT;
DECLARE @SQLString nvarchar(MAX);
DECLARE @ParmDefinition nvarchar(MAX);
print @rumusWhere
--OLAH DETAIL +++++++++++++++++++++
declare @jmlrow bigint;
SET @SQLString =
N' set @jmlrow=( SELECT count(*) '
+@TABELDATA
+ @rumusWhere + ' )' ;
SET @ParmDefinition = N'@jmlrow bigint OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@jmlrow = @jmlrow OUTPUT
declare @detail xml
declare @totalpages bigint
declare @SISAROWS bigint
set @SISAROWS =@jmlrow % @rowspage
if @SISAROWS=0
set @totalpages= @jmlrow/@rowspage
else
set @totalpages= ((@jmlrow-@SISAROWS)/@rowspage) + 1
declare @PT_NAME varchar(max)
SELECT TOP (1) @PT_NAME = isnull(CONVERT(varchar(MAX),DecryptByPassphrase('Ap4TanyaT4nya MauT4uAj4 4h' , set_2)),'DEMO ONLY')
FROM dt_app_set
set @detail=(
SELECT top 1
@sort as 'sort' ,
@desc as 'desc' ,
@rowspage as 'rowspage' ,
@jmlrow as 'rows' ,
@totalpages as 'pages' ,
@PeriodeName as 'periode_name',
@PeriodeName2 as 'param1',
@PT_NAME as 'nama_pt',
@maxdec as 'max_decimal_digit_price',
@xlsreadonly as 'xls_readonly',
dbo.additional_info(3110) as 'ada_invoice',
CONVERT(varchar(255),NEWID()) as 'report_ID'
FROM APP_SETTING
for xml path('detail') )
--OLAH DATA +++++++++++++++++++++
SET @SQLString =
N' set @raw=( SELECT rn,rID,r1,r2,r3, r4, r5, r6, r7, r8,r9,r10,r11,r12,r13,r14,r15,r16 FROM( SELECT ' +
case when @mode =2 then
--'ROW_NUMBER() OVER(ORDER BY recieve_date,bc_type_name,doc_date,doc_no) as rn, '
'ROW_NUMBER() OVER(ORDER BY data_source) as rn, '
else
'ROW_NUMBER() OVER(ORDER BY ' + @OutSortBy + ') as rn, '
end +
' id AS rID, NOMOR_AJU AS r1, NOMOR_DAFTAR AS r2, TANGGAL_DAFTAR AS r3, TANGGAL_MASUK AS r4, PELABUHAN AS r5, KPBC AS r6, KETERANGAN AS r7, NOMOR_INVOICE AS r8, URAIAN as r9, JUMLAH_SATUAN AS r10, KODE_SATUAN AS r11, KODE_VALUTA AS r12 , CIF AS r13 , BRUTO AS r14 , JUMLAH_KEMASAN AS r15 , KODE_KEMASAN AS r16 '
+ @TABELDATA + @rumusWhere + ' ) XDATA '
if (@mode =1)
begin
set @SQLString = @SQLString + 'WHERE rN BETWEEN (' + cast((@page) as varchar(max)) +' -1) * ' + cast(@ROWSPAGE as varchar(max)) +
' + 1 AND '+ CAST(@page * @ROWSPAGE as varchar(max)) + ' for xml PATH(''xrow'')) '
end
else
begin
set @SQLString = @SQLString + ' for xml PATH(''xrow'')) '
end
SET @ParmDefinition = N'@raw XML OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@raw = @raw OUTPUT
print @SQLString
f:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
select CAST( (select @XmlSts,@detail,@raw for xml path ('result')
) as XML) as dt;
GO
GO
CREATE PROCEDURE dbo.MG_PEMI_RPT_BC23
@PARAMETER xml
--with encryption
as
DECLARE @xStsnoheader varchar(2),
@xStsno varchar(2),
@xStsdes varchar(100)
SET @xStsnoheader='03'
SET @xStsno='00';
SET @xStsdes='sukses'
DECLARE @XmlSts xml
DECLARE @raw xml
DECLARE @rowspage int,
@page int,
@desc int,
@sort varchar(255) ,
@date_printed date ,
@start_date date,
@end_date date,
@mode int,
@format varchar(255),
@source varchar(255)
SELECT
@rowspage=isnull(tempTable.xItem.value('@rowspage', 'int'),50) ,
@page=isnull(tempTable.xItem.value('@page', 'int'),1) ,
@desc=isnull(tempTable.xItem.value('@desc', 'bit'),0) ,
@sort=isnull(tempTable.xItem.value('@sort', 'varchar(255)'),'rID') ,
@date_printed= isnull(tempTable.xItem.value('date_printed[1]', 'varchar(255)'),'') ,
@start_date=dbo.str_to_date(tempTable.xItem.value('start_date[1]', 'varchar(255)') ) ,
@end_date=dbo.str_to_date(tempTable.xItem.value('end_date[1]', 'varchar(255)') ) ,
@mode=isnull(tempTable.xItem.value('mode[1]', 'int'),1) ,
@format=isnull(tempTable.xItem.value('format[1]', 'varchar(255)'),1),
@source=isnull(tempTable.xItem.value('source[1]', 'varchar(255)'),'All')
FROM @PARAMETER.nodes('param/field') tempTable(xItem)
declare @PeriodeName varchar(255)
declare @PeriodeName2 varchar(255)
set @PeriodeName= 'PERIODE ' + dbo.dateToIndStr(@start_date) +' S.D ' + dbo.dateToIndStr( @end_date)
set @PeriodeName2= ': ' + dbo.dateToIndStr(@start_date) +' S.D ' + dbo.dateToIndStr( @end_date)
declare @maxdec int
set @maxdec=(SELECT MAX(set_decimal.detail_total) AS Expr1
FROM set_decimal INNER JOIN
enum_bc_type ON set_decimal.bc_type_id = enum_bc_type.bc_type_id
WHERE (enum_bc_type.x = 1))
if @maxdec is null
set @maxdec=4
DECLARE @motherboard_id varchar(255)
DECLARE @XMLValidString varchar(max)
DECLARE @max_dec_detail_unit int
, @max_dec_detail_total int
, @max_dec_detail_bruto int
, @max_dec_detail_netto int
, @max_dec_header_total int
, @max_dec_header_valuta int
, @max_dec_header_tambahan int
, @max_dec_header_diskon int
, @max_dec_header_asuransi int
, @max_dec_header_freight int
IF @max_dec_detail_unit is null
SET @max_dec_detail_unit=4
IF @max_dec_detail_total is null
SET @max_dec_detail_total=4
IF @max_dec_header_total is null
SET @max_dec_header_total=2
IF @max_dec_header_tambahan is null
SET @max_dec_header_tambahan=2
IF @max_dec_header_diskon is null
SET @max_dec_header_diskon=2
IF @max_dec_header_asuransi is null
SET @max_dec_header_asuransi=2
IF @max_dec_header_freight is null
SET @max_dec_header_freight=2
IF @max_dec_header_valuta is null
SET @max_dec_header_valuta=2
IF @max_dec_detail_bruto is null
SET @max_dec_detail_bruto=2
IF @max_dec_detail_netto is null
SET @max_dec_detail_netto=2
IF @format =''
SET @format='pdf'
declare @xlsreadonly bit
set @xlsreadonly=1
declare @additional_id int
declare @additional_value int
DECLARE @XMLMAPING xml
DECLARE @TABELDATA varchar(max)
SET @XMLMAPING =
'
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_DAFTAR" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_AJU" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="TANGGAL_DAFTAR" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="TANGGAL_MASUK" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="PELABUHAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="KPBC" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="KETERANGAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="NOMOR_INVOICE" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="URAIAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="JUMLAH_SATUAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_SATUAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_VALUTA" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="CIF" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="BRUTO" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="JUMLAH_KEMASAN" >
'" iSearchtype="1" iSearchByPassLike ="0" iname="KODE_KEMASAN" > '
set @TABELDATA=
' FROM dbo.fn_rpt_bc23(''' + convert(varchar(10),@start_date,121) +''',''' + convert(varchar(10),@end_date,121) +''', '''+ @source +
''') '
DECLARE
@OutSortBy varchar(255),
@rumusWhere varchar(max) ,
@search xml,
@fixWhere varchar(2000)
set @fixWhere=''
EXEC [dbo].[MyRUMUSWhereAndSortView]
@PARAMETER =@PARAMETER,
@XMLMAPING = @XMLMAPING,
@fixWhere = @fixWhere,
@Sort =@sort,
@desc = @desc,
@OutSortBy = @OutSortBy OUTPUT,
@rumusWhere = @rumusWhere OUTPUT,
@search = @search OUTPUT;
DECLARE @SQLString nvarchar(MAX);
DECLARE @ParmDefinition nvarchar(MAX);
print @rumusWhere
--OLAH DETAIL +++++++++++++++++++++
declare @jmlrow bigint;
SET @SQLString =
N' set @jmlrow=( SELECT count(*) '
+@TABELDATA
+ @rumusWhere + ' )' ;
SET @ParmDefinition = N'@jmlrow bigint OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@jmlrow = @jmlrow OUTPUT
declare @detail xml
declare @totalpages bigint
declare @SISAROWS bigint
set @SISAROWS =@jmlrow % @rowspage
if @SISAROWS=0
set @totalpages= @jmlrow/@rowspage
else
set @totalpages= ((@jmlrow-@SISAROWS)/@rowspage) + 1
declare @PT_NAME varchar(max)
SELECT TOP (1) @PT_NAME = isnull(CONVERT(varchar(MAX),DecryptByPassphrase('Ap4TanyaT4nya MauT4uAj4 4h' , set_2)),'DEMO ONLY')
FROM dt_app_set
set @detail=(
SELECT top 1
@sort as 'sort' ,
@desc as 'desc' ,
@rowspage as 'rowspage' ,
@jmlrow as 'rows' ,
@totalpages as 'pages' ,
@PeriodeName as 'periode_name',
@PeriodeName2 as 'param1',
@PT_NAME as 'nama_pt',
@maxdec as 'max_decimal_digit_price',
@xlsreadonly as 'xls_readonly',
dbo.additional_info(3110) as 'ada_invoice',
CONVERT(varchar(255),NEWID()) as 'report_ID'
FROM APP_SETTING
for xml path('detail') )
--OLAH DATA +++++++++++++++++++++
SET @SQLString =
N' set @raw=( SELECT rn,rID,r1,r2,r3, r4, r5, r6, r7, r8,r9,r10,r11,r12,r13,r14,r15,r16 FROM( SELECT ' +
case when @mode =2 then
--'ROW_NUMBER() OVER(ORDER BY recieve_date,bc_type_name,doc_date,doc_no) as rn, '
'ROW_NUMBER() OVER(ORDER BY data_source) as rn, '
else
'ROW_NUMBER() OVER(ORDER BY ' + @OutSortBy + ') as rn, '
end +
' id AS rID, NOMOR_AJU AS r1, NOMOR_DAFTAR AS r2, TANGGAL_DAFTAR AS r3, TANGGAL_MASUK AS r4, PELABUHAN AS r5, KPBC AS r6, KETERANGAN AS r7, NOMOR_INVOICE AS r8, URAIAN as r9, JUMLAH_SATUAN AS r10, KODE_SATUAN AS r11, KODE_VALUTA AS r12 , CIF AS r13 , BRUTO AS r14 , JUMLAH_KEMASAN AS r15 , KODE_KEMASAN AS r16 '
+ @TABELDATA + @rumusWhere + ' ) XDATA '
if (@mode =1)
begin
set @SQLString = @SQLString + 'WHERE rN BETWEEN (' + cast((@page) as varchar(max)) +' -1) * ' + cast(@ROWSPAGE as varchar(max)) +
' + 1 AND '+ CAST(@page * @ROWSPAGE as varchar(max)) + ' for xml PATH(''xrow'')) '
end
else
begin
set @SQLString = @SQLString + ' for xml PATH(''xrow'')) '
end
SET @ParmDefinition = N'@raw XML OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@raw = @raw OUTPUT
print @SQLString
f:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
select CAST( (select @XmlSts,@detail,@raw for xml path ('result')
) as XML) as dt;
GO
Depends On
8Used By
No items found