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.
 
 
 

153 lines
10 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_agentToAgentCardTransfer] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_agentToAgentCardTransfer]
(
@flag VARCHAR(20) = NULL
,@user VARCHAR(30) = NULL
,@rowId INT = NULL
,@agentFrmName VARCHAR(255) = NULL
,@agentToName VARCHAR(255) = NULL
,@remitCardNo VARCHAR(30) = NULL
,@cardType VARCHAR(30) = NULL
,@cardStatus VARCHAR(30) = NULL
,@fromCardNo BIGINT = NULL
,@toCardNo BIGINT = NULL
,@modifiedDate VARCHAR(30) = NULL
,@modifiedBy VARCHAR(30) = NULL
,@createdDate VARCHAR(30) = NULL
,@createdBy VARCHAR(30) = NULL
)
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN
BEGIN TRY
IF @flag='agentTransfer'
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 remitcardNo = @remitCardNo and cardStatus='Enrolled' and ISNULL(isDeleted,'N') <> 'Y')
BEGIN
SELECT '1' errorCode,'Card is already enrolled.' AS mes ,null id
RETURN;
END
IF NOT EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo = @remitCardNo and cardStatus='Transfered' and ISNULL(agentId,'1001') = @agentFrmName and ISNULL(isDeleted,'N') <> 'Y')
BEGIN
SELECT '1' errorCode,'Cards is not in stock with provided agent.' AS mes ,null id
RETURN;
END
BEGIN TRANSACTION
UPDATE imeremitcardmaster
SET agentId = @agentToName
,cardStatus ='Transfered'
,transferedBy =@user
,transferedDate =GETDATE()
where remitcardNo = @remitCardNo
SELECT '0' errorCode,'Successfully transfered.' AS mes ,null id
RETURN;
COMMIT TRANSACTION
END
IF @flag ='loopTransfer'
BEGIN
IF EXISTS (select 'X' from imeremitcardmaster where (len(@fromCardNo)<>8 and @cardType='c') or (len(@toCardNo)<>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 remitcardNo between @fromCardNo and @toCardNo and cardStatus='Enrolled' AND ISNULL(agentId,'1001') = @agentFrmName AND ISNULL(isDeleted,'N') <> 'Y')
BEGIN
SELECT '1' errorCode,'Some of the cards are already Enrolled.' AS mes ,null id
RETURN;
END
IF EXISTS(SELECT 'X' from imeremitcardmaster where remitcardNo between @fromCardNo and @toCardNo and (cardStatus='Transfered' OR cardStatus='HO') AND ISNULL(agentId,'1001') = @agentFrmName and ISNULL(isDeleted,'N') <> 'Y' having count('x') <> (@toCardNo - @fromCardNo)+ 1)
BEGIN
SELECT '1' errorCode,'Provided cards are not in stock with assigned agent.' AS mes ,null id
RETURN;
END
IF EXISTS(SELECT 'X' FROM imeremitcardmaster WITH(NOLOCK) WHERE remitCardNo between @fromCardNo and @toCardNo AND ISNULL(isDeleted,'N') <> 'Y' having count('x') <> (@toCardNo - @fromCardNo)+ 1 )
BEGIN
SELECT 1 errorCode,'Some of card number doesnot exists in stock. \n Please update your stock. ' mes ,null id
RETURN
END
IF NOT EXISTS (select 'X' from imeremitcardmaster where remitCardNo = @toCardNo and @cardType='c')
BEGIN
SELECT '1' errorCode,'Card stock exceeds for transfer.' AS mes ,null id
RETURN;
END
BEGIN TRANSACTION
BEGIN
UPDATE
icm
SET
agentId=@agentToName
,modifiedBy=@user
,cardStatus ='Transfered'
,transferedBy =@user
,transferedDate =GETDATE()
,modifiedDate=GETDATE()
FROM imeremitcardmaster icm
INNER JOIN
imeremitcardmaster im
ON icm.remitCardNo = im.remitCardNo WHERE icm.remitCardNo between @fromCardNo and @toCardNo
END
COMMIT TRANSACTION
SELECT '0' errorCode,'Successfully Assigned.' AS mes ,null id
END
IF @flag = 'getStockAmount'
BEGIN
SELECT COUNT(remitcardno) FROM imeremitcardmaster WITH(NOLOCK)
WHERE ISNULL(agentId,'1001') = @agentFrmName
AND (cardStatus ='Transfered' or cardStatus ='HO') and cardtype = @cardType
END
END TRY
BEGIN CATCH
SELECT 1 , ERROR_MESSAGE()+ERROR_LINE() mes , null id
RETURN
END CATCH
END
GO