NJC__Documentation::DB

dbo.sp_outgoing_production

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+ '
'+ @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

Used By

No items found