dbo.f_fg_pengeluaran_wip

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Null on Null Input

False

Schema Bound

False

Assembly

Parameters

Name Data Type Length Description
@tgend date 3
@tipebahan varchar 50

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE FUNCTION dbo.f_fg_pengeluaran_wip
( 
 @tgend date, @tipebahan varchar(50) 
)
RETURNS  @mutasibj table (
    ASSY_CODE varchar(100)  primary key
    ,qty_in float  
    )
AS
begin
declare @datesaldo date
declare @stsstockopname int, @dtsto date

set @datesaldo = (select max(date_stock) from [tbl_stock_awal] where typebahan='RM')
set @stsstockopname = 0

if (
    select count(*) from tbl_stock_opname where
 date_stock_opname between @datesaldo and @tgend
 ) > 0
begin
 set @stsstockopname = 1
 set @dtsto=(select MAX([date_stock_opname]) from [tbl_stock_opname] 
 where typebahan='RM' and date_stock_opname between @datesaldo and @tgend)
 --set @datesaldo=dateadd(day, 1, @dtsto)
 set @datesaldo=@dtsto 
end

   ;with
    ct_assy_list(
     part_no 
     ) as
     (
     SELECT 
       [ASSY_CODE] 
           
      FROM [dbo].[tbl_assy_list] where status_aktif='aktif'
      --FROM [dbo].[tbl_assy_list]
       group by 
      [ASSY_CODE] 
     ),
     ctestok_in_date(
     part_no,  qty_in
     
     ) as
     (
     --select part_no, sum(abs(qty_in)) as qty_in
     select part_no, sum(qty_in) as qty_in
     from tbl_data_in_dtl inner join tbl_data_in_hdr on tbl_data_in_hdr.id_data_in_hdr = tbl_data_in_dtl.id_data_in_hdr
     where type_brg=2 and status='APPROVED' and tbl_data_in_hdr.doc_in_date between case when @stsstockopname=1 then @dtsto else @datesaldo end   and dateadd(day, -1, @tgend)
     --where type_brg=2 and status='APPROVED' and tbl_data_in_hdr.doc_in_date between '2016-10-31' and @tgend
     group by  part_no,unit_in
     ) 
    
      
            insert into @mutasibj (ASSY_CODE, qty_in
                  )
    SELECT 
    
     ct_assy_list.part_no
    ,  isnull(ctestok_in_date.qty_in,0) 
    
    from ct_assy_list 
      left outer join ctestok_in_date on ct_assy_list.part_no=ctestok_in_date.part_no
     where  isnull(ctestok_in_date.qty_in,0)>0
     return
end

GO