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
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