You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

426 lines
27 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_imeRemitcardStockUpload] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procEDURE [dbo].[proc_imeRemitcardStockUpload](
@flag VARCHAR(10) = NULL
,@user VARCHAR(30) = NULL
,@rowId INT = NULL
,@agentName VARCHAR(255) = NULL
,@xml XML = NULL
,@remitCardNo VARCHAR(30) = NULL
,@cardType VARCHAR(30) = NULL
,@cardStatus VARCHAR(30) = NULL
,@accountNumber VARCHAR(30) = NULL
,@fromSn BIGINT = NULL
,@toSn BIGINT = NULL
,@modifiedDate VARCHAR(30) = NULL
,@modifiedBy VARCHAR(30) = NULL
,@createdDate VARCHAR(30) = NULL
,@createdBy VARCHAR(30) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(50) = NULL
)AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
BEGIN TRY
DECLARE
@table VARCHAR(MAX)
,@select_field_list VARCHAR(MAX)
,@extra_field_list VARCHAR(MAX)
,@sql_filter VARCHAR(MAX)
DECLARE @startLoopFirst AS INT
SET @startLoopFirst = 0
DECLARE @startLoopLast AS BIGINT
SET @startLoopLast = CAST(@toSn AS BIGINT) - CAST(@fromSn AS BIGINT)
IF @flag='s'
BEGIN
SET @sortBy='rowId'
SET @sortOrder='DESC'
SET @table='
(
SELECT id as rowId
,ISNULL(am.agentName,''Head Office'') as AGENT
,accountNo
,remitCardNo
,case when cardType=''r'' then ''IME Remit Card'' else
case when cardType=''c'' then ''Customer Card''
else ''PIN-IME Remit Card'' end end as cardType
,icm.createdBy as [user]
,cardStatus
,icm.createdDate as createdDate
,icm.modifiedDate as modifiedDate
,icm.modifiedBy as modifiedBy
FROM imeremitcardmaster icm with (nolock) left join agentmaster am
on icm.agentId=am.agentId where ISNULL(icm.isDeleted,''N'')<>''Y''
)x'
SET @sql_filter = ''
IF @remitCardNo IS NOT NULL
SET @sql_filter=@sql_filter + ' AND remitCardNo = ''' +@remitCardNo+''''
IF @cardType IS NOT NULL
SET @sql_filter=@sql_filter + ' AND cardType = ''' +@cardType+''''
IF @agentName IS NOT NULL
SET @sql_filter=@sql_filter + ' AND AGENT like ''%' +@agentName+'%'''
IF @cardStatus IS NOT NULL
SET @sql_filter=@sql_filter + ' AND cardStatus = ''' +@cardStatus+''''
IF @createdDate IS NOT NULL
SET @sql_filter=@sql_filter + ' AND cast(createdDate as date) = ''' +@createdDate +''''
IF @createdBy IS NOT NULL
SET @sql_filter=@sql_filter + ' AND [user] like ''%' +@createdBy+'%'''
SET @select_field_list = '
rowId
,Agent
,remitCardNo
,accountNo
,cardType
,cardStatus
,[user]
,createdDate
,modifiedDate
,modifiedBy
'
--print(@table + @sql_filter)
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
END
IF @flag= 'loopInsert'
BEGIN
IF EXISTS(SELECT 'X' FROM imeremitcardmaster WITH(NOLOCK) WHERE remitCardNo Between @fromSn and @toSn and ISNULL(isDeleted,'N') <> 'Y')
BEGIN
SELECT 1 errorCode,'Card Number Already Exists !!!' mes ,null id
RETURN
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@fromSn)<>16 and @cardType='r') or (len(@toSn)<>16 and @cardType='r'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card serial number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@fromSn)<>8 and @cardType='c') or (len(@toSn)<>8 and @cardType='c'))
BEGIN
SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@fromSn)<>16 and @cardType='p') or (len(@toSn)<>16 and @cardType='p'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit pin number.' AS mes,null id
RETURN;
END
BEGIN TRANSACTION
WHILE(@fromSn <= @toSn)
BEGIN
INSERT INTO imeremitcardmaster (
remitCardNo
,cardStatus
,createdBy
,createdDate
,cardType
)
select
cast(@fromSn as bigint)
,'HO'
,@user
,GETDATE()
,@cardType
SET @fromSn = @fromSn + 1
END
COMMIT TRANSACTION
SELECT '0' errorCode,'Successfully Inserted !!!' AS mes ,null id
END
IF @flag='i'
BEGIN
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='r'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card serial number.' AS mes,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='p'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card pin number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>8 and @cardType='c'))
BEGIN
SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where accountNo=@accountNumber and ISNULL(isDeleted,'N')<>'Y')
BEGIN
SELECT 1 errorCode,'Account number already exists.' mes ,null id
RETURN
END
IF EXISTS (select 'X' from imeremitcardmaster where remitCardNo=@remitCardNo and ISNULL(isDeleted,'N')<>'Y')
BEGIN
SELECT 1 errorCode,'Card number already exists.' mes ,null id
RETURN
END
BEGIN TRANSACTION
INSERT INTO imeremitcardmaster (
remitCardNo
,accountNo
,cardStatus
,createdBy
,createdDate
,cardType
)
VALUES (
cast(@remitCardNo as bigint)
,@accountNumber
,'HO'
,@user
,GETDATE()
,@cardType
)
IF @cardType='r'
INSERT INTO imeremitcardmaster (
remitCardNo
,accountNo
,cardStatus
,createdBy
,createdDate
,cardType
)
VALUES (
cast(@remitCardNo as bigint)
,@accountNumber
,'HO'
,@user
,GETDATE()
,'p'
)
COMMIT TRANSACTION
SELECT '0' errorCode,'Successfully Inserted !!!' AS mes ,null id
END
IF @flag= 'upload'
BEGIN
DECLARE @TEMP TABLE(remitCardNo VARCHAR(50),accountNo VARCHAR(50))
DECLARE @totalQuantity VARCHAR(10)=NULL
INSERT @TEMP(
remitCardNo
,accountNo
)
SELECT
p.value('@casId','VARCHAR(50)')
,p.value('@account','VARCHAR(50)')
FROM @xml.nodes('/root/row') AS tmp(p)
IF EXISTS(SELECT 'X' FROM @TEMP WHERE remitCardNo IN (SELECT remitCardNo FROM imeremitcardmaster where ISNULL(isDeleted,'N') <> 'Y'))
BEGIN
SELECT '1' errorCode,'Stock with these serial number already exists.' AS mes ,null id
RETURN;
END
IF EXISTS(SELECT 'X' FROM @TEMP WHERE accountNo IN (SELECT accountNo FROM imeremitcardmaster where ISNULL(isDeleted,'N') <> 'Y'))
BEGIN
SELECT '1' errorCode,'Some of the account number already exists.' AS mes ,null id
RETURN;
END
IF EXISTS(select remitCardNo,count('x') from @TEMP group by remitCardNo having count('x')>1)
BEGIN
SELECT '1' errorCode,'Duplicate serial number exists in your upload file.' AS mes,null id
RETURN;
END
IF EXISTS (select 'X' from @TEMP where (len(remitCardNo)<>16 and @cardType='r'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card serial number.' AS mes,null id
RETURN;
END
IF EXISTS (select 'X' from @TEMP where (len(remitCardNo)<>16 and @cardType='p'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card pin number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from @TEMP where (len(remitCardNo)<>8 and @cardType='c'))
BEGIN
SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
RETURN;
END
BEGIN TRANSACTION
INSERT INTO imeremitcardmaster(
remitCardNo
,accountNo
,cardStatus
,cardType
,createdBy
,createdDate
)SELECT
remitCardNo
,accountNo
,'HO'
,@cardType
,@user
,GETDATE()
FROM @temp
IF @cardType='r'
INSERT INTO imeremitcardmaster(
remitCardNo
,accountNo
,cardStatus
,cardType
,createdBy
,createdDate
)SELECT
remitCardNo
,accountNo
,'HO'
,'p'
,@user
,GETDATE()
FROM @temp
SELECT @totalQuantity=COUNT(*) FROM imeremitcardmaster
SELECT '0' errorCode,'Stock Sucessfully Uploaded.' mes,null id
COMMIT TRANSACTION
END
IF @flag = 'typedll'
BEGIN
SELECT '' AS name, 'Select' AS value
UNION ALL
SELECT 'IME Remit Card' AS name, 'IME Remit Card' AS value
UNION ALL
SELECT 'Customer Card' AS name, 'Customer Card' AS value
UNION ALL
SELECT 'PIN-IME Remit Card' AS name, 'PIN-IME Remit Card' AS value
END
IF @flag = 'statusdll'
BEGIN
SELECT '' AS name, 'Select' AS value
UNION ALL
SELECT 'HO' AS name, 'Head Office' AS value
UNION ALL
SELECT 'Transfered' AS name, 'Transfered' AS value
UNION ALL
SELECT 'Enrolled' AS name, 'Enrolled' AS value
END
IF @flag= 'delete'
BEGIN
UPDATE imeremitcardmaster
SET
isDeleted ='Y'
,modifiedBy = @user
,modifiedDate=GETDATE()
where id = @rowId
SELECT '0' ,'Successfully Deleted !!!' mes ,null id
END
IF @flag= 'select'
BEGIN
SELECT id as rowId
,ISNULL(am.agentName,'') AS AGENT
,icm.agentId
,remitCardNo
,accountNo
,cardType
,cardStatus
,icm.createdBy AS [user]
,icm.createdDate AS createdDate
,icm.modifiedDate AS modifiedDate
,icm.modifiedBy AS modifiedBy
FROM imeremitcardmaster icm WITH (NOLOCK) left join agentmaster am
ON icm.agentId=am.agentId WHERE icm.id = @rowid and ISNULL(icm.isDeleted,'N')<>'Y'
END
IF @flag ='u'
BEGIN
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='r'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card serial number.' AS mes,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>16 and @cardType='p'))
BEGIN
SELECT '1' errorCode,'Invalid length of remit card pin number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where (len(@remitCardNo)<>8 and @cardType='c'))
BEGIN
SELECT '1' errorCode,'Invalid length of customer card serial number.' AS mes ,null id
RETURN;
END
IF EXISTS (select 'X' from imeremitcardmaster where id <> @rowId and accountNo=@accountNumber and ISNULL(isDeleted,'N')<>'Y')
BEGIN
SELECT 1 errorCode,'Account number already exists.' mes ,null id
RETURN
END
IF EXISTS (select 'X' from imeremitcardmaster where id <> @rowId and remitCardNo=@remitCardNo and ISNULL(isDeleted,'N')<>'Y')
BEGIN
SELECT 1 errorCode,'Card number already exists.' mes ,null id
RETURN
END
UPDATE
imeremitcardmaster
SET
remitCardNo=@remitCardNo
,accountNo=@accountNumber
,agentId=@agentName
,modifiedBy=@user
,modifiedDate=GETDATE()
,cardStatus='HO'
WHERE id= @rowId
SELECT '0' errorCode,'Successfully Assigned !!!' AS mes ,null id
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK
SELECT 1 errorCode, ERROR_MESSAGE()+ERROR_LINE() mes, @rowId id
END CATCH
END
GO