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.

367 lines
21 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_agentTarget] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_agentTarget]
  9. @flag VARCHAR(50) = NULL
  10. ,@id INT = NULL
  11. ,@agentId INT = NULL
  12. ,@agentName VARCHAR(50) = Null
  13. ,@year varchar(20) = null
  14. ,@month varchar(50) = null
  15. ,@branchId VARCHAR(50) = NULL
  16. ,@countryId VARCHAR(50) = NULL
  17. ,@userType VARCHAR(2) = NULL
  18. ,@xml XML = NULL
  19. ,@user VARCHAR(50) = NULL
  20. ,@createdBy varchar(50) = NULl
  21. ,@targetTxn varchar(50) = NULl
  22. ,@targetEduPay varchar(50) = NULl
  23. ,@targetTopup varchar(50) = NULl
  24. ,@sortBy VARCHAR(50) = NULL
  25. ,@sortOrder VARCHAR(5) = NULL
  26. ,@pageSize INT = NULL
  27. ,@pageNumber INT = NULL
  28. AS
  29. SET NOCOUNT ON
  30. SET XACT_ABORT ON
  31. BEGIN
  32. DECLARE
  33. @table VARCHAR(MAX)
  34. ,@select_field_list VARCHAR(MAX)
  35. ,@extra_field_list VARCHAR(MAX)
  36. ,@sql_filter VARCHAR(MAX)
  37. ,@sql varchar(max)
  38. ,@StartDate VARCHAR(20)
  39. ,@previousMonthDate VARCHAR(20)
  40. ,@previousMonth VARCHAR(20)
  41. ,@previousYr VARCHAR(20)
  42. ,@totBonus VARCHAR(10)
  43. ,@totPoint MONEY
  44. ,@bonusPrize VARCHAR(500)
  45. ,@cashPrize VARCHAR(500)
  46. ,@head VARCHAR(MAX)
  47. IF @flag='s'
  48. BEGIN
  49. DECLARE
  50. @tblTemp TABLE (
  51. particulars VARCHAR(200),
  52. targentTxn VARCHAR(50),
  53. actualTxn VARCHAR(50),
  54. remarks VARCHAR(500)
  55. )
  56. SELECT @month = 'Ashad'
  57. SELECT @year = '2073'
  58. SELECT @previousMonth = 'Jestha'
  59. SELECT @previousYr = '2073'
  60. -- No Result case
  61. SELECT targentTxn head FROM @tblTemp WHERE 1=2
  62. SELECT [Bonus Point]=targentTxn,[Gifts]=targentTxn FROM @tblTemp WHERE 1=2
  63. SELECT 'Domestic Target for the month : <b>'+@month+'</b>' head
  64. INSERT INTO @tblTemp(particulars, targentTxn,actualTxn,remarks)
  65. SELECT
  66. Particular = 'Minimum Target'
  67. ,Target = minTarget
  68. ,Achived = actualTxn
  69. ,Remarks = 'Achieve your minimum target & get extra Rs 15/txn for extra txn.'
  70. FROM RemittanceLogData.dbo.agentTarget WITH(NOLOCK)
  71. WHERE (agentId = @branchId or agentId = @agentId)
  72. AND yr = @year
  73. AND yrMonth = @month
  74. AND userName IS NULL
  75. UNION ALL
  76. SELECT
  77. Particular = 'Final Target'
  78. ,Target = targentTxn
  79. ,Achived = actualTxn
  80. ,Remarks = 'Achieve your final target & get Flat incentive.'
  81. FROM RemittanceLogData.dbo.agentTarget WITH(NOLOCK)
  82. WHERE (agentId = @branchId or agentId = @agentId)
  83. AND yr = @year
  84. AND yrMonth = @month
  85. AND userName IS NULL
  86. SELECT
  87. 'Particular' = particulars
  88. ,[Target] = targentTxn
  89. ,[Actual] = ISNULL(actualTxn,0)
  90. ,[Remaining] = CASE
  91. WHEN CAST(CAST(ISNULL(targentTxn,0) AS INT) - CAST(ISNULL(actualTxn, 0) AS INT) AS VARCHAR) > 0 THEN CAST(CAST(ISNULL(targentTxn, 0) AS INT) - CAST(ISNULL(actualTxn, 0) AS INT) AS VARCHAR)
  92. ELSE 'Target Achieved'
  93. END
  94. ,Remarks
  95. FROM @tblTemp
  96. RETURN;
  97. END
  98. ELSE IF @flag='s-intl'
  99. BEGIN
  100. DECLARE
  101. @tblTempIntl TABLE (
  102. particulars VARCHAR(200),
  103. targentTxn VARCHAR(50),
  104. remarks VARCHAR(500)
  105. )
  106. SELECT @month = 'Jestha'
  107. SELECT @year = '2073'
  108. SELECT @previousMonth = 'Baisakh'
  109. SELECT @previousYr = '2072'
  110. -- No Result case
  111. SELECT targentTxn head FROM @tblTempIntl WHERE 1=2
  112. SELECT [Bonus Point]=targentTxn,[Gifts]=targentTxn FROM @tblTempIntl WHERE 1=2
  113. SELECT 'International Target for the month : <b>'+@month+'</b>' head
  114. INSERT INTO @tblTempIntl(particulars, targentTxn,remarks)
  115. SELECT
  116. Particular = 'Target'
  117. ,Target = targentTxn
  118. ,Remarks = 'Achieved at least Max. Txn on <b>'+@month+'</b> & get Rs 10/txn for total International Txn.'
  119. FROM RemittanceLogData.dbo.agentTargetIntl WITH(NOLOCK)
  120. WHERE (agentId = @branchId or agentId = @agentId)
  121. AND yr = @year
  122. AND yrMonth = @month
  123. SELECT
  124. 'Particular' = particulars
  125. , [Target] = targentTxn
  126. ,Remarks
  127. FROM @tblTempIntl
  128. RETURN
  129. END
  130. IF @flag='i'
  131. BEGIN
  132. INSERT INTO RemittanceLogData.dbo.agentTarget (
  133. agentId
  134. ,yr
  135. ,yrMonth
  136. ,targentTxn
  137. ,targetEduPay
  138. ,targetTopup
  139. ,createdBy
  140. ,createdDate
  141. )
  142. SELECT
  143. @agentId
  144. ,@year
  145. ,@month
  146. ,@targetTxn
  147. ,@targetEduPay
  148. ,@targetTopup
  149. ,@user
  150. ,GETDATE()
  151. SELECT 0, 'Target has been added successfully.', @agentId
  152. RETURN
  153. END
  154. IF @flag='u'
  155. BEGIN
  156. UPDATE RemittanceLogData.dbo.agentTarget SET
  157. agentId = @agentId
  158. ,yr = @year
  159. ,yrMonth = @month
  160. ,targentTxn = @targetTxn
  161. ,targetEduPay = @targetEduPay
  162. ,targetTopup = @targetTopup
  163. ,modifiedBy = @user
  164. ,modifiedDate = getdate()
  165. WHERE id= @id
  166. SELECT 0, 'Target has been updated successfully.', @id
  167. RETURN
  168. END
  169. IF @flag='sl'
  170. BEGIN
  171. IF @sortBy IS NULL
  172. SET @sortBy = 'agentId'
  173. IF @sortOrder IS NULL
  174. SET @sortOrder = 'ASC'
  175. SET @table = '(
  176. SELECT
  177. at.id
  178. ,am.agentName
  179. ,at.agentId
  180. ,yr
  181. ,yrMonth
  182. ,targentTxn
  183. ,targetEduPay
  184. ,targetTopup
  185. ,actualTxn
  186. ,actualEduPay
  187. ,actualTopup
  188. ,at.createdBy
  189. ,at.createdDate
  190. FROM RemittanceLogData.dbo.agentTarget at with(nolock)
  191. inner join agentMaster am with(nolock) on at.agentId = am.agentId
  192. and userName is null
  193. )x '
  194. SET @sql_filter = ''
  195. IF @agentId IS NOT NULL
  196. SET @sql_filter=@sql_filter+' AND agentId = '''+@agentId+''''
  197. IF @agentName IS NOT NULL
  198. SET @sql_filter=@sql_filter+' AND agentName like ''%'+@agentName+'%'''
  199. IF @year IS NOT NULL
  200. SET @sql_filter=@sql_filter+' AND yr = '''+@year+''''
  201. IF @month IS NOT NULL
  202. SET @sql_filter=@sql_filter+' AND yrMonth = '''+@month+''''
  203. SET @select_field_list ='
  204. id
  205. ,agentName
  206. ,agentId
  207. ,yr
  208. ,yrMonth
  209. ,targentTxn
  210. ,targetEduPay
  211. ,targetTopup
  212. ,actualTxn
  213. ,actualEduPay
  214. ,actualTopup
  215. ,createdBy
  216. ,createdDate
  217. '
  218. EXEC dbo.proc_paging
  219. @table
  220. ,@sql_filter
  221. ,@select_field_list
  222. ,@extra_field_list
  223. ,@sortBy
  224. ,@sortOrder
  225. ,@pageSize
  226. ,@pageNumber
  227. RETURN
  228. END
  229. IF @flag = 'd'
  230. BEGIN
  231. DELETE FROM RemittanceLogData.dbo.agentTarget WHERE id=@id
  232. SELECT 0, 'Target has been deleted successfully.', @id
  233. RETURN
  234. END
  235. ELSE IF @flag ='a'
  236. BEGIN
  237. SELECT
  238. at.*,am.agentName
  239. FROM RemittanceLogData.dbo.agentTarget at WITH(NOLOCK)
  240. INNER JOIN agentMaster am WITH(NOLOCK) ON at.agentId = am.agentId
  241. WHERE id = @id
  242. RETURN
  243. END
  244. ELSE IF @flag ='upload'
  245. BEGIN
  246. declare @agentTarget table(agentId varchar(50),yr varchar(50),yrMonth varchar(50),targentTxn varchar(50),targetEduPay varchar(50),targetTopup varchar(50))
  247. INSERT @agentTarget(agentId,yr,yrMonth,targentTxn,targetEduPay,targetTopup)
  248. SELECT
  249. p.value('@agentId','VARCHAR(50)'),
  250. p.value('@yr','VARCHAR(50)'),
  251. p.value('@yrMonth','VARCHAR(50)'),
  252. p.value('@txn','VARCHAR(50)'),
  253. p.value('@eduPay','VARCHAR(50)'),
  254. p.value('@topup','VARCHAR(50)')
  255. FROM @xml.nodes('/root/row') as tmp(p)
  256. insert into RemittanceLogData.dbo.agentTarget (agentId ,yr ,yrMonth ,targentTxn ,cashPrize,targetTopup,createdBy,createdDate,sAgent)
  257. select am.agentId ,yr ,yrMonth ,targentTxn ,targetEduPay,targetTopup,@user,getdate(),
  258. case when (am.agentType = '2903' and am.actAsBranch = 'Y') then am.agentId else am.parentId end from @agentTarget at
  259. inner join agentMaster am with(nolock) on at.agentId = am.agentId
  260. SELECT 'Agent Target Uploaded Sucessfully.' msg
  261. END
  262. ELSE IF @flag ='uploadPrize'
  263. BEGIN
  264. if not exists(select 'x' from RemittanceLogData.dbo.agentTarget with(nolock) where yr = @year and yrMonth = @month)
  265. begin
  266. select 'No Data Found.' msg
  267. return;
  268. end
  269. declare @prizeUpload table(agentId varchar(50),bonusPrize varchar(500),cashPrize varchar(500))
  270. INSERT @prizeUpload(agentId,bonusPrize,cashPrize)
  271. SELECT
  272. p.value('@agentId','VARCHAR(50)'),
  273. p.value('@bonusPrize','VARCHAR(50)'),
  274. p.value('@cashPrize','VARCHAR(50)')
  275. FROM @xml.nodes('/root/row') as tmp(p)
  276. update RemittanceLogData.dbo.agentTarget
  277. set bonusPrize = b.bonusPrize
  278. ,cashPrize = b.cashPrize
  279. ,prizeUploadBy = @user
  280. ,prizeUploadDate = getdate()
  281. from RemittanceLogData.dbo.agentTarget a,
  282. (
  283. select pu.bonusPrize,pu.cashPrize,am.agentId from @prizeUpload pu inner join agentMaster am with(nolock) on am.mapCodeInt = pu.agentId
  284. )b where a.agentId = b.agentId and a.yr = @year and a.yrMonth = @month
  285. SELECT 'Agent Target Prize Uploaded Sucessfully.' msg
  286. END
  287. ELSE IF @flag ='uploadZoneWise'
  288. BEGIN
  289. DECLARE @zoneTarget table(zoneName varchar(50),yr varchar(50),targentTxn varchar(50),targetEduPay varchar(50),targetTopup varchar(50),targetRemitCard varchar(50))
  290. INSERT @zoneTarget(zoneName,yr,targentTxn,targetEduPay,targetTopup,targetRemitCard)
  291. SELECT
  292. p.value('@Zone','VARCHAR(50)'),
  293. p.value('@Year','VARCHAR(50)'),
  294. p.value('@Domestic','VARCHAR(50)'),
  295. p.value('@EduPay','VARCHAR(50)'),
  296. p.value('@Topup','VARCHAR(50)'),
  297. p.value('@Card','VARCHAR(50)')
  298. FROM @xml.nodes('/root/row') as tmp(p)
  299. /*Update Matching Data*/
  300. UPDATE
  301. z
  302. SET
  303. z.targetDomTxn = t.targentTxn
  304. ,z.targetEduPay = t.targetEduPay
  305. ,z.targetTopup = t.targetTopup
  306. ,z.targetRemitCard = t.targetRemitCard
  307. FROM
  308. RemittanceLogData.dbo.zoneWiseTargetSetup z
  309. INNER JOIN @zoneTarget t on z.zoneName = t.zoneName AND z.yr = t.yr
  310. /*Delete Matching Data After Update*/
  311. DELETE FROM t
  312. FROM
  313. RemittanceLogData.dbo.zoneWiseTargetSetup z
  314. INNER JOIN @zoneTarget t on z.zoneName = t.zoneName AND z.yr = t.yr
  315. /* New Insert */
  316. INSERT INTO RemittanceLogData.dbo.zoneWiseTargetSetup(zoneName,yr,targetDomTxn,targetEduPay,targetTopup,targetRemitCard,createdby,createdDate)
  317. SELECT zoneName,yr,targentTxn,targetEduPay,targetTopup,targetRemitCard,@user,GETDATE() FROM @zoneTarget
  318. SELECT 'Zone Wise Target Uploaded Sucessfully.' msg
  319. END
  320. END
  321. GO