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 |
SQL Script
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE FUNCTION dbo.aw_fn_mutasi_wip_baru
(
@tgstart date, @tgend date
)
RETURNS @mutasiwip table (
kodebarang varchar(100) null
,namabarang varchar(100) null
,qty_saldoawal int null
,qty_in int null
,qty_out int null
,saldo_akhir int null
,stock_opname int null
,selisih int null
,unit varchar(100) null
)
AS
begin
declare @datesaldoawal date
declare @datasto integer
declare @datapenyesuaian integer
declare @datafgout integer
declare @datawireloss integer
declare @datawireloss2 integer
declare @datacopperloss integer
declare @datacopperloss2 integer
-- 07012018
declare @databpbj integer
set @databpbj = (SELECT SUM( ttlQtyMeter * copper_kgkm )/ 1000 FROM AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @tgstart and @tgend
AND ttlQtyMeter * copper_kgkm >0
)
--
set @datesaldoawal=(select top 1 tgl_sto from AW.DB_PASI_20201106.dbo.tbl_stock_wip_copper order by tgl_sto desc)
set @datawireloss=(select (sum(isnull(total_wire,0)) * 0.75) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @tgstart and @tgend and kdbrg='scr01' group by kdbrg )
set @datacopperloss=(select sum(isnull(total_copper,0)) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @tgstart and @tgend and kdbrg='scr02' group by kdbrg )
set @datawireloss2=(select (sum(isnull(total_wire,0)) * 0.75) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg='scr01' group by kdbrg )
set @datacopperloss2=(select sum(isnull(total_copper,0)) from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg='scr02' group by kdbrg )
;with
ct_kodebrg (kodebarang,namabarang,satuan) as (select kdbrg, nama_barang, satuan from AW.DB_PASI_20201106.dbo.tbl_master_material_code where kdbrg='VA001' group by kdbrg,nama_barang,satuan),
ct_saldo_awal (kodebarang,qty) as (select kodebarang,sum(qty) from aw_fn_saldo_awal_wip(@tgstart,@tgend) group by kodebarang),
--ct_saldo_awal (kodebarang,qty) as (select kdbrg,sum(qty) from tbl_stock_wip_copper where tgl_sto between @tgstart and @tgend group by kdbrg),
ct_brg_in (kodebarang,qty) as (select kode_brg,sum(isnull(jumlah,0)) from AW.DB_PASI_20201106.dbo.tbl_pemasukan_barang where tgl_receive between @tgstart and @tgend and kode_brg='VA001' group by kode_brg),
ct_brg_in_ceisa (kodebarang,qty) as (select KODE_BARANG,sum(isnull(JUMLAH_SATUAN,0)) from AW.DB_PASI_20201106.dbo.dv_data_pemasukan_ceisa_va001 where receive_date between @tgstart and @tgend group by KODE_BARANG),
ct_brg_out (kodebarang,qty) as (select kdbrg2,((sum(isnull(ttl_copper,0))+ isnull(@datawireloss,0)+isnull(@datacopperloss,0))* 0.5) from AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @tgstart and @tgend and kdbrg2='VA001' group by kdbrg2),
ct_stock_opname (kodebarang,qty) as (select kode_barang,sum(isnull(qty,0)) from AW.DB_PASI_20201106.dbo.tbl_stock_opname_bb where tgl_sto between @tgstart and @tgend group by kode_barang),
ct_brg_in_awal_periode (kodebarang,qty) as (select kode_brg,sum(isnull(jumlah,0)) from AW.DB_PASI_20201106.dbo.tbl_pemasukan_barang where tgl_receive between @datesaldoawal and dateadd(day,-1, @tgstart) and kode_brg='VA001' group by kode_brg),
ct_brg_in_awal_periode_ceisa (kodebarang,qty) as (select KODE_BARANG,sum(isnull(JUMLAH_SATUAN,0)) from AW.DB_PASI_20201106.dbo.dv_data_pemasukan_ceisa_va001 where receive_date between @datesaldoawal and dateadd(day,-1, @tgstart) group by KODE_BARANG ),
ct_brg_out_awal_periode (kodebarang, qty) as (select kdbrg2,((sum(isnull(ttl_copper,0)) + isnull(@datawireloss2,0)+ isnull(@datacopperloss2,0))* 0.5) from AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg2='VA001' group by kdbrg2)
insert into @mutasiwip (kodebarang,namabarang,qty_saldoawal,qty_in,qty_out,saldo_akhir,stock_opname,selisih,unit )
select ct_kodebrg.kodebarang, ct_kodebrg.namabarang,
isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) - isnull(ct_brg_out_awal_periode.qty,0) as qty_saldoawal,
(isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0)) as qty_in,
isnull(ct_brg_out.qty,0) as qty_out,
--(isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) - isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) - isnull(ct_brg_out.qty,0) as saldo_akhir,
case
when (select top 1 qty from AW.DB_PASI_20201106.dbo.tbl_stock_opname_wip where tgl_sto between @tgstart and @tgend) is not null then (select top 1 qty from AW.DB_PASI_20201106.dbo.tbl_stock_opname_wip where tgl_sto between @tgstart and @tgend order by tgl_sto desc)
else (isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) + isnull(ct_brg_in_awal_periode_ceisa.qty,0) - isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0) - isnull(ct_brg_out.qty,0) end as saldo_akhir,
isnull(ct_stock_opname.qty,0) as qty_out,
(case when @datasto is null then 0
else (isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) + isnull(ct_brg_in_awal_periode_ceisa.qty,0)- isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0) - isnull(ct_brg_out.qty,0) end),
ct_kodebrg.satuan as unit
from ct_kodebrg
left outer join ct_saldo_awal on ct_kodebrg.kodebarang = ct_saldo_awal.kodebarang
left outer join ct_brg_in on ct_kodebrg.kodebarang = ct_brg_in.kodebarang
left outer join ct_brg_in_ceisa on ct_kodebrg.kodebarang = ct_brg_in_ceisa.kodebarang
left outer join ct_brg_out on ct_kodebrg.kodebarang = ct_brg_out.kodebarang
left outer join ct_brg_in_awal_periode on ct_kodebrg.kodebarang = ct_brg_in_awal_periode.kodebarang
left outer join ct_brg_in_awal_periode_ceisa on ct_kodebrg.kodebarang = ct_brg_in_awal_periode_ceisa.kodebarang
left outer join ct_brg_out_awal_periode on ct_kodebrg.kodebarang = ct_brg_out_awal_periode.kodebarang
left outer join ct_stock_opname on ct_kodebrg.kodebarang = ct_stock_opname.kodebarang
return
end
GO
GO
CREATE FUNCTION dbo.aw_fn_mutasi_wip_baru
(
@tgstart date, @tgend date
)
RETURNS @mutasiwip table (
kodebarang varchar(100) null
,namabarang varchar(100) null
,qty_saldoawal int null
,qty_in int null
,qty_out int null
,saldo_akhir int null
,stock_opname int null
,selisih int null
,unit varchar(100) null
)
AS
begin
declare @datesaldoawal date
declare @datasto integer
declare @datapenyesuaian integer
declare @datafgout integer
declare @datawireloss integer
declare @datawireloss2 integer
declare @datacopperloss integer
declare @datacopperloss2 integer
-- 07012018
declare @databpbj integer
set @databpbj = (SELECT SUM( ttlQtyMeter * copper_kgkm )/ 1000 FROM AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @tgstart and @tgend
AND ttlQtyMeter * copper_kgkm >0
)
--
set @datesaldoawal=(select top 1 tgl_sto from AW.DB_PASI_20201106.dbo.tbl_stock_wip_copper order by tgl_sto desc)
set @datawireloss=(select (sum(isnull(total_wire,0)) * 0.75) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @tgstart and @tgend and kdbrg='scr01' group by kdbrg )
set @datacopperloss=(select sum(isnull(total_copper,0)) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @tgstart and @tgend and kdbrg='scr02' group by kdbrg )
set @datawireloss2=(select (sum(isnull(total_wire,0)) * 0.75) as qty from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg='scr01' group by kdbrg )
set @datacopperloss2=(select sum(isnull(total_copper,0)) from AW.DB_PASI_20201106.dbo.tbl_real_scrap_hdr where date_start between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg='scr02' group by kdbrg )
;with
ct_kodebrg (kodebarang,namabarang,satuan) as (select kdbrg, nama_barang, satuan from AW.DB_PASI_20201106.dbo.tbl_master_material_code where kdbrg='VA001' group by kdbrg,nama_barang,satuan),
ct_saldo_awal (kodebarang,qty) as (select kodebarang,sum(qty) from aw_fn_saldo_awal_wip(@tgstart,@tgend) group by kodebarang),
--ct_saldo_awal (kodebarang,qty) as (select kdbrg,sum(qty) from tbl_stock_wip_copper where tgl_sto between @tgstart and @tgend group by kdbrg),
ct_brg_in (kodebarang,qty) as (select kode_brg,sum(isnull(jumlah,0)) from AW.DB_PASI_20201106.dbo.tbl_pemasukan_barang where tgl_receive between @tgstart and @tgend and kode_brg='VA001' group by kode_brg),
ct_brg_in_ceisa (kodebarang,qty) as (select KODE_BARANG,sum(isnull(JUMLAH_SATUAN,0)) from AW.DB_PASI_20201106.dbo.dv_data_pemasukan_ceisa_va001 where receive_date between @tgstart and @tgend group by KODE_BARANG),
ct_brg_out (kodebarang,qty) as (select kdbrg2,((sum(isnull(ttl_copper,0))+ isnull(@datawireloss,0)+isnull(@datacopperloss,0))* 0.5) from AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @tgstart and @tgend and kdbrg2='VA001' group by kdbrg2),
ct_stock_opname (kodebarang,qty) as (select kode_barang,sum(isnull(qty,0)) from AW.DB_PASI_20201106.dbo.tbl_stock_opname_bb where tgl_sto between @tgstart and @tgend group by kode_barang),
ct_brg_in_awal_periode (kodebarang,qty) as (select kode_brg,sum(isnull(jumlah,0)) from AW.DB_PASI_20201106.dbo.tbl_pemasukan_barang where tgl_receive between @datesaldoawal and dateadd(day,-1, @tgstart) and kode_brg='VA001' group by kode_brg),
ct_brg_in_awal_periode_ceisa (kodebarang,qty) as (select KODE_BARANG,sum(isnull(JUMLAH_SATUAN,0)) from AW.DB_PASI_20201106.dbo.dv_data_pemasukan_ceisa_va001 where receive_date between @datesaldoawal and dateadd(day,-1, @tgstart) group by KODE_BARANG ),
ct_brg_out_awal_periode (kodebarang, qty) as (select kdbrg2,((sum(isnull(ttl_copper,0)) + isnull(@datawireloss2,0)+ isnull(@datacopperloss2,0))* 0.5) from AW.DB_PASI_20201106.dbo.tbl_finish_goods where tglprod between @datesaldoawal and dateadd(day,-1, @tgstart) and kdbrg2='VA001' group by kdbrg2)
insert into @mutasiwip (kodebarang,namabarang,qty_saldoawal,qty_in,qty_out,saldo_akhir,stock_opname,selisih,unit )
select ct_kodebrg.kodebarang, ct_kodebrg.namabarang,
isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) - isnull(ct_brg_out_awal_periode.qty,0) as qty_saldoawal,
(isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0)) as qty_in,
isnull(ct_brg_out.qty,0) as qty_out,
--(isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) - isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) - isnull(ct_brg_out.qty,0) as saldo_akhir,
case
when (select top 1 qty from AW.DB_PASI_20201106.dbo.tbl_stock_opname_wip where tgl_sto between @tgstart and @tgend) is not null then (select top 1 qty from AW.DB_PASI_20201106.dbo.tbl_stock_opname_wip where tgl_sto between @tgstart and @tgend order by tgl_sto desc)
else (isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) + isnull(ct_brg_in_awal_periode_ceisa.qty,0) - isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0) - isnull(ct_brg_out.qty,0) end as saldo_akhir,
isnull(ct_stock_opname.qty,0) as qty_out,
(case when @datasto is null then 0
else (isnull(ct_saldo_awal.qty,0) + isnull(ct_brg_in_awal_periode.qty,0) + isnull(ct_brg_in_awal_periode_ceisa.qty,0)- isnull(ct_brg_out_awal_periode.qty,0)) + isnull(ct_brg_in.qty,0) + isnull(ct_brg_in_ceisa.qty,0) - isnull(ct_brg_out.qty,0) end),
ct_kodebrg.satuan as unit
from ct_kodebrg
left outer join ct_saldo_awal on ct_kodebrg.kodebarang = ct_saldo_awal.kodebarang
left outer join ct_brg_in on ct_kodebrg.kodebarang = ct_brg_in.kodebarang
left outer join ct_brg_in_ceisa on ct_kodebrg.kodebarang = ct_brg_in_ceisa.kodebarang
left outer join ct_brg_out on ct_kodebrg.kodebarang = ct_brg_out.kodebarang
left outer join ct_brg_in_awal_periode on ct_kodebrg.kodebarang = ct_brg_in_awal_periode.kodebarang
left outer join ct_brg_in_awal_periode_ceisa on ct_kodebrg.kodebarang = ct_brg_in_awal_periode_ceisa.kodebarang
left outer join ct_brg_out_awal_periode on ct_kodebrg.kodebarang = ct_brg_out_awal_periode.kodebarang
left outer join ct_stock_opname on ct_kodebrg.kodebarang = ct_stock_opname.kodebarang
return
end
GO