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.
 
 
 

231 lines
13 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_sscCopyMaster] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/*
proc_sscMaster @flag = 'm', @user = 'admin'
*/
CREATE PROC [dbo].[proc_sscCopyMaster]
@flag VARCHAR(50) = NULL
,@user VARCHAR(30) = NULL
,@sscMasterId VARCHAR(30) = NULL
,@code VARCHAR(10) = NULL
,@description VARCHAR(200) = NULL
,@sHub INT = NULL
,@sCountry INT = NULL
,@ssAgent INT = NULL
,@sAgent INT = NULL
,@sBranch INT = NULL
,@rHub INT = NULL
,@rCountry INT = NULL
,@rsAgent INT = NULL
,@rAgent INT = NULL
,@rBranch INT = NULL
,@state INT = NULL
,@zip VARCHAR(20) = NULL
,@agentGroup INT = NULL
,@rState INT = NULL
,@rZip VARCHAR(20) = NULL
,@rAgentGroup INT = NULL
,@baseCurrency INT = NULL
,@tranType INT = NULL
,@veType INT = NULL
,@ve MONEY = NULL
,@neType INT = NULL
,@ne MONEY = NULL
,@effectiveFrom DATETIME = NULL
,@effectiveTo DATETIME = NULL
,@isEnable CHAR(1) = NULL
,@copySscMasterId INT = NULL
,@sessionId VARCHAR(50) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
AS
SET NOCOUNT ON
SET XACT_ABORT ON
BEGIN TRY
CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
DECLARE
@sql VARCHAR(MAX)
,@oldValue VARCHAR(MAX)
,@newValue VARCHAR(MAX)
,@module VARCHAR(10)
,@tableAlias VARCHAR(100)
,@logIdentifier VARCHAR(50)
,@logParamMod VARCHAR(100)
,@logParamMain VARCHAR(100)
,@table VARCHAR(MAX)
,@select_field_list VARCHAR(MAX)
,@extra_field_list VARCHAR(MAX)
,@sql_filter VARCHAR(MAX)
,@functionId INT
,@id VARCHAR(10)
,@modType VARCHAR(6)
,@ApprovedFunctionId INT
SELECT
@ApprovedFunctionId = 20131130
,@logIdentifier = 'sscMasterId'
,@logParamMain = 'sscMaster'
,@logParamMod = 'sscMasterHistory'
,@module = '20'
,@tableAlias = 'Special Service Charge'
DECLARE @DetailIdList TABLE(detailId BIGINT, modType VARCHAR(10))
DECLARE @detailId BIGINT
IF @flag = 'scl'
BEGIN
SELECT
ccm.countryId
,ccm.countryName
,cnt = COUNT(rCountry)
FROM countryCurrencyMaster ccm WITH(NOLOCK)
LEFT JOIN dscMaster dscm WITH(NOLOCK) ON ccm.countryId = dscm.sCountry
WHERE ISNULL(ccm.isDeleted, 'N') <> 'Y'
GROUP BY ccm.countryId, ccm.countryName
RETURN
END
ELSE IF @flag = 'i'
BEGIN
IF EXISTS(SELECT 'x' FROM sscMaster WHERE
sHub = ISNULL(@sHub, sHub) AND
rHub = ISNULL(@rHub, rHub) AND
ssAgent = ISNULL(@ssAgent, ssAgent) AND
rsAgent = ISNULL(@rsAgent, rsAgent) AND
sCountry = ISNULL(@sCountry, sCountry) AND
rCountry = ISNULL(@rCountry, rCountry) AND
sAgent = ISNULL(@sAgent, sAgent) AND
rAgent = ISNULL(@rAgent, rAgent) AND
sBranch = ISNULL(@sBranch, sBranch) AND
rBranch = ISNULL(@rBranch, rBranch) AND
tranType = ISNULL(@tranType, tranType) AND
ISNULL(isDeleted,'N')<>'Y')
BEGIN
EXEC proc_errorHandler 1, 'Record already exist.', @sscMasterId
RETURN
END
BEGIN TRANSACTION
INSERT INTO sscMaster (
code
,[description]
,sHub
,sCountry
,ssAgent
,sAgent
,sBranch
,rHub
,rCountry
,rsAgent
,rAgent
,rBranch
,[state]
,zip
,agentGroup
,rState
,rZip
,rAgentGroup
,baseCurrency
,tranType
,veType
,ve
,neType
,ne
,effectiveFrom
,effectiveTo
,isEnable
,createdBy
,createdDate
)
SELECT
@code
,@description
,@sHub
,@sCountry
,@ssAgent
,@sAgent
,@sBranch
,@rHub
,@rCountry
,@rsAgent
,@rAgent
,@rBranch
,@state
,@zip
,@agentGroup
,@rState
,@rZip
,@rAgentGroup
,@baseCurrency
,@tranType
,@veType
,@ve
,@neType
,@ne
,@effectiveFrom
,@effectiveTo
,@isEnable
,@user
,GETDATE()
SET @sscMasterId = SCOPE_IDENTITY()
insert into sscDetail(sscMasterId,fromAmt,toAmt,pcnt,minAmt,maxAmt,isActive,isDeleted,
approvedBy,approvedDate,createdBy,createdDate,modifiedBy,modifiedDate)
select @sscMasterId,fromAmt,toAmt,pcnt,minAmt,maxAmt,isActive,isDeleted,
approvedBy,approvedDate,createdBy,createdDate,modifiedBy,modifiedDate
from sscDetailTemp where sessionId=@sessionId
delete from sscDetailTemp where sessionId=@sessionId and sscMasterId=@sscMasterId
IF @@TRANCOUNT > 0
COMMIT TRANSACTION
EXEC proc_errorHandler 0, 'Record has been added successfully.', @sscMasterId
END
ELSE IF @flag = 'a'
BEGIN
SELECT
*
,CONVERT(VARCHAR, effectiveFrom, 101) effFrom
,CONVERT(VARCHAR, effectiveTo, 101) effTo
FROM sscMaster WITH(NOLOCK) WHERE sAgent=@sAgent
select @copySscMasterId=sscMasterId from sscMaster where sAgent=@sAgent
if exists(select * from sscDetailTemp where sscMasterId=@copySscMasterId and sessionId=@sessionId)
begin
delete from sscDetailTemp where sscMasterId=@copySscMasterId and sessionId=@sessionId
end
insert into sscDetailTemp(sscMasterId,fromAmt,toAmt,pcnt,minAmt,maxAmt,
isActive,isDeleted,approvedBy,approvedDate,createdBy,createdDate,modifiedBy,modifiedDate,sessionId)
select sscMasterId,fromAmt,toAmt,pcnt,minAmt,maxAmt,
isActive,isDeleted,approvedBy,approvedDate,createdBy,createdDate,modifiedBy,modifiedDate,@sessionId from sscDetail
where sscMasterId=@copySscMasterId
--ALTER TABLE sscDetailTemp ADD sessionId varchar(50)
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
DECLARE @errorMessage VARCHAR(MAX)
SET @errorMessage = ERROR_MESSAGE()
EXEC proc_errorHandler 1, @errorMessage, @sscMasterId
END CATCH
GO