dbo.spi_bahan_penolong

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@filename varchar 100
@id_uploadbahanpenolong_upload bigint 8
@tipe varchar 50
@username varchar 100

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.spi_bahan_penolong
(@filename varchar(100), @id_uploadbahanpenolong_upload bigint, @tipe varchar(50),  @username varchar(100) )

AS
BEGIN
 --
 SET ANSI_WARNINGS ON
 SET ANSI_NULLS ON
    Declare @dir varchar(100)
 declare @filedir varchar(200)
 declare @filecount int
 declare @fullpath varchar(200)
 DECLARE @Files table(Names varchar(250) null)
 declare @dircmd varchar(500)
 declare @cmdmove varchar(500)
 set @dir = (select top 1 direktori from dbo.tbl_direktori)
 set @filedir=@dir+'\invoice\bahan_penolong\'
 set @fullpath=@filedir+'\'+@filename
 set @dircmd='dir '+@fullpath
 set @cmdmove = 'MOVE /Y '+ @filedir +'\'+ @FileName + ' '+ @filedir +'\log\' + @filename
 
 --
    
    if @tipe <> 'BP' 
    begin
  select '07' as status, 'DATA TIDAK DAPAT DI PROSES DIPORSES' as description 
  
  return 
    end
    
    INSERT INTO @Files EXEC MASTER..XP_CMDSHELL @dircmd
 set @filecount = (SELECT COUNT (*) from @Files where Names like '%File Not Found%')
 if @filecount = 1
 begin
  select '06' as status, names+' 0 ' as description from @Files  where Names like '%File Not Found%'
  return
 end 
 
 if(select COUNT(*) from tbl_uploadbahanpenolong where id_uploadbahanpenolong_upload=@id_uploadbahanpenolong_upload and status_upload<>'SUKSES') <>0
 begin
  select '07' as status, 'DATA SUDAH DIPORSES' as description 
  
  return 
 end
    
     
 BEGIN TRY 
 exec (
' declare @cnt bigint SET @cnt = ( SELECT COUNT(*) FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Text;FMT=Delimited;HDR=NO;IMEX=1;Database='+@filedir +''', ''SELECT * FROM ['+@FileName+
'] '') WHERE F1=''KODE_BARANG'' AND F2=''PART_NAME_CUSTOMS'' AND F3=''PART_NO'' AND F4=''PART_NAME'' AND F18=''CONSUMABLE'' AND F7=''ITEM_TYPE1'' ) IF @cnt=0 BEGIN SELECT ''06'' AS status, ''FILE DATA BAHAN PENOLONG TIDAK SESUAI'' AS description RETURN END Declare @tbl_data_bahan_penolong table ( [part_no] [varchar](250) NULL, [part_name] [varchar](250) NULL, [part_name_customs] [varchar](250) NULL, [hs_code] [varchar](250) NULL, [bm] [float] NULL, [cek_price] [float] NULL, [currency] [varchar](250) NULL, [part_no2] [varchar](250) NULL, [kode_barang] [varchar](250) NULL, [item_code] [varchar](250) NULL, [uom] [varchar](250) NULL, [seri_mesin] [varchar](250) NULL, [item_type1] [varchar](250) NULL, [item_type2] [varchar](250) NULL, [net_weight_unit] [float] NULL, [dangerous_good] [varchar](50) NULL, [saldo_awal] [float] NULL, [consumable] [varchar](250) NULL, [kode_supplier] [varchar](250) NULL, [create_date] [datetime] NULL, [create_by] [varchar](250) NULL, [update_date] [datetime] NULL, [update_by] [varchar](250) NULL ) insert into @tbl_data_bahan_penolong ( KODE_BARANG, PART_NAME_CUSTOMS, PART_NO, PART_NAME, SERI_MESIN, ITEM_CODE, ITEM_TYPE1, ITEM_TYPE2, HS_CODE, BM, CEK_PRICE, UOM, CURRENCY, NET_WEIGHT_UNIT, DANGEROUS_GOOD, KODE_SUPPLIER, SALDO_AWAL, CONSUMABLE, part_no2 ) select F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17, F18, replace(F3,'' '','''') FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Text;FMT=Delimited;HDR=NO;IMEX=1;Database='+@filedir +''', ''SELECT * FROM ['+@filename+
'] '') where F1 <> ''KODE_BARANG'' and F2 <> ''PART_NAME_CUSTOMS'' and F3 <> ''PART_NO'' delete from @tbl_data_bahan_penolong where part_no is null and kode_barang is null if(select count(*) from @tbl_data_bahan_penolong where part_no is null or kode_barang is null or part_name is null ) > 0 begin SELECT ''06'' AS status, ''ADA DATA PART NO, KODE BARANG, PART NAME YANG KOSONG, MOHON DILENGKAPI'' AS description RETURN end MERGE tbl_data_bahan_penolong AS TARGET USING (select [part_no], [part_name], [part_name_customs], [hs_code], [bm], [cek_price], [currency], [part_no2], [kode_barang], [item_code], [uom], [seri_mesin], [item_type1], [item_type2], [net_weight_unit] , [dangerous_good], [saldo_awal], [consumable], [kode_supplier], [create_date], [create_by], [update_date], [update_by] from @tbl_data_bahan_penolong) AS SOURCE ON (TARGET.part_no2 = SOURCE.part_no2) WHEN MATCHED AND TARGET.part_no = SOURCE.part_no --OR TARGET.part_name_customs <> SOURCE.part_name_customs --OR TARGET.hs_code <> SOURCE.hs_code --OR TARGET.bm <> SOURCE.bm --OR TARGET.cek_price <> SOURCE.cek_price --OR TARGET.kode_barang <> SOURCE.kode_barang --OR TARGET.item_code <> SOURCE.item_code --OR TARGET.uom <> SOURCE.uom --OR TARGET.item_type1 <> SOURCE.item_type1 --OR TARGET.item_type2 <> SOURCE.item_type2 --OR TARGET.net_weight_unit <> SOURCE.net_weight_unit --OR TARGET.saldo_awal <> SOURCE.saldo_awal --OR TARGET.consumable <> SOURCE.consumable --OR TARGET.kode_supplier <> SOURCE.kode_supplier --OR TARGET.currency <> SOURCE.currency THEN UPDATE SET TARGET.part_name = SOURCE.part_name, TARGET.part_name_customs = SOURCE.part_name_customs, TARGET.hs_code = SOURCE.hs_code, TARGET.bm = SOURCE.bm, TARGET.cek_price = SOURCE.cek_price, TARGET.kode_barang = SOURCE.kode_barang, TARGET.item_code = SOURCE.item_code, TARGET.uom = SOURCE.uom, TARGET.item_type1 = SOURCE.item_type1, TARGET.item_type2 = SOURCE.item_type2, TARGET.net_weight_unit = SOURCE.net_weight_unit, TARGET.saldo_awal = SOURCE.saldo_awal, TARGET.consumable = SOURCE.consumable, TARGET.kode_supplier = SOURCE.kode_supplier, TARGET.currency = SOURCE.currency WHEN NOT MATCHED BY TARGET THEN INSERT ([part_no], [part_name], [part_name_customs], [hs_code], [bm], [cek_price], [currency], [part_no2], [kode_barang], [item_code], [uom], [seri_mesin], [item_type1], [item_type2], [net_weight_unit] , [dangerous_good], [saldo_awal], [consumable], [kode_supplier], [create_date], [create_by], [update_date], [update_by], aktif ) VALUES (SOURCE.part_no, SOURCE.part_name, SOURCE.part_name_customs, SOURCE.hs_code, SOURCE.bm, SOURCE.cek_price, SOURCE.currency, SOURCE.part_no2, SOURCE.kode_barang, SOURCE.[item_code], SOURCE.[uom], SOURCE.[seri_mesin], SOURCE.[item_type1], SOURCE.[item_type2], SOURCE.[net_weight_unit] , SOURCE.[dangerous_good], SOURCE.[saldo_awal], SOURCE.[consumable], SOURCE.[kode_supplier], SOURCE.[create_date], SOURCE.[create_by], SOURCE.[update_date], SOURCE.[update_by], ''aktif'' ) ; ')
 
 END TRY
 BEGIN CATCH
  DECLARE @ErrMsg1 nvarchar(4000), @ErrSeverity1 int
  Set @ErrMsg1 = ERROR_MESSAGE()
  set @ErrSeverity1 = ERROR_SEVERITY()
  select @ErrSeverity1 as status, @ErrMsg1 as description
  RAISERROR(@ErrMsg1, @ErrSeverity1, 1) 
 END CATCH
 EXEC xp_cmdshell @cmdmove, NO_OUTPUT
 update tbl_uploadbahanpenolong set status_upload='DATA PROCESSED' where [filename] = @FileName and [status_upload] = 'SUKSES' and id_uploadbahanpenolong_upload=@id_uploadbahanpenolong_upload
 select '00' as status, ' SUKSES' as description 
 --from @Files

END

--go
-- BEGIN TRY
-- exec('[spi_bahan_penolong] @filename=''master_bahan_penolong.csv'', @id_uploadbahanpenolong_upload=12, @tipe=''BP'', @username=''admin'' ')
-- END TRY
-- BEGIN CATCH
-- SELECT
-- 'error' AS status
-- ,ERROR_MESSAGE() AS description;
    
-- END CATCH;
GO

Used By

No items found