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.f_mutasi_wip
(
@tgstart date, @tgend date
)
RETURNS @mutasiwip table (
part_no varchar(100) null
,part_name varchar(100) null
,qty float null
,qty_bom float null
,qty_pakebom float null
,unit varchar(100) null
)
AS
begin
;with cteparths(part_no, part_name_customs, satuan)
as
(
select [kode_barang]
,[nama_barang]
,[satuan]
FROM [dbo].[tbl_kode_barang]
),
ctedata_out(
part_name_customs, qty
) as
(
SELECT
[part_name_customs]
,sum([qty]) as qty
FROM [tbl_data_out_dtl]
inner join [dbo].[tbl_data_out_hdr] on [tbl_data_out_dtl].id_data_out_hdr=[tbl_data_out_hdr].id_data_out_hdr
where [type_items]='RM' and [tbl_data_out_hdr].doc_out_to_id=1 and out_date between @tgstart and @tgend
and [dbo].[tbl_data_out_hdr].approve_date is not null
group by [part_name_customs]
),
cte_fg_bom(
part_name_customs, qty ) as
(
select partnamecustom, qty from [dbo].[f_fg_bom] (@tgstart, @tgend)
)
insert into @mutasiwip (
part_no
,part_name
,qty
,qty_bom
,qty_pakebom
,unit
)
select cteparths.part_no, cteparths.part_name_customs,
(case when (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) < 0 then 0 else (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) end) as qty -- (tanpa kurag bom) isnull(sum(ctedata_out.qty),0) as qty
,isnull(sum(cte_fg_bom.qty),0) as qty_bom
,(case when (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) < 0 then 0 else (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) end) as qty_pakebom
,cteparths.satuan as unit
from cteparths
left outer join ctedata_out on ctedata_out.part_name_customs = cteparths.part_name_customs
left outer join cte_fg_bom on cte_fg_bom.part_name_customs = cteparths.part_name_customs
group by
cteparths.part_no, cteparths.satuan, cteparths.part_name_customs
return
end
--go
--select * from [dbo].[f_mutasi_wip] ('2014-05-01', '2014-08-31')
GO
GO
CREATE FUNCTION dbo.f_mutasi_wip
(
@tgstart date, @tgend date
)
RETURNS @mutasiwip table (
part_no varchar(100) null
,part_name varchar(100) null
,qty float null
,qty_bom float null
,qty_pakebom float null
,unit varchar(100) null
)
AS
begin
;with cteparths(part_no, part_name_customs, satuan)
as
(
select [kode_barang]
,[nama_barang]
,[satuan]
FROM [dbo].[tbl_kode_barang]
),
ctedata_out(
part_name_customs, qty
) as
(
SELECT
[part_name_customs]
,sum([qty]) as qty
FROM [tbl_data_out_dtl]
inner join [dbo].[tbl_data_out_hdr] on [tbl_data_out_dtl].id_data_out_hdr=[tbl_data_out_hdr].id_data_out_hdr
where [type_items]='RM' and [tbl_data_out_hdr].doc_out_to_id=1 and out_date between @tgstart and @tgend
and [dbo].[tbl_data_out_hdr].approve_date is not null
group by [part_name_customs]
),
cte_fg_bom(
part_name_customs, qty ) as
(
select partnamecustom, qty from [dbo].[f_fg_bom] (@tgstart, @tgend)
)
insert into @mutasiwip (
part_no
,part_name
,qty
,qty_bom
,qty_pakebom
,unit
)
select cteparths.part_no, cteparths.part_name_customs,
(case when (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) < 0 then 0 else (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) end) as qty -- (tanpa kurag bom) isnull(sum(ctedata_out.qty),0) as qty
,isnull(sum(cte_fg_bom.qty),0) as qty_bom
,(case when (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) < 0 then 0 else (isnull(sum(ctedata_out.qty),0) - isnull(sum(cte_fg_bom.qty), 0)) end) as qty_pakebom
,cteparths.satuan as unit
from cteparths
left outer join ctedata_out on ctedata_out.part_name_customs = cteparths.part_name_customs
left outer join cte_fg_bom on cte_fg_bom.part_name_customs = cteparths.part_name_customs
group by
cteparths.part_no, cteparths.satuan, cteparths.part_name_customs
return
end
--go
--select * from [dbo].[f_mutasi_wip] ('2014-05-01', '2014-08-31')
GO
Used By
No items found