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.
 
 
 

307 lines
31 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_agentMigration] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procEDURE [dbo].[proc_agentMigration]
@flag VARCHAR(50) = NULL
AS
/*
TRUNCATE TABLE agentMaster
TRUNCATE TABLE agentContactPerson
TRUNCATE TABLE agentBankAccount
TRUNCATE TABLE creditLimit
SELECT * FROM agentmaster
EXEC proc_agentMigration 'i'
EXEC proc_agentMigration 'approve'
EXEC proc_agentMigration 'groupMap'
*/
IF @flag = 'i'
BEGIN
CREATE TABLE #result(errorCode INT, msg VARCHAR(200), id INT)
DECLARE @parentId INT = NULL, @bankId INT = NULL, @agentId INT = NULL
IF NOT EXISTS(SELECT 'X' FROM agentMaster WHERE agentName = 'Head Office')
BEGIN
INSERT INTO agentMaster(
parentId
,agentName
,agentCode
,agentAddress
,agentCity
,agentCountry
,agentState
,agentDistrict
,agentLocation
,agentType
,isActive
,createdDate
,createdBy
,approvedDate
,approvedBy
,agentCountryId
)
SELECT
0
,'Head Office'
,'HO'
,'Kathmandu'
,'Kathmandu'
,'Nepal'
,'Bagmati'
,'Kathmandu'
,137
,2901
,'Y'
,GETDATE()
,'system'
,GETDATE()
,'system'
,151
END
IF NOT EXISTS(SELECT 'X' FROM agentMaster WHERE agentId = 1002)
BEGIN
INSERT INTO agentMaster(parentId, agentName, agentAddress, agentCity, agentCountry, agentState, agentDistrict, agentLocation,
agentPhone1, agentMobile1, agentEmail1, businessOrgType, businessType, agentRole, agentType, allowAccountDeposit, actAsBranch, isSettlingAgent,
businessLicense, localTime, isActive, createdDate, createdBy, approvedDate, approvedBy, agentCountryId)
SELECT 1001, 'International Money Express (IME) Pvt. Ltd', 'Pani Pokhari, Kathmandu', 'Kathmandu', 'Nepal', 'Bagmati', 'Kathmandu', 137,
'4254578', '9841412145', 'imeremit@imeremit.com.np', '4503', '6200', 'B', '2902', 'N', 'N', 'N',
'1', '23', 'Y', GETDATE(), 'admin', GETDATE(), 'imeadmin', 151
END
SET @parentId = 1002
DECLARE @agentName VARCHAR(200), @bankName VARCHAR(200), @agentAddress VARCHAR(200), @agentCity VARCHAR(100), @agentCountryId INT, @agentCountry VARCHAR(100), @agentState VARCHAR(100),
@agentDistrict VARCHAR(100), @agentZip VARCHAR(15), @agentLocation INT, @agentPhone1 VARCHAR(20), @agentPhone2 VARCHAR(20), @agentFax1 VARCHAR(20),
@agentFax2 VARCHAR(20), @agentMobile1 VARCHAR(20), @agentMobile2 VARCHAR(20), @agentEmail1 VARCHAR(20), @agentEmail2 VARCHAR(20),
@businessOrgType INT, @businessType INT, @agentRole CHAR(1), @agentType INT, @allowAccountDeposit CHAR(1), @actAsBranch CHAR(1),
@contractExpiryDate DATETIME, @renewalFollowupDate DATETIME, @isSettlingAgent CHAR(1), @agentGroup INT, @businessLicense VARCHAR(50), @agentBlock CHAR(1),
@localTime INT, @agentDetails VARCHAR(200), @headMessage VARCHAR(200), @mapCodeInt VARCHAR(10), @mapCodeDom VARCHAR(10),
@commCodeInt VARCHAR(10), @commCodeDom VARCHAR(10), @isHO CHAR(1), @bank_name VARCHAR(100), @bankBranchName VARCHAR(100), @bankAccount VARCHAR(50),
@contactPerson VARCHAR(100), @joinedDate DATETIME
--Agent Act As Branch
DECLARE @branchList TABLE(rowId INT IDENTITY(1,1), district_bank VARCHAR(100), agent_branch_code VARCHAR(8), branch VARCHAR(100), address VARCHAR(100),
city VARCHAR(100), email VARCHAR(100), contactPerson VARCHAR(100), telephone VARCHAR(50), fax VARCHAR(50), bank_name VARCHAR(100),
bankBranchName VARCHAR(100), bankAccount VARCHAR(50), interCommId VARCHAR(8), domesticId VARCHAR(8), domesticCommId VARCHAR(8), location INT, startHour INT, endhour INT,
letterHead VARCHAR(MAX), certificate VARCHAR(200), limitPtran MONEY, creditLimit MONEY, created DATETIME, joined DATETIME, headOffice CHAR(1),
PAN VARCHAR(30), Constitution VARCHAR(100))
INSERT INTO @branchList
SELECT * FROM FINALAGENT WHERE District_Bank NOT IN(
SELECT District_Bank FROM FINALAGENT WHERE
District_Bank LIKE '%Bank%' OR
District_Bank LIKE '%Finance%' OR
District_Bank LIKE '%Ltd%' OR
District_Bank LIKE '%Limited%')
ORDER BY District_Bank, branch ASC
DECLARE @totalRows INT, @count INT
SET @count = 1
SELECT @totalRows = COUNT(*) FROM @branchList
WHILE(@count <= @totalRows)
BEGIN
SELECT DISTINCT @mapCodeInt = agent_branch_code, @agentName = branch, @agentAddress = [address], @agentCity = city, @agentEmail1 = email, @agentPhone1 = telephone,
@agentFax1 = fax, @commCodeInt = interCommID, @mapCodeDom = domesticId, @commCodeDom = domesticCommId, @agentLocation = location, @headMessage = letterHead,
@isHO = HeadOffice, @businessLicense = PAN, @bank_name = bank_name, @bankBranchName = bankBranchname, @bankAccount = bankAccount,
@contactPerson = contactPerson, @joinedDate = joined,
@businessOrgType = CASE WHEN Constitution = 'Partnership Firm' THEN 4502 WHEN Constitution = 'Limited Company' THEN 6003
WHEN Constitution = 'IME exchange counter' THEN 6002 WHEN Constitution = 'Private Ltd. Firm' THEN 6002
WHEN Constitution = 'Proprietorship Firm' THEN 4501 END
FROM @branchList WHERE rowId = @count
SELECT @agentCountryId = 151, @agentCountry = 'Nepal', @localTime = 23, @isSettlingAgent = 'Y', @actAsBranch = 'Y', @agentType = 2903
SELECT DISTINCT @agentDistrict = zdm.districtName, @agentState = csm.stateName FROM apiLocationMapping alm
INNER JOIN zoneDistrictMap zdm ON alm.districtId = zdm.districtId
INNER JOIN countryStateMaster csm ON zdm.zone = csm.stateId WHERE alm.apiDistrictCode = @agentLocation
INSERT INTO #result
EXEC proc_agentMasterMigration @flag = 'i', @user = 'admin', @agentId = null, @parentId = @parentId, @agentName = @agentName, @agentAddress = @agentAddress
, @agentCity = @agentCity, @agentCountryId = @agentCountryId, @agentCountry = @agentCountry, @agentState = @agentState
, @agentDistrict = @agentDistrict, @agentZip = @agentZip, @agentLocation = @agentLocation, @agentPhone1 = @agentPhone1
, @agentPhone2 = @agentPhone2, @agentFax1 = @agentFax1, @agentFax2 = @agentFax1, @agentMobile1 = @agentMobile1, @agentMobile2 = @agentMobile2
, @agentEmail1 = @agentEmail1, @agentEmail2 = @agentEmail2, @businessOrgType = @businessOrgType, @businessType = @businessType
, @agentRole = @agentRole, @agentType = @agentType, @allowAccountDeposit = @allowAccountDeposit, @actAsBranch = @actAsBranch
, @contractExpiryDate = @contractExpiryDate, @renewalFollowupDate = @renewalFollowupDate, @isSettlingAgent = @isSettlingAgent
, @agentGroup = @agentGroup, @businessLicense = @businessLicense, @agentBlock = @agentBlock, @localTime = @localTime
, @agentDetails = @agentDetails, @headMessage = @headMessage
, @mapCodeInt = @mapCodeInt, @mapCodeDom = @mapCodeDom, @commCodeInt = @commCodeInt, @commCodeDom = @commCodeDom
, @joinedDate = @joinedDate
SELECT @agentId = id FROM #result
DELETE FROM #result
INSERT INTO agentBankAccount(agentId, bankName, bankBranch, accountNo, createdBy, createdDate)
SELECT @agentId, @bank_name, @bankBranchName, @bankAccount, 'admin', GETDATE()
INSERT INTO agentContactPerson(agentId, name, isPrimary, createdBy, createdDate)
SELECT @agentId, @contactPerson, 'Y', 'admin', GETDATE()
INSERT INTO agentGroupMaping(agentId, groupCat, groupDetail, createdBy, createdDate)
SELECT @agentId, 6900, 6220, 'admin', GETDATE() UNION ALL
SELECT @agentId, 6600, CASE WHEN @agentLocation IN (137, 177, 225) THEN 7018 ELSE 7021 END, 'admin', GETDATE()
SET @count = @count + 1
END
IF OBJECT_ID('tempdb..#bankBranchList') IS NOT NULL
DROP TABLE #bankBranchList
DELETE FROM @branchList
INSERT INTO @branchList
SELECT * FROM FINALAGENT WHERE
District_Bank LIKE '%Bank%' OR
District_Bank LIKE '%Finance%' OR
District_Bank LIKE '%Ltd%' OR
District_Bank LIKE '%Limited%'
ORDER BY District_Bank, headoffice DESC
SELECT @totalRows = @totalRows + COUNT(*) FROM @branchList
WHILE(@count <= @totalRows)
BEGIN
SELECT DISTINCT @mapCodeInt = agent_branch_code, @agentName = branch, @bankName = district_bank, @agentAddress = [address], @agentCity = city, @agentEmail1 = email, @agentPhone1 = telephone,
@agentFax1 = fax, @commCodeInt = interCommID, @mapCodeDom = domesticId, @commCodeDom = domesticCommId, @agentLocation = location, @headMessage = letterHead,
@agentCountryId = 151, @agentCountry = 'Nepal', @localTime = 23,
@isHO = HeadOffice, @businessLicense = PAN, @bank_name = bank_name, @bankBranchName = bankBranchname, @bankAccount = bankAccount,
@contactPerson = contactPerson, @joinedDate = joined,
@businessOrgType = CASE WHEN Constitution = 'Partnership Firm' THEN 4502 WHEN Constitution = 'Limited Company' THEN 6003
WHEN Constitution = 'IME exchange counter' THEN 6002 WHEN Constitution = 'Private Ltd. Firm' THEN 6002
WHEN Constitution = 'Proprietorship Firm' THEN 4501 END
FROM @branchList WHERE rowId = @count
SELECT DISTINCT @agentDistrict = zdm.districtName, @agentState = csm.stateName FROM apiLocationMapping alm
INNER JOIN zoneDistrictMap zdm ON alm.districtId = zdm.districtId
INNER JOIN countryStateMaster csm ON zdm.zone = csm.stateId WHERE alm.apiDistrictCode = @agentLocation
IF ISNULL(@isHO, 'N') = 'Y'
BEGIN
SELECT @isSettlingAgent = 'Y', @actAsBranch = 'N', @agentType = 2903
INSERT INTO #result(errorCode, msg, id)
EXEC proc_agentMasterMigration @flag = 'i', @user = 'admin', @agentId = null, @parentId = @parentId, @agentName = @bankName, @agentAddress = @agentAddress
, @agentCity = @agentCity, @agentCountryId = @agentCountryId, @agentCountry = @agentCountry, @agentState = @agentState
, @agentDistrict = @agentDistrict, @agentZip = @agentZip, @agentLocation = @agentLocation, @agentPhone1 = @agentPhone1
, @agentPhone2 = @agentPhone2, @agentFax1 = @agentFax1, @agentFax2 = @agentFax1, @agentMobile1 = @agentMobile1, @agentMobile2 = @agentMobile2
, @agentEmail1 = @agentEmail1, @agentEmail2 = @agentEmail2, @businessOrgType = @businessOrgType, @businessType = @businessType
, @agentRole = @agentRole, @agentType = @agentType, @allowAccountDeposit = @allowAccountDeposit, @actAsBranch = @actAsBranch
, @contractExpiryDate = @contractExpiryDate, @renewalFollowupDate = @renewalFollowupDate, @isSettlingAgent = @isSettlingAgent
, @agentGroup = @agentGroup, @businessLicense = @businessLicense, @agentBlock = @agentBlock, @localTime = @localTime
, @agentDetails = @agentDetails, @headMessage = @headMessage
, @mapCodeInt = @mapCodeInt, @mapCodeDom = @mapCodeDom, @commCodeInt = @commCodeInt, @commCodeDom = @commCodeDom
, @joinedDate = @joinedDate
SELECT @bankId = id FROM #result
DELETE FROM #result
INSERT INTO agentBankAccount(agentId, bankName, bankBranch, accountNo, createdBy, createdDate)
SELECT @bankId, @bank_name, @bankBranchName, @bankAccount, 'admin', GETDATE()
INSERT INTO agentContactPerson(agentId, name, isPrimary, createdBy, createdDate)
SELECT @bankId, @contactPerson, 'Y', 'admin', GETDATE()
END
SELECT @isSettlingAgent = 'N', @actAsBranch = 'N', @agentType = 2904
INSERT INTO #result
EXEC proc_agentMasterMigration @flag = 'i', @user = 'admin', @agentId = null, @parentId = @bankId, @agentName = @agentName, @agentAddress = @agentAddress
, @agentCity = @agentCity, @agentCountryId = @agentCountryId, @agentCountry = @agentCountry, @agentState = @agentState
, @agentDistrict = @agentDistrict, @agentZip = @agentZip, @agentLocation = @agentLocation, @agentPhone1 = @agentPhone1
, @agentPhone2 = @agentPhone2, @agentFax1 = @agentFax1, @agentFax2 = @agentFax1, @agentMobile1 = @agentMobile1, @agentMobile2 = @agentMobile2
, @agentEmail1 = @agentEmail1, @agentEmail2 = @agentEmail2, @businessOrgType = @businessOrgType, @businessType = @businessType
, @agentRole = @agentRole, @agentType = @agentType, @allowAccountDeposit = @allowAccountDeposit, @actAsBranch = @actAsBranch
, @contractExpiryDate = @contractExpiryDate, @renewalFollowupDate = @renewalFollowupDate, @isSettlingAgent = @isSettlingAgent
, @agentGroup = @agentGroup, @businessLicense = @businessLicense, @agentBlock = @agentBlock, @localTime = @localTime
, @agentDetails = @agentDetails, @headMessage = @headMessage
, @mapCodeInt = @mapCodeInt, @mapCodeDom = @mapCodeDom, @commCodeInt = @commCodeInt, @commCodeDom = @commCodeDom
, @joinedDate = @joinedDate
SELECT @agentId = id FROM #result
DELETE FROM #result
INSERT INTO agentBankAccount(agentId, bankName, bankBranch, accountNo, createdBy, createdDate)
SELECT @agentId, @bank_name, @bankBranchName, @bankAccount, 'admin', GETDATE()
INSERT INTO agentContactPerson(agentId, name, isPrimary, createdBy, createdDate)
SELECT @agentId, @contactPerson, 'Y', 'admin', GETDATE()
INSERT INTO agentGroupMaping(agentId, groupCat, groupDetail, createdBy, createdDate)
SELECT @agentId, 6900, 6220, 'admin', GETDATE() UNION ALL
SELECT @agentId, 6600, CASE WHEN @agentLocation IN (137, 177, 225) THEN 7018 ELSE 7021 END, 'admin', GETDATE()
SET @count = @count + 1
END
END
ELSE IF @flag = 'approve'
BEGIN
DECLARE @creditLimit MONEY
DECLARE @agentIds TABLE(rowId INT IDENTITY(1,1), agentId INT, mapCodeInt VARCHAR(8))
INSERT @agentIds
SELECT agentId, mapCodeInt FROM agentMaster WHERE approvedBy IS NULL
SELECT @totalRows = COUNT(*) FROM @agentIds
SET @count = 1
WHILE (@count <= @totalRows)
BEGIN
SELECT @agentId = agentId, @mapCodeInt = mapCodeInt FROM @agentIds WHERE rowId = @count
EXEC proc_agentMasterMigration @flag = 'approve', @user = 'imeadmin', @agentId = @agentId
SELECT @creditLimit = creditLimit FROM FINALAGENT WHERE agent_branch_Code = @mapCodeInt
UPDATE creditLimit SET
limitAmt = @creditLimit
,maxLimitAmt = @creditLimit
WHERE agentId = @agentId
SET @count = @count + 1
END
END
ELSE IF @flag = 'groupMap'
BEGIN
--TRUNCATE TABLE agentGroupMaping
DECLARE @agentIds2 TABLE(agentId INT, agentLocation INT, actAsBranch CHAR(1), agentType INT)
INSERT @agentIds2
SELECT agentId, agentLocation, actAsBranch, agentType FROM agentMaster
SELECT @totalRows = COUNT(*) FROM @agentIds2
SET @count = 1
WHILE EXISTS(SELECT 'X' FROM @agentIds2)
BEGIN
SELECT TOP 1 @agentId = agentId, @agentLocation = agentLocation, @actAsBranch = actAsBranch, @agentType = agentType FROM @agentIds2
IF (@agentType IN (2903,2904))
BEGIN
INSERT INTO agentGroupMaping(agentId, groupCat, groupDetail, createdBy, createdDate)
SELECT @agentId, 6900, 6220, 'admin', GETDATE()
END
IF (@actAsBranch = 'Y' OR @agentType = 2904)
BEGIN
INSERT INTO agentGroupMaping(agentId, groupCat, groupDetail, createdBy, createdDate)
SELECT @agentId, 6600, CASE WHEN @agentLocation IN (137, 177, 225) THEN 7018 ELSE 7021 END, 'admin', GETDATE()
END
DELETE FROM @agentIds2 WHERE agentId = @agentId
END
END
/*
--Agent Act As Branch
SELECT * FROM FINALAGENT WHERE District_Bank NOT IN(
SELECT District_Bank FROM FINALAGENT WHERE
District_Bank LIKE '%Bank%' OR
District_Bank LIKE '%Finance%' OR
District_Bank LIKE '%Ltd%' OR
District_Bank LIKE '%Limited%')
ORDER BY District_Bank, branch ASC
--Branches
SELECT * FROM FINALAGENT WHERE
District_Bank LIKE '%Bank%' OR
District_Bank LIKE '%Finance%' OR
District_Bank LIKE '%Ltd%' OR
District_Bank LIKE '%Limited%'
ORDER BY District_Bank, headoffice DESC
*/
/*
DELETE FROM FINALAGENT WHERE district_bank IN (
'Annapurna Bikas Bank Limited',
'Annapurna Finance Company Ltd.'
'Business Development Bank Ltd.',
'GLOBAL BANK LTD.',
'Himchuli Bikas Bank Ltd.',
'Standard Finance Limited')
*/
GO