dbo.sp_item_list

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
CREATE PROCEDURE dbo.sp_item_list
AS
BEGIN

 SET ANSI_NULLS ON
 SET ANSI_WARNINGS ON
 
 declare @filecount int, @uruterror int 
 Declare @Size varchar(50),@filedir varchar(100) 
 Declare @FileName varchar(50)
 declare @filedata varchar(100), @logerror varchar(100), @logerror_dtl varchar(100)
 declare @cmdmove varchar(255)
 DECLARE @Files table(Names varchar(250) null)
 Declare @mdate varchar(14)
 Declare @dir varchar(100)
    declare @dircmd varchar(500)
 
 Declare @tbl_item_list_temp varchar(MAX) 
 
 Declare @tbl_part_hs_temp varchar(MAX) 
 set @dir = (select top 1 direktori from dbo.tbl_direktori)
 
 set @filedir=@dir+'\invoice\item_list'
 set @dircmd='dir '+@dir+'\invoice\item_list\*.csv'
  
 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 '01: ' as status, names as description from @Files  where Names like '%File Not Found%'
  return
 end
 
 DELETE @Files WHERE Names LIKE '%%'
 --delete all informational messages
 DELETE @Files WHERE Names LIKE ' %'
 --delete the null values
 DELETE @Files WHERE Names IS NULL

 --get rid of dateinfo
 UPDATE @Files SET Names =RIGHT(Names,(LEN(Names)-20))
 --get rid of leading spaces
 UPDATE @Files SET Names =LTRIM(Names)
 --SELECT LEFT(Names,PATINDEX('% %',Names)) AS Size, RIGHT(Names,LEN(Names) -PATINDEX('% %',Names)) AS FileName FROM @Files order by Names
 
 set @tbl_item_list_temp= 'tbl_item_list_temp' + replace(convert(varchar(255) , newid()), '-','')
  
  exec ('create table ' + @tbl_item_list_temp + 
' ( PART_NO varchar(100) null, --F1 PART_NAME varchar(100) null, --F2 CUST_PNO varchar(100) null, --F3 CUST_NAME varchar(100) null, --F4 SUPP_PNO varchar(100) null, --F5 SUPP_CODE varchar(100) null, --F6 UNIT varchar(10) null, --F7 FOBNI float null, --F8 CIFNI float null, --F9 QUOTEFOB float null, --F10 QUOTECIF float null, --F11 QUOTEFOBNI float null, --F12 QUOTECIFNI float null, --F13 QUOTE_CURR float null, --F14 NFOB float null, --F15 NCIF float null, --F16 NFOBNI float null, --F17 NCIFNI float null, --F18 NQUOTEFOB float null, --F19 NQUOTECIF float null, --F20 NQUOTEFOBNI float null, --F21 NQUOTECIFNI float null, --F22 PARTNO2 varchar(50) null, --F23 CREATED_BY varchar(15) null, --F24 CREATED_DATE datetime null, --F25 MODIFIED_BY varchar(15) null, --F26 MODIFIED_DATE datetime null, --F27 PARTNO3 varchar(50) null --F28 )')
 
  set @uruterror=1
 DECLARE file_cursor CURSOR FOR 
 SELECT LEFT(Names,PATINDEX('% %',Names)) AS Size, RIGHT(Names,LEN(Names) -PATINDEX('% %',Names)) AS FileName FROM @Files order by Names
 OPEN file_cursor
    FETCH NEXT FROM file_cursor INTO @Size, @FileName 
 WHILE @@FETCH_STATUS = 0 
 BEGIN -- begin here
  set @filedata = @filedir +'\'+ @FileName 
  set @cmdmove = 'MOVE /Y '+ @filedir +'\'+ @FileName + ' '+ @filedir +'\log\' + @FileName
     set @mdate = (SELECT CONVERT(VARCHAR(10),GETDATE(),112) + REPLACE(CONVERT(VARCHAR(10),GETDATE(),108),':','')) 
     set @logerror = @filedir+'\log\error' + @mdate + CONVERT(VARCHAR, @uruterror) + '.xls'
     set @logerror_dtl = @filedir+'\log\errordtl' + @mdate + CONVERT(VARCHAR, @uruterror) + '.xls'
  
  BEGIN TRY 
  
  exec('insert into '+ @tbl_item_list_temp +
' ( PART_NO, --F1 PART_NAME, --F2 CUST_PNO, --F3 CUST_NAME, --F4 SUPP_PNO, --F5 SUPP_CODE, --F6 UNIT, --F7 FOBNI, --F8 CIFNI, --F9 QUOTEFOB, --F10 QUOTECIF, --F11 QUOTEFOBNI, --F12 QUOTECIFNI, --F13 QUOTE_CURR, --F14 NFOB, --F15 NCIF, --F16 NFOBNI, --F17 NCIFNI, --F18 NQUOTEFOB, --F19 NQUOTECIF, --F20 NQUOTEFOBNI, --F21 NQUOTECIFNI, --F22 PARTNO2, --F23 CREATED_BY, --F24 CREATED_DATE, --F25 MODIFIED_BY, --F26 MODIFIED_DATE, --F27 PARTNO3 --F28 ) select F1 ,F2 ,F3 ,F4 ,F5 ,F6 ,F7 ,isnull(F8, 0) as F8 ,isnull(F9, 0) as F9 ,isnull(F10, 0) as F10 ,isnull(F11, 0) as F11 ,isnull(F12, 0) as F12 ,isnull(F13, 0) as F13 ,isnull(F14, 0) as F14 ,isnull(F15, 0) as F15 ,isnull(F16, 0) as F16 ,isnull(F17, 0) as F17 ,isnull(F18, 0) as F18 ,isnull(F19, 0) as F19 ,isnull(F20, 0) as F20 ,isnull(F21, 0) as F21 ,isnull(F22, 0) as F22 ,F23 ,F24 ,F25 ,F26 ,F27 ,F28 FROM OPENROWSET( ''Microsoft.ACE.OLEDB.12.0'' ,''Text;Database='+@filedir+
';HDR=NO;IMEX=1 ;FMT=Delimited;'', ''SELECT * FROM ['+@FileName+
']'') where F1 <> ''PART_NO'' ')
  
  END TRY
  BEGIN CATCH
   exec (
' drop table '+ @tbl_item_list_temp +
' ') 
   DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int
   Set @ErrMsg = ERROR_MESSAGE()
   set @ErrSeverity = ERROR_SEVERITY()
   select @ErrSeverity as status, @ErrMsg as description
   RAISERROR(@ErrMsg, @ErrSeverity, 1)
  END CATCH
    
  EXEC xp_cmdshell @cmdmove, NO_OUTPUT
  set @uruterror = @uruterror + 1; 
     FETCH NEXT FROM file_cursor INTO @Size, @FileName
 END
 CLOSE file_cursor
 DEALLOCATE file_cursor 
 
 
 
 
 exec (
' BEGIN TRY BEGIN TRANSACTION delete from '+ @tbl_item_list_temp+
' where [PART_NO] is null delete from '+ @tbl_item_list_temp+
' where PART_NO = ''PART_NO'' MERGE tbl_item_list AS TARGET USING '+ @tbl_item_list_temp +
' AS SOURCE ON (TARGET.PARTNO2 = SOURCE.PARTNO2) WHEN MATCHED THEN UPDATE SET TARGET.PART_NO = SOURCE.PART_NO --F1 ,TARGET.PART_NAME = SOURCE.PART_NAME --F2 ,TARGET.CUST_PNO = SOURCE.CUST_PNO --F3 ,TARGET.CUST_NAME = SOURCE.CUST_NAME --F4 ,TARGET.SUPP_PNO = SOURCE.SUPP_PNO --F5 ,TARGET.SUPP_CODE = SOURCE.SUPP_CODE --F6 ,TARGET.UNIT = SOURCE.UNIT --F7 ,TARGET.FOBNI = SOURCE.FOBNI --F8 ,TARGET.CIFNI = SOURCE.CIFNI --F9 ,TARGET.QUOTEFOB = SOURCE.QUOTEFOB --F10 ,TARGET.QUOTECIF = SOURCE.QUOTECIF --F11 ,TARGET.QUOTEFOBNI = SOURCE.QUOTEFOBNI --F12 ,TARGET.QUOTECIFNI = SOURCE.QUOTECIFNI --F13 ,TARGET.QUOTE_CURR = SOURCE.QUOTE_CURR --F14 ,TARGET.NFOB = SOURCE.NFOB --F15 ,TARGET.NCIF = SOURCE.NCIF --F16 ,TARGET.NFOBNI = SOURCE.NFOBNI --F17 ,TARGET.NCIFNI = SOURCE.NCIFNI --F18 ,TARGET.NQUOTEFOB = SOURCE.NQUOTEFOB --F19 ,TARGET.NQUOTECIF = SOURCE.NQUOTECIF --F20 ,TARGET.NQUOTEFOBNI = SOURCE.NQUOTEFOBNI --F21 ,TARGET.NQUOTECIFNI = SOURCE.NQUOTECIFNI --F22 ,TARGET.CREATED_BY = SOURCE.CREATED_BY --F24 ,TARGET.CREATED_DATE = SOURCE.CREATED_DATE --F25 ,TARGET.MODIFIED_BY = SOURCE.MODIFIED_BY --F26 ,TARGET.MODIFIED_DATE = SOURCE.MODIFIED_DATE --F27 ,TARGET.PARTNO3 = SOURCE.PARTNO3 --F28 WHEN NOT MATCHED BY TARGET THEN INSERT ( PART_NO, --F1 PART_NAME, --F2 CUST_PNO, --F3 CUST_NAME, --F4 SUPP_PNO, --F5 SUPP_CODE, --F6 UNIT, --F7 FOBNI, --F8 CIFNI, --F9 QUOTEFOB, --F10 QUOTECIF, --F11 QUOTEFOBNI, --F12 QUOTECIFNI, --F13 QUOTE_CURR, --F14 NFOB, --F15 NCIF, --F16 NFOBNI, --F17 NCIFNI, --F18 NQUOTEFOB, --F19 NQUOTECIF, --F20 NQUOTEFOBNI, --F21 NQUOTECIFNI, --F22 PARTNO2, --F23 CREATED_BY, --F24 CREATED_DATE, --F25 MODIFIED_BY, --F26 MODIFIED_DATE, --F27 PARTNO3 --F28 ) VALUES ( SOURCE.PART_NO, --F1 SOURCE.PART_NAME, --F2 SOURCE.CUST_PNO, --F3 SOURCE.CUST_NAME, --F4 SOURCE.SUPP_PNO, --F5 SOURCE.SUPP_CODE, --F6 SOURCE.UNIT, --F7 SOURCE.FOBNI, --F8 SOURCE.CIFNI, --F9 SOURCE.QUOTEFOB, --F10 SOURCE.QUOTECIF, --F11 SOURCE.QUOTEFOBNI, --F12 SOURCE.QUOTECIFNI, --F13 SOURCE.QUOTE_CURR, --F14 SOURCE.NFOB, --F15 SOURCE.NCIF, --F16 SOURCE.NFOBNI, --F17 SOURCE.NCIFNI, --F18 SOURCE.NQUOTEFOB, --F19 SOURCE.NQUOTECIF, --F20 SOURCE.NQUOTEFOBNI, --F21 SOURCE.NQUOTECIFNI, --F22 SOURCE.PARTNO2, --F23 SOURCE.CREATED_BY, --F24 SOURCE.CREATED_DATE, --F25 SOURCE.MODIFIED_BY, --F26 SOURCE.MODIFIED_DATE, --F27 SOURCE.PARTNO3 --F28 ) ; COMMIT END TRY BEGIN CATCH -- Whoops, there was an error IF @@TRANCOUNT > 0 ROLLBACK -- Raise an error with the details of the exception DECLARE @ErrMsg nvarchar(4000), @ErrSeverity int Set @ErrMsg = ERROR_MESSAGE() set @ErrSeverity = ERROR_SEVERITY() select @ErrSeverity as status, @ErrMsg as description RAISERROR(@ErrMsg, @ErrSeverity, 1) END CATCH ')
 exec ('drop table '+ @tbl_item_list_temp +'')
 update tbl_uploaditemlist set status_upload='DATA PROCESSED' where [filename] = @FileName and [status_upload] = 'SUKSES'
 
 select '00' as status, COUNT(*) as description from @Files  
END
GO

Used By

No items found