dbo.f_mutasi_fg_0

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
@tgstart date 3
@tgend date 3
@tipebahan varchar 50

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
create FUNCTION dbo.f_mutasi_fg_0
( 
 @tgstart date, @tgend date, @tipebahan varchar(50) 
)
RETURNS  @mutasibj table (
    part_no varchar(100) null
    ,part_name varchar(100) null
    ,stock_awal float null
    ,qty_in float null
    ,qty_out float null
    ,sisa float null
    ,unit varchar(100) null
    ,qty_in_by_date float null
    ,qty_out_by_date float null
    ,sisa_by_date float null
    )
AS
begin
declare @datesaldo date
set @datesaldo = (select max(date_stock) from [tbl_stock_awal] where typebahan='FG')
   ;with
    ct_assy_list(
     part_no,part_name
     ) as
     (
     SELECT 
       [ASSY_CODE]
        ,[ASSY_NO]
           
       FROM [DB_PEMI].[dbo].[tbl_assy_list]
       group by 
      [ASSY_CODE]
        ,[ASSY_NO]
     ),
      ctestokawal(part_no, qty) as (
     SELECT 
        [part_no]
        ,[qty]
     
       FROM [DB_PEMI].[dbo].[tbl_stock_awal]
       where typebahan = 'FG' and date_stock=@datesaldo 
     ),
     ctestok_trxawal(
     part_no, part_name, qty_in, unit
     
     ) as
     (
     select part_no, part_name, sum(abs(qty_in)), unit_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 @tgstart and @tgend
     group by  part_no, part_name,unit_in
     ),
     ctest_trxoutawal(part_no, part_name,qty_out, unit) as (
     SELECT     assy_code, part_name_customs, sum(qty), unit_out
     FROM         tbl_data_out_dtl 
     where type_items='FG' and [out_date] between @tgstart and @tgend
     group by
     assy_code, part_name_customs,unit_out
     ),
    
      ctestok_in_date(
     part_no, part_name, qty_in
     
     ) as
     (
     select part_no, part_name, sum(abs(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   @datesaldo and dateadd(day, -1, @tgstart)
     group by  part_no, part_name,unit_in
     ),
     ctest_trxout_bydate(part_no, part_name,qty_out, unit) as (
     SELECT     assy_code, part_name_customs, sum(qty), unit_out
     FROM         tbl_data_out_dtl
     where type_items='FG' and out_date between  @datesaldo and dateadd(day, -1, @tgstart)
     group by
     assy_code, part_name_customs,unit_out
     )
    
      
                  insert into @mutasibj (part_no,part_name,stock_awal,qty_in,qty_out,sisa,unit,qty_in_by_date,qty_out_by_date,sisa_by_date 
                  )
    SELECT 
    
     ct_assy_list.part_no
     , ct_assy_list.part_name
    ,isnull(ctestokawal.qty,0) + (isnull(ctestok_in_date.qty_in, 0) - isnull(ctest_trxout_bydate.qty_out,0)) as stok_awal
    ,isnull(ctestok_trxawal.qty_in, 0) as qty_in
    ,isnull(ctest_trxoutawal.qty_out, 0) as qty_out
    
    ,(isnull(ctestokawal.qty,0) + (isnull(ctestok_trxawal.qty_in,0)) -  isnull(ctest_trxoutawal.qty_out, 0) ) as sisa
    
    ,'PCS' as unit --(isnull(ctestok_trxawal.unit, 'PCS')) as unit
    ,isnull(ctestok_in_date.qty_in,0) as qty_in_by_date
    ,isnull(ctest_trxout_bydate.qty_out,0) as qty_out_by_date
    
    ,(isnull(ctestokawal.qty,0) + ( ( isnull(ctestok_in_date.qty_in,0) - isnull(ctest_trxout_bydate.qty_out,0)) ) + (isnull(ctestok_trxawal.qty_in, 0) - isnull(ctest_trxoutawal.qty_out, 0))) as sisa_by_date 
     from ct_assy_list 
     left outer join ctestok_trxawal on ct_assy_list.part_no = ctestok_trxawal.part_no
     left outer join ctest_trxoutawal on ct_assy_list.part_no=ctest_trxoutawal.part_no
     left outer join ctestokawal on ct_assy_list.part_no=ctestokawal.part_no
     left outer join ctestok_in_date on ct_assy_list.part_no=ctestok_in_date.part_no
     left outer join ctest_trxout_bydate on ct_assy_list.part_no=ctest_trxout_bydate.part_no
     
    return
end
GO

Used By

No items found