dbo.MG_MONITORING_SUAI

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

True

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_MONITORING_SUAI
@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) ,
     @sa_id bigint,
  @inv_file varchar(255) ,
    @date_printed date ,
   @mode int,
  @format 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') ,
 @sa_id=isnull(tempTable.xItem.value('sa_id[1]', 'bigint'),-1),
 @date_printed= isnull(tempTable.xItem.value('date_printed[1]', 'varchar(255)'),'')   ,
 @mode=isnull(tempTable.xItem.value('mode[1]', 'int'),1)  ,
  @format=isnull(tempTable.xItem.value('format[1]', 'varchar(255)'),'') ,
 @inv_file = isnull(tempTable.xItem.value('inv_file[1]', 'varchar(255)'),'')
FROM @PARAMETER.nodes('param/field')  tempTable(xItem)

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 @XMLMAPING xml
DECLARE @TABELDATA varchar(max)
SET @XMLMAPING =
' + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="2" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.sa_id"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_no"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="3" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_date"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.order_no"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="3" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.etd_port_date"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.kind"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.wsize"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.article_code"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="2" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.qty_aju"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="2" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.qty_actual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="2" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.outstanding"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_no_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="3" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_date_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="3" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.etd_port_date_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.order_no_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.kind_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.wsize_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="1" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.cust_part_aktual"> + case when @mode =1 then '1' ELSE '0' end +
'" iSearchtype="2" iSearchByPassLike="0" iname="[DB_PASI_NEW].dbo.vw_suai_mon.qty_aktual"> '

 SET @TABELDATA=
' FROM [DB_PASI_NEW].dbo.vw_suai_mon ' 

DECLARE  
 
  @OutSortBy varchar(255),
  @rumusWhere varchar(max) ,
     @search xml,
     @fixWhere varchar(2000)
   
      SET @fixWhere='sa_id = '''+CAST(@sa_id AS VARCHAR(50) )+''' and'
  
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);
 



SET @SQLString =
'SELECT ROW_NUMBER() OVER(PARTITION BY [DB_PASI_NEW].dbo.vw_suai_mon.article_code ,[DB_PASI_NEW].dbo.vw_suai_mon.qty_aju, [DB_PASI_NEW].dbo.vw_suai_mon.qty_actual, [DB_PASI_NEW].dbo.vw_suai_mon.outstanding ORDER BY [DB_PASI_NEW].dbo.vw_suai_mon.article_code ,[DB_PASI_NEW].dbo.vw_suai_mon.qty_aju, [DB_PASI_NEW].dbo.vw_suai_mon.qty_actual, [DB_PASI_NEW].dbo.vw_suai_mon.outstanding) as rgroup , [DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_no , [DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_date , [DB_PASI_NEW].dbo.vw_suai_mon.order_no , [DB_PASI_NEW].dbo.vw_suai_mon.etd_port_date , [DB_PASI_NEW].dbo.vw_suai_mon.kind , [DB_PASI_NEW].dbo.vw_suai_mon.wsize , [DB_PASI_NEW].dbo.vw_suai_mon.article_code , [DB_PASI_NEW].dbo.vw_suai_mon.qty_aju , [DB_PASI_NEW].dbo.vw_suai_mon.qty_actual , [DB_PASI_NEW].dbo.vw_suai_mon.outstanding , [DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_no_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.sa_invoice_date_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.etd_port_date_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.order_no_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.kind_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.wsize_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.cust_part_aktual , [DB_PASI_NEW].dbo.vw_suai_mon.qty_aktual , COUNT([DB_PASI_NEW].dbo.vw_suai_mon.sa_id) OVER (PARTITION BY [DB_PASI_NEW].dbo.vw_suai_mon.article_code ,[DB_PASI_NEW].dbo.vw_suai_mon.qty_aju, [DB_PASI_NEW].dbo.vw_suai_mon.qty_actual, [DB_PASI_NEW].dbo.vw_suai_mon.outstanding) '+ @TABELDATA + @rumusWhere    
+ 
' ORDER BY [DB_PASI_NEW].dbo.vw_suai_mon.article_code ,[DB_PASI_NEW].dbo.vw_suai_mon.qty_aju, [DB_PASI_NEW].dbo.vw_suai_mon.qty_actual, [DB_PASI_NEW].dbo.vw_suai_mon.outstanding '
   
DECLARE @tableData tableOutSUAI_BC25
INSERT into @tableData (
  urutgroup  
  ,sa_invoice_no
  , sa_invoice_date
  ,order_no
  , etd_port_date
  , kind
  , wsize
  , article_code
  , qty_aju
  , qty_actual
  , outstanding
  , sa_invoice_no_aktual
  , sa_invoice_date_aktual
  , etd_port_date_aktual
  , order_no_aktual
  , kind_aktual
  , wsize_aktual
  , cust_part_aktual 
  , qty_aktual 
  ,row_span  
)
 
 exec (@SQLString)


UPDATE @tableData 
SET 
  sa_invoice_no =null
  , sa_invoice_date =NULL
        , order_no = null
  , etd_port_date =null
  , kind =null
  , wsize =null
  , article_code =null
  , qty_aju =null
  , qty_actual =null
  , outstanding  =null
  , row_span =0
where not(urutgroup=1)
  
DECLARE @table_penomoran BCPDokPenomoranSuai

INSERT into @table_penomoran
select nomorurut from @tableData
where urutgroup=1


DECLARE @jmlrow bigint
SET @jmlrow=(select count(*) from @table_penomoran)

DECLARE @jmldetail bigint
SET @jmldetail=(select count(*) from @tableData)


DECLARE @detail xml 

  SET  @detail=(
    SELECT  top 1   
   @sort as 'sort' , 
   @desc as 'desc' , 
   @rowspage as 'rowspage' , 
   @jmlrow as 'rows' , 
   1 as 'pages' ,
   @max_dec_detail_unit as 'max_dec_detail_unit',
   @max_dec_detail_total as 'max_dec_detail_total',
   @max_dec_header_total as 'max_dec_header_total',
    @max_dec_detail_netto as 'max_dec_detail_bruto',
    @max_dec_detail_bruto as 'max_dec_detail_netto',
    CONVERT(varchar(255),NEWID()) as 'report_ID' ,
   @inv_file AS 'sa_file'
    for xml path('detail') )
    
 
SET @SQLString = 
N' SET @raw = (SELECT tableData.nomorurut as rID , table_penomoran.nomorurut as rno , tableData.urutgroup as rn , tableData.urutgroup as r19 , tableData.row_span as rspan ,tableData.sa_invoice_no as r1 , ' + case when @mode=1 then  'dbo.date_to_str(tableData.sa_invoice_date)' ELSE 'tableData.sa_invoice_date' end + 
' AS r2 ,tableData.order_no as r3 , ' + case when @mode=1 then  'dbo.date_to_str(tableData.etd_port_date)' ELSE 'tableData.etd_port_date' end + 
' AS r4 , tableData.kind as r5 , tableData.wsize as r6 , tableData.article_code as r7 , ' + case when @mode=1 then  'cast(tableData.qty_aju as decimal(18,'+ cast(@max_dec_detail_unit as varchar(255)) +'))' ELSE 'tableData.qty_aju' end + 
' AS r8 , ' + case when @mode=1 then  'cast(tableData.qty_actual as decimal(18,'+ cast(@max_dec_detail_unit as varchar(255)) +'))' ELSE 'tableData.qty_actual' end + 
' AS r9 , ' + case when @mode=1 then  'cast(tableData.outstanding as decimal(18,'+ cast(@max_dec_detail_netto as varchar(255)) +'))' ELSE 'tableData.outstanding' end + 
' AS r10 , tableData.sa_invoice_no_aktual as r11 , ' + case when @mode=1 then  'dbo.date_to_str(tableData.sa_invoice_date_aktual)' ELSE 'tableData.sa_invoice_date_aktual' end + 
' AS r12 , ' + case when @mode=1 then  'dbo.date_to_str(tableData.etd_port_date_aktual)' ELSE 'tableData.etd_port_date_aktual' end + 
' AS r13 , tableData.order_no_aktual as r14 , tableData.kind_aktual as r15 , tableData.wsize_aktual as r16 , tableData.cust_part_aktual as r17 , ' + case when @mode=1 then  'cast(tableData.qty_aktual as decimal(18,'+ cast(@max_dec_detail_netto as varchar(255)) +'))' ELSE 'tableData.qty_aktual' end + 
' AS r18 FROM @tableData AS tableData LEFT OUTER JOIN @table_penomoran AS table_penomoran ON tableData.nomorurut = table_penomoran.nomorurut_tableData for xml path(''xrow'') ) '

SET @ParmDefinition = 
N'@tableData tableOutSUAI_BC25 READONLY, @table_penomoran BCPDokPenomoranSuai READONLY, @raw XML OUTPUT'; 

EXECUTE sp_executesql  
@SQLString
, @ParmDefinition 
, @tableData=@tableData 
, @table_penomoran=@table_penomoran 
, @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

Used By

No items found