Description
Properties
| Name | Value |
|---|---|
| ANSI Nulls ON | True |
| Quoted Identifier ON | True |
| Encrypted | False |
| Execute As | |
| Assembly |
Parameters
| Name | Data Type | Length | Description |
|---|---|---|---|
| @id_vgi_hdr | bigint | 8 | |
| @doc_out_no | varchar | 50 | |
| @doc_out_date | varchar | 50 | |
| @sts_no | varchar | 2 | |
| @sts_des | varchar | 5000 |
SQL Script
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_outgoing_production
(@id_vgi_hdr bigint, @doc_out_no as varchar(50), @doc_out_date varchar(50)
,@sts_no varchar(2) output
,@sts_des varchar(5000) output
)
AS
BEGIN
set nocount on
set @sts_no ='00'
set @sts_des ='sukses'
-- CHECK APAKA ID VGI HDR SUDAH DI ADA?
if (
SELECT COUNT(*) AS Expr1
FROM tbl_data_out_hdr
WHERE (doc_out_to_id = 1) AND (id_terkait = @id_vgi_hdr))>0
begin
set @sts_no ='09'
set @sts_des ='Sudah Pernah di trnasfer'
goto f
end
--SELECT xdata.part_number AS Expr1
--FROM tbl_vgi_dtl as xdata
--WHERE (xdata.id_vgi_hdr = @id_vgi_hdr)
--and not exists
--(
--SELECT *
--FROM tbl_data_part_hs as xfilter
--where xdata.part_number =xfilter.part_no
--)
--declare @pemisah varchar(2)
--set @pemisah=CHAR(13) + CHAR(10)
--declare @resultX varchar(3000)
--set @resultX= (
-- select top 5
-- cast(ROW_NUMBER() OVER(ORDER BY dt_barang_in.barang_code) as varchar(255)) + '. ' +
-- 'Scrap (' + dt_barang_in.barang_code + ') ' + ' item (' + dt_barang_formula.barang_code + ') ' + dt_barang_formula.barang_name +
-- ' kurang ' + dbo.ToFloatStr( dt_fg_scrap_bahan.qty -dt_fg_scrap_bahan.qty_supply ) + ' ' + dt_barang_formula.satuan_code
-- + @pemisah
-- AS [text()]
-- FROM dt_fg_scrap_bahan INNER JOIN
-- dt_doc_in_barang_detail ON dt_fg_scrap_bahan.doc_in_barang_detail_id = dt_doc_in_barang_detail.doc_in_barang_detail_id INNER JOIN
-- dt_barang_scrap_h_formula_list ON
-- dt_fg_scrap_bahan.barang_scrap_h_formula_list_id = dt_barang_scrap_h_formula_list.barang_scrap_h_formula_list_id INNER JOIN
-- dt_barang AS dt_barang_formula ON dt_barang_scrap_h_formula_list.barang_id = dt_barang_formula.barang_id INNER JOIN
-- dt_barang AS dt_barang_in ON dt_doc_in_barang_detail.barang_id = dt_barang_in.barang_id
-- WHERE (dt_doc_in_barang_detail.mode_terkait_id = 3) AND (dt_doc_in_barang_detail.doc_in_id = @doc_in_id) AND (dt_doc_in_barang_detail.use_this = 1) AND (dt_fg_scrap_bahan.qty_supply - dt_fg_scrap_bahan.qty < 0)
-- For XML PATH (''))
-- if @resultX is not null
-- begin
-- set @xStsno='17';
-- set @xStsdes='Gagal , Ada supply bahan yang kurang :' + @pemisah+ @pemisah+ '
-- goto f
-- end
declare @tableTakterdaftar table (part_number varchar(50), qty float , totalrow int)
insert into @tableTakterdaftar
select part_number ,sum(qty) as qty ,count(part_number) from (
SELECT xdata.part_number, xdata.qty
FROM tbl_vgi_dtl as xdata
WHERE (xdata.id_vgi_hdr = @id_vgi_hdr)
and not exists
(
SELECT *
FROM tbl_data_part_hs as xfilter
where xdata.part_number =xfilter.part_no
)
) xdata2
group by part_number
declare @jmlTidakTerdafar int
-- CHECK APAKAH DETAIL VGI PART HS TERDAFTAR DALAM TBL HS
set @jmlTidakTerdafar= (select COUNT (*) from @tableTakterdaftar)
if @jmlTidakTerdafar>0
begin
set nocount off
select * from @tableTakterdaftar
set nocount on
set @sts_no ='10'
set @sts_des ='Ada ' + cast(@jmlTidakTerdafar as varchar(255)) + ' part number yang belum terdaftar'
goto f
end
declare @id_data_out_hdr bigint
INSERT INTO tbl_data_out_hdr
(doc_out_no, doc_out_date, doc_out_to_id,id_terkait)
VALUES (@doc_out_no,dbo.str_to_date( @doc_out_date), 1,@id_vgi_hdr)
set @id_data_out_hdr =@@IDENTITY
declare @id_data_out_hdr_h_status bigint
INSERT INTO tbl_data_out_hdr_h_status
(id_data_out_hdr, status_date, status)
VALUES (@id_data_out_hdr, GETDATE(), 'Transfered')
set @id_data_out_hdr_h_status =@@IDENTITY
DECLARE @tbl_cal table (id_data_out_dtl bigint,id_part_number bigint,qty float)
INSERT INTO tbl_data_out_dtl
(id_data_out_hdr
, id_part_number
, part_name_customs
, part_number
, qty
, qty_supply
, unit_out
, unit_konversi
, pengali
, box
, pack)
output inserted.id_data_out_dtl,inserted.id_part_number,inserted.qty
into @tbl_cal
SELECT
@id_data_out_hdr,
tbl_data_part_hs.id,
tbl_data_part_hs.part_name_customs,
tbl_vgi_dtl.part_number,
tbl_vgi_dtl.qty,
0,
tbl_item_list.UNIT,
tbl_item_list.UNIT,
1,
0,
0
FROM tbl_vgi_dtl LEFT OUTER JOIN
tbl_data_part_hs ON tbl_vgi_dtl.part_number = tbl_data_part_hs.part_no LEFT OUTER JOIN
tbl_item_list ON tbl_vgi_dtl.part_number = tbl_item_list.PART_NO
WHERE (tbl_vgi_dtl.id_vgi_hdr = @id_vgi_hdr)
UPDATE tbl_data_out_hdr
SET id_data_out_hdr_h_status = @id_data_out_hdr_h_status
WHERE (id_data_out_hdr = @id_data_out_hdr)
--declare
-- @id_data_out_dtl bigint
--,@id_part_number bigint
--,@qty float
--,@qty_supply float
--declare @id_data_in_dtl_supply bigint
--declare @qty_sisa float
--declare @berhenti bit
--DECLARE supply_produksi_cursor CURSOR FOR
--SELECT id_data_out_dtl , id_part_number,qty from @tbl_cal
--OPEN supply_produksi_cursor
--FETCH NEXT FROM supply_produksi_cursor INTO @id_data_out_dtl, @id_part_number,@qty
--WHILE @@FETCH_STATUS = 0
--BEGIN -- begin here
--set @qty_supply=0
--set @berhenti= 0
--WHILE @berhenti=0
-- BEGIN
-- set @id_data_in_dtl_supply=null
-- SELECT top 1
-- @id_data_in_dtl_supply=id,
-- @qty_sisa=qty_in-qty_out
-- FROM tbl_data_in_dtl
-- where id_part_number=@id_part_number and (qty_in-qty_out)>0
-- order by id asc
-- if @id_data_in_dtl_supply is null
-- begin
-- set @berhenti=1
-- end
-- if @berhenti=0
-- begin
-- if @qty_sisa>= (@qty-@qty_supply)
-- begin
-- INSERT INTO tbl_data_out_dtl_r_in
-- (id_data_out_dtl, id_data_in_dtl, qty)
-- VALUES (@id_data_out_dtl,@id_data_in_dtl_supply,@qty-@qty_supply)
-- UPDATE tbl_data_out_dtl
-- SET qty_supply =qty_supply + @qty-@qty_supply
-- WHERE (id_data_out_dtl = @id_data_out_dtl)
-- UPDATE tbl_data_in_dtl
-- SET qty_out = qty_out + (@qty-@qty_supply)
-- WHERE (id = @id_data_in_dtl_supply)
-- set @berhenti=1
-- end
-- else
-- begin
-- INSERT INTO tbl_data_out_dtl_r_in
-- (id_data_out_dtl, id_data_in_dtl, qty)
-- VALUES (@id_data_out_dtl,@id_data_in_dtl_supply, @qty_sisa)
-- UPDATE tbl_data_out_dtl
-- SET qty_supply = qty_supply + @qty_sisa
-- WHERE (id_data_out_dtl = @id_data_out_dtl)
-- UPDATE tbl_data_in_dtl
-- SET qty_out = qty_out + @qty_sisa
-- WHERE (id = @id_data_in_dtl_supply)
-- set @qty_supply=@qty_supply +@qty_sisa
-- end
-- end
-- end
--FETCH NEXT FROM supply_produksi_cursor INTO @id_data_out_dtl, @id_part_number ,@qty
--END
--CLOSE supply_produksi_cursor
--DEALLOCATE supply_produksi_cursor
f:
set nocount off
--select @sts_no as status , @sts_des as description
END
GO
GO
CREATE PROCEDURE dbo.sp_outgoing_production
(@id_vgi_hdr bigint, @doc_out_no as varchar(50), @doc_out_date varchar(50)
,@sts_no varchar(2) output
,@sts_des varchar(5000) output
)
AS
BEGIN
set nocount on
set @sts_no ='00'
set @sts_des ='sukses'
-- CHECK APAKA ID VGI HDR SUDAH DI ADA?
if (
SELECT COUNT(*) AS Expr1
FROM tbl_data_out_hdr
WHERE (doc_out_to_id = 1) AND (id_terkait = @id_vgi_hdr))>0
begin
set @sts_no ='09'
set @sts_des ='Sudah Pernah di trnasfer'
goto f
end
--SELECT xdata.part_number AS Expr1
--FROM tbl_vgi_dtl as xdata
--WHERE (xdata.id_vgi_hdr = @id_vgi_hdr)
--and not exists
--(
--SELECT *
--FROM tbl_data_part_hs as xfilter
--where xdata.part_number =xfilter.part_no
--)
--declare @pemisah varchar(2)
--set @pemisah=CHAR(13) + CHAR(10)
--declare @resultX varchar(3000)
--set @resultX= (
-- select top 5
-- cast(ROW_NUMBER() OVER(ORDER BY dt_barang_in.barang_code) as varchar(255)) + '. ' +
-- 'Scrap (' + dt_barang_in.barang_code + ') ' + ' item (' + dt_barang_formula.barang_code + ') ' + dt_barang_formula.barang_name +
-- ' kurang ' + dbo.ToFloatStr( dt_fg_scrap_bahan.qty -dt_fg_scrap_bahan.qty_supply ) + ' ' + dt_barang_formula.satuan_code
-- + @pemisah
-- AS [text()]
-- FROM dt_fg_scrap_bahan INNER JOIN
-- dt_doc_in_barang_detail ON dt_fg_scrap_bahan.doc_in_barang_detail_id = dt_doc_in_barang_detail.doc_in_barang_detail_id INNER JOIN
-- dt_barang_scrap_h_formula_list ON
-- dt_fg_scrap_bahan.barang_scrap_h_formula_list_id = dt_barang_scrap_h_formula_list.barang_scrap_h_formula_list_id INNER JOIN
-- dt_barang AS dt_barang_formula ON dt_barang_scrap_h_formula_list.barang_id = dt_barang_formula.barang_id INNER JOIN
-- dt_barang AS dt_barang_in ON dt_doc_in_barang_detail.barang_id = dt_barang_in.barang_id
-- WHERE (dt_doc_in_barang_detail.mode_terkait_id = 3) AND (dt_doc_in_barang_detail.doc_in_id = @doc_in_id) AND (dt_doc_in_barang_detail.use_this = 1) AND (dt_fg_scrap_bahan.qty_supply - dt_fg_scrap_bahan.qty < 0)
-- For XML PATH (''))
-- if @resultX is not null
-- begin
-- set @xStsno='17';
-- set @xStsdes='Gagal , Ada supply bahan yang kurang :' + @pemisah+ @pemisah+ '
'+ @resultX + '' + @pemisah ;
-- goto f
-- end
declare @tableTakterdaftar table (part_number varchar(50), qty float , totalrow int)
insert into @tableTakterdaftar
select part_number ,sum(qty) as qty ,count(part_number) from (
SELECT xdata.part_number, xdata.qty
FROM tbl_vgi_dtl as xdata
WHERE (xdata.id_vgi_hdr = @id_vgi_hdr)
and not exists
(
SELECT *
FROM tbl_data_part_hs as xfilter
where xdata.part_number =xfilter.part_no
)
) xdata2
group by part_number
declare @jmlTidakTerdafar int
-- CHECK APAKAH DETAIL VGI PART HS TERDAFTAR DALAM TBL HS
set @jmlTidakTerdafar= (select COUNT (*) from @tableTakterdaftar)
if @jmlTidakTerdafar>0
begin
set nocount off
select * from @tableTakterdaftar
set nocount on
set @sts_no ='10'
set @sts_des ='Ada ' + cast(@jmlTidakTerdafar as varchar(255)) + ' part number yang belum terdaftar'
goto f
end
declare @id_data_out_hdr bigint
INSERT INTO tbl_data_out_hdr
(doc_out_no, doc_out_date, doc_out_to_id,id_terkait)
VALUES (@doc_out_no,dbo.str_to_date( @doc_out_date), 1,@id_vgi_hdr)
set @id_data_out_hdr =@@IDENTITY
declare @id_data_out_hdr_h_status bigint
INSERT INTO tbl_data_out_hdr_h_status
(id_data_out_hdr, status_date, status)
VALUES (@id_data_out_hdr, GETDATE(), 'Transfered')
set @id_data_out_hdr_h_status =@@IDENTITY
DECLARE @tbl_cal table (id_data_out_dtl bigint,id_part_number bigint,qty float)
INSERT INTO tbl_data_out_dtl
(id_data_out_hdr
, id_part_number
, part_name_customs
, part_number
, qty
, qty_supply
, unit_out
, unit_konversi
, pengali
, box
, pack)
output inserted.id_data_out_dtl,inserted.id_part_number,inserted.qty
into @tbl_cal
SELECT
@id_data_out_hdr,
tbl_data_part_hs.id,
tbl_data_part_hs.part_name_customs,
tbl_vgi_dtl.part_number,
tbl_vgi_dtl.qty,
0,
tbl_item_list.UNIT,
tbl_item_list.UNIT,
1,
0,
0
FROM tbl_vgi_dtl LEFT OUTER JOIN
tbl_data_part_hs ON tbl_vgi_dtl.part_number = tbl_data_part_hs.part_no LEFT OUTER JOIN
tbl_item_list ON tbl_vgi_dtl.part_number = tbl_item_list.PART_NO
WHERE (tbl_vgi_dtl.id_vgi_hdr = @id_vgi_hdr)
UPDATE tbl_data_out_hdr
SET id_data_out_hdr_h_status = @id_data_out_hdr_h_status
WHERE (id_data_out_hdr = @id_data_out_hdr)
--declare
-- @id_data_out_dtl bigint
--,@id_part_number bigint
--,@qty float
--,@qty_supply float
--declare @id_data_in_dtl_supply bigint
--declare @qty_sisa float
--declare @berhenti bit
--DECLARE supply_produksi_cursor CURSOR FOR
--SELECT id_data_out_dtl , id_part_number,qty from @tbl_cal
--OPEN supply_produksi_cursor
--FETCH NEXT FROM supply_produksi_cursor INTO @id_data_out_dtl, @id_part_number,@qty
--WHILE @@FETCH_STATUS = 0
--BEGIN -- begin here
--set @qty_supply=0
--set @berhenti= 0
--WHILE @berhenti=0
-- BEGIN
-- set @id_data_in_dtl_supply=null
-- SELECT top 1
-- @id_data_in_dtl_supply=id,
-- @qty_sisa=qty_in-qty_out
-- FROM tbl_data_in_dtl
-- where id_part_number=@id_part_number and (qty_in-qty_out)>0
-- order by id asc
-- if @id_data_in_dtl_supply is null
-- begin
-- set @berhenti=1
-- end
-- if @berhenti=0
-- begin
-- if @qty_sisa>= (@qty-@qty_supply)
-- begin
-- INSERT INTO tbl_data_out_dtl_r_in
-- (id_data_out_dtl, id_data_in_dtl, qty)
-- VALUES (@id_data_out_dtl,@id_data_in_dtl_supply,@qty-@qty_supply)
-- UPDATE tbl_data_out_dtl
-- SET qty_supply =qty_supply + @qty-@qty_supply
-- WHERE (id_data_out_dtl = @id_data_out_dtl)
-- UPDATE tbl_data_in_dtl
-- SET qty_out = qty_out + (@qty-@qty_supply)
-- WHERE (id = @id_data_in_dtl_supply)
-- set @berhenti=1
-- end
-- else
-- begin
-- INSERT INTO tbl_data_out_dtl_r_in
-- (id_data_out_dtl, id_data_in_dtl, qty)
-- VALUES (@id_data_out_dtl,@id_data_in_dtl_supply, @qty_sisa)
-- UPDATE tbl_data_out_dtl
-- SET qty_supply = qty_supply + @qty_sisa
-- WHERE (id_data_out_dtl = @id_data_out_dtl)
-- UPDATE tbl_data_in_dtl
-- SET qty_out = qty_out + @qty_sisa
-- WHERE (id = @id_data_in_dtl_supply)
-- set @qty_supply=@qty_supply +@qty_sisa
-- end
-- end
-- end
--FETCH NEXT FROM supply_produksi_cursor INTO @id_data_out_dtl, @id_part_number ,@qty
--END
--CLOSE supply_produksi_cursor
--DEALLOCATE supply_produksi_cursor
f:
set nocount off
--select @sts_no as status , @sts_des as description
END
GO
Depends On
7Used By
No items found