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
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
Depends On
2Used By
No items found