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 | |
| @part_no | varchar | 50 |
SQL Script
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
create FUNCTION dbo.f_stock_card_fg
(
@tgstart date, @tgend date, @part_no varchar(50)
)
RETURNS @mutasiwip table (
doc_in_no varchar(100),
date_in_out date,
tipe varchar(10),
[part_number] varchar(100),
qty_in decimal(18,4),
qty_out decimal(18,4),
[doc_out_to_id] varchar(10)
,[doc_out_no] varchar(55)
,no_inv varchar(55)
)
AS
begin
declare @saldo_awal float
declare @datesaldoawal date
declare @stsstockopname int, @dtsto date
declare @jml_in float, @jml_out float
set @saldo_awal = (
select sum(qty) from [dbo].[tbl_stock_opname] a
where a.[date_stock_opname] = (select max([date_stock_opname]) from [dbo].[tbl_stock_opname] b
where b.[date_stock_opname] <= @tgend
) and a.typebahan = 'FG' and part_no = @part_no
group by part_no
)
set @dtsto = (select max(dt) from (
select [date_stock_opname] as dt from [dbo].[tbl_stock_opname] a
where a.[date_stock_opname] = (select max([date_stock_opname]) from [dbo].[tbl_stock_opname] b
where b.[date_stock_opname] <= @tgstart and b.typebahan = 'FG'
) and a.typebahan = 'FG'
group by part_name_customs, [date_stock_opname]
) as x)
set @datesaldoawal=dateadd(day, 1, @dtsto)
set @jml_in = (select sum(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
tbl_data_in_dtl.type_brg = 2 and tbl_data_in_hdr.doc_in_date between @datesaldoawal and dateadd(day, -1, @tgstart)
and tbl_data_in_dtl.part_no = @part_no
)
set @jml_out = (select sum(qty) from
( select sum([qty] * isnull(pengali, 1)) as qty
FROM tbl_data_out_dtl INNER JOIN
tbl_data_out_hdr ON tbl_data_out_dtl.id_data_out_hdr = tbl_data_out_hdr.id_data_out_hdr
where [type_items] = 'FG' and tbl_data_out_hdr.approve_date is not null
--and (doc_out_to_id <> 6)
and tbl_data_out_hdr.doc_out_date between @datesaldoawal and dateadd(day, -1, @tgstart)
and [tbl_data_out_dtl].assy_code = @part_no
group by assy_code
) x
)
set @saldo_awal=(select isnull(@saldo_awal,0 ) + (@jml_in- @jml_out))
;with
cte (
[doc_in_no]
,[date_in_out]
,[typedok]
,[CAR]
,[part_number]
,[qty_in]
,qty_out
,part_no
,[out_date]
,[doc_out_to_id]
,[doc_out_no]
,[doc_out_date]
,tipe
,no_inv
) as (
Select
'SALDO_AWAL'
,@datesaldoawal
,'SALDO_AWAL'
,NULL
,@part_no
,@saldo_awal
,NULL
,@part_no
,NULL
,NULL
,NULL
,@datesaldoawal
,'SALDO_AWAL'
,''
union all
SELECT
[doc_in_no]
,doc_in_date
,'FG_IN'
,[from_file_name]
,[part_no]
,[qty_in]
,NULL as qty_out
,NULL as part_no
,NULL as [out_date]
,'-' as [doc_out_to_id]
,'-' as [doc_out_no]
,NULL as [doc_out_date]
,'IN'
,'-' as no_inv
FROM [dbo].[v_data_assy_in]
where part_no = @part_no and [doc_in_date] between @tgstart and @tgend
union all
SELECT
[doc_out_no]
,[doc_out_date]
,NULL
,NULL
,assy_code
,NULL
,[qty]
,assy_code
,[out_date]
,[Typedok2]
,[CAR2]
,[doc_out_date]
,'OUT'
,no_inv
FROM [dbo].[v_data_assy_out2]
where assy_code = @part_no and [doc_out_date] between @tgstart and @tgend
)
insert into @mutasiwip(
doc_in_no ,
date_in_out ,
tipe ,
[part_number] ,
qty_in ,
qty_out ,
[doc_out_to_id]
,[doc_out_no]
,no_inv
)
select
doc_in_no,
convert(char(10), [date_in_out], 126) as date_in_out,
tipe,
[part_number],
isnull(qty_in, 0) as qty_in,
isnull(qty_out, 0) as qty_out
,[doc_out_to_id]
,[doc_out_no]
,no_inv
from cte
order by [date_in_out]
return
end
--go
--select * from [dbo].[f_stock_card_fg]('2017-08-01','2017-10-01','FFX4')
GO
GO
create FUNCTION dbo.f_stock_card_fg
(
@tgstart date, @tgend date, @part_no varchar(50)
)
RETURNS @mutasiwip table (
doc_in_no varchar(100),
date_in_out date,
tipe varchar(10),
[part_number] varchar(100),
qty_in decimal(18,4),
qty_out decimal(18,4),
[doc_out_to_id] varchar(10)
,[doc_out_no] varchar(55)
,no_inv varchar(55)
)
AS
begin
declare @saldo_awal float
declare @datesaldoawal date
declare @stsstockopname int, @dtsto date
declare @jml_in float, @jml_out float
set @saldo_awal = (
select sum(qty) from [dbo].[tbl_stock_opname] a
where a.[date_stock_opname] = (select max([date_stock_opname]) from [dbo].[tbl_stock_opname] b
where b.[date_stock_opname] <= @tgend
) and a.typebahan = 'FG' and part_no = @part_no
group by part_no
)
set @dtsto = (select max(dt) from (
select [date_stock_opname] as dt from [dbo].[tbl_stock_opname] a
where a.[date_stock_opname] = (select max([date_stock_opname]) from [dbo].[tbl_stock_opname] b
where b.[date_stock_opname] <= @tgstart and b.typebahan = 'FG'
) and a.typebahan = 'FG'
group by part_name_customs, [date_stock_opname]
) as x)
set @datesaldoawal=dateadd(day, 1, @dtsto)
set @jml_in = (select sum(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
tbl_data_in_dtl.type_brg = 2 and tbl_data_in_hdr.doc_in_date between @datesaldoawal and dateadd(day, -1, @tgstart)
and tbl_data_in_dtl.part_no = @part_no
)
set @jml_out = (select sum(qty) from
( select sum([qty] * isnull(pengali, 1)) as qty
FROM tbl_data_out_dtl INNER JOIN
tbl_data_out_hdr ON tbl_data_out_dtl.id_data_out_hdr = tbl_data_out_hdr.id_data_out_hdr
where [type_items] = 'FG' and tbl_data_out_hdr.approve_date is not null
--and (doc_out_to_id <> 6)
and tbl_data_out_hdr.doc_out_date between @datesaldoawal and dateadd(day, -1, @tgstart)
and [tbl_data_out_dtl].assy_code = @part_no
group by assy_code
) x
)
set @saldo_awal=(select isnull(@saldo_awal,0 ) + (@jml_in- @jml_out))
;with
cte (
[doc_in_no]
,[date_in_out]
,[typedok]
,[CAR]
,[part_number]
,[qty_in]
,qty_out
,part_no
,[out_date]
,[doc_out_to_id]
,[doc_out_no]
,[doc_out_date]
,tipe
,no_inv
) as (
Select
'SALDO_AWAL'
,@datesaldoawal
,'SALDO_AWAL'
,NULL
,@part_no
,@saldo_awal
,NULL
,@part_no
,NULL
,NULL
,NULL
,@datesaldoawal
,'SALDO_AWAL'
,''
union all
SELECT
[doc_in_no]
,doc_in_date
,'FG_IN'
,[from_file_name]
,[part_no]
,[qty_in]
,NULL as qty_out
,NULL as part_no
,NULL as [out_date]
,'-' as [doc_out_to_id]
,'-' as [doc_out_no]
,NULL as [doc_out_date]
,'IN'
,'-' as no_inv
FROM [dbo].[v_data_assy_in]
where part_no = @part_no and [doc_in_date] between @tgstart and @tgend
union all
SELECT
[doc_out_no]
,[doc_out_date]
,NULL
,NULL
,assy_code
,NULL
,[qty]
,assy_code
,[out_date]
,[Typedok2]
,[CAR2]
,[doc_out_date]
,'OUT'
,no_inv
FROM [dbo].[v_data_assy_out2]
where assy_code = @part_no and [doc_out_date] between @tgstart and @tgend
)
insert into @mutasiwip(
doc_in_no ,
date_in_out ,
tipe ,
[part_number] ,
qty_in ,
qty_out ,
[doc_out_to_id]
,[doc_out_no]
,no_inv
)
select
doc_in_no,
convert(char(10), [date_in_out], 126) as date_in_out,
tipe,
[part_number],
isnull(qty_in, 0) as qty_in,
isnull(qty_out, 0) as qty_out
,[doc_out_to_id]
,[doc_out_no]
,no_inv
from cte
order by [date_in_out]
return
end
--go
--select * from [dbo].[f_stock_card_fg]('2017-08-01','2017-10-01','FFX4')
GO
Depends On
7Used By
No items found