SET QUOTED_IDENTIFIER, ANSI_NULLS ON GO CREATE procedure dbo.RPT_DYNAMIC_MUTASI_BAHAN_BAKU @PARAMETER xml with encryption as declare @xStsnoheader varchar(2), @xStsno varchar(2), @xStsdes varchar(100) set @xStsnoheader='03' set @xStsno='00'; set @xStsdes='sukses'
SELECT @rowspage=isnull(tempTable.xItem.value('@rowspage', 'int'),0) , @page=isnull(tempTable.xItem.value('@page', 'int'),1) , @desc=isnull(tempTable.xItem.value('@desc', 'bit'),0) , @sort=isnull(tempTable.xItem.value('@sort', 'varchar(255)'),'r1') , @start_date_str =isnull(tempTable.xItem.value('start_date[1]', 'varchar(255)') ,'') , @end_date_str= isnull(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)'),'') FROM @PARAMETER.nodes('param/field') tempTable(xItem) declare @XMLMAPING xml --3011 Report Pabean Masuk Export to XLS False --3012 Report Pabean Keluar Export to XLS False --3013 Report WIP Export to XLS False --3014 Report Mutasi Bahan Baku Export to XLS False --3015 Report Mutasi Barang Jadi Export to XLS False --3016 Report Mutasi Scrap Export to XLS False --3017 Report Mutasi Mesin Export to XLS False if @format ='' set @format='pdf'
declare @xlsreadonly bit set @xlsreadonly=1 declare @additional_id int declare @additional_value int
if @mode=2 and upper(ltrim(rtrim(@format)))<>'PDF' begin if upper(ltrim(rtrim(@format)))='XLS' or upper(ltrim(rtrim(@format)))='XLSX' begin
set @additional_id=3010 set @additional_value= dbo.additional_info(@additional_id) if @additional_value =1 begin set @xlsreadonly=0 end
set @additional_id=3014 set @additional_value= dbo.additional_info(@additional_id) if @additional_value =0 begin set @xStsno='06' set @xStsdes='Module Export to XLS/XLSX belum diaktifkan' goto f end end else begin
set @xStsno='06' set @xStsdes='Module Export to ' + @format + ' belum diaktifkan' goto f
end end
set @start_date=dbo.str_to_date(@start_date_str) set @end_date=dbo.str_to_date(@end_date_str)
declare @PeriodeName varchar(255), @stock_date datetime, @closing_with_stock_opname bit , @closing_stock_opname_id bigint
select top 1 @stock_date= cast(date_stock_opname as date) from dbo.tbl_stock_opname where date_stock_opname < @start_date and typebahan = 'RM' order by date_stock_opname desc
if @stock_date is not null set @closing_with_stock_opname=1 else set @closing_with_stock_opname=0
/*
ifield
iname
iBolehSearch=
iSearchtype= 1= STRING ,2=ANGKA , 3=DATETIME,
iSearchByPassLike = 1 ya , 0 no
SELECT
dt_barang.barang_code AS rID,
dt_barang.barang_name AS r1,
dt_satuan.satuan_name AS r2,
dt_mutasi_barang.saldo_awal AS r3,
dt_mutasi_barang.pemasukan AS r4,
dt_mutasi_barang.pengeluaran AS r5,
dt_mutasi_barang.penyesuaian AS r6,
(dt_mutasi_barang.saldo_awal + dt_mutasi_barang.pemasukan ) -(dt_mutasi_barang.pengeluaran + dt_mutasi_barang.penyesuaian) AS r7,
'-' AS r8,
'-' AS r9,
'-' AS r10
FROM dt_mutasi_barang INNER JOIN
dt_barang ON dt_mutasi_barang.barang_id = dt_barang.barang_id INNER JOIN
dt_satuan ON dt_barang.satuan_code = dt_satuan.satuan_code
WHERE (dt_mutasi_barang.periode_id = @periode_id) AND (dt_barang.barang_category_id = 1 OR
dt_barang.barang_category_id = 2)
*/ declare @TABELDATA varchar(max) set @XMLMAPING = '
'
set @TABELDATA=case when @source='wh' then '
FROM gab_rpt_mutasi_bahanbaku_wh(@start_date,@end_date)
'when @source='aw' then '
FROM gab_rpt_mutasi_bahanbaku_aw(@start_date,@end_date)
' else '
FROM gab_rpt_mutasi_bahanbaku_all(@start_date,@end_date)
' end
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', @PT_NAME as 'nama_pt', @xlsreadonly as 'xls_readonly', dbo.date_to_str(@stock_date) as 'tanggal_stok', CONVERT(varchar(255),NEWID()) as 'report_ID' FROM APP_SETTING
for xml path('detail') )
--OLAH DATA +++++++++++++++++++++
SET @SQLString = N'
declare @adaStokOpname bit
set @adaStokOpname=' + cast(@closing_with_stock_opname as varchar(255)) + '
set @raw=(
SELECT rn,rID,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10 FROM(
SELECT ' + case when @mode =1 then 'ROW_NUMBER() OVER(ORDER BY ' + @OutSortBy + ') as rn, ' else 'ROW_NUMBER() OVER(ORDER BY barang_code) as rn, ' end + '
barang_code AS rID,
barang_name AS r1,
upper(satuan_code) AS r2,
saldo_awal AS r3,
pemasukan AS r4,
pengeluaran AS r5,
penyesuaian AS r6,
saldo_akhir AS r7,
stock_opname AS r8,
selisih AS r9,
keterangan AS r10 ' + @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 print @SQLString
SET @ParmDefinition = N'@start_date date, @end_date date,@raw XML OUTPUT'; EXECUTE sp_executesql @SQLString, @ParmDefinition, @start_date=@start_date, @end_date=@end_date, @raw = @raw OUTPUT
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
--exec RPT_DYNAMIC_MUTASI_BAHAN_BAKU --'12::1dbo.RPT_DYNAMIC_MUTASI_BAHAN_BAKU2::112016080220160902aw' GO