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.

471 lines
28 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_ncellUpload] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. select * from ncellFreeSimCampaign
  10. DELETE FROM ncellFreeSimCampaign
  11. */
  12. CREATE proc [dbo].[proc_ncellUpload]
  13. @flag VARCHAR(50) = NULL
  14. ,@user VARCHAR(30) = NULL
  15. ,@rowId INT = NULL
  16. ,@filePath VARCHAR(500) = NULL
  17. AS
  18. SET NOCOUNT ON
  19. SET XACT_ABORT ON
  20. BEGIN TRY
  21. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  22. DECLARE
  23. @sql VARCHAR(MAX)
  24. ,@oldValue VARCHAR(MAX)
  25. ,@newValue VARCHAR(MAX)
  26. ,@tableAlias VARCHAR(100)
  27. ,@logIdentifier VARCHAR(50)
  28. ,@logParamMain VARCHAR(100)
  29. ,@modType VARCHAR(6)
  30. SELECT
  31. @logIdentifier = 'id'
  32. ,@logParamMain = 'ncellFreeSimCampaign'
  33. ,@tableAlias = 'Ncell Free Sim Campaign'
  34. IF @flag = 'mActivate'
  35. BEGIN
  36. IF EXISTS(SELECT 'x' FROM ncellFreeSimCampaign WITH(NOLOCK)
  37. WHERE id=@rowid AND activatedDate IS NOT NULL AND rejectedDate IS NULL)
  38. BEGIN
  39. EXEC proc_errorHandler 1, 'Already Activated Record.', @rowId
  40. RETURN
  41. END
  42. BEGIN TRANSACTION
  43. UPDATE ncellFreeSimCampaign SET
  44. activatedBy = @user
  45. ,activatedDate= GETDATE()
  46. ,rejectedBy=null
  47. ,rejectedDate=null
  48. WHERE id = @rowId
  49. SET @modType = 'Activate'
  50. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  51. INSERT INTO #msg(errorCode, msg, id)
  52. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  53. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  54. BEGIN
  55. IF @@TRANCOUNT > 0
  56. ROLLBACK TRANSACTION
  57. EXEC proc_errorHandler 1, 'Failed to activate record.', @rowId
  58. RETURN
  59. END
  60. IF @@TRANCOUNT > 0
  61. COMMIT TRANSACTION
  62. EXEC proc_errorHandler 0, 'Record activated successfully.', @rowId
  63. END
  64. ELSE IF @flag = 'mDocAck'
  65. BEGIN
  66. IF EXISTS(SELECT 'x' FROM ncellFreeSimCampaign WITH(NOLOCK)
  67. WHERE id=@rowid AND docReceivedDate IS NOT NULL and rejectedDate is null)
  68. BEGIN
  69. EXEC proc_errorHandler 1, 'Already Received Document.', @rowId
  70. RETURN
  71. END
  72. BEGIN TRANSACTION
  73. UPDATE ncellFreeSimCampaign SET
  74. docReceivedBy = @user
  75. ,docReceivedDate = GETDATE()
  76. ,rejectedBy=null
  77. ,rejectedDate=null
  78. WHERE id = @rowId
  79. SET @modType = 'Doc Received'
  80. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  81. INSERT INTO #msg(errorCode, msg, id)
  82. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  83. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  84. BEGIN
  85. IF @@TRANCOUNT > 0
  86. ROLLBACK TRANSACTION
  87. EXEC proc_errorHandler 1, 'Failed to Doc Receive record.', @rowId
  88. RETURN
  89. END
  90. IF @@TRANCOUNT > 0
  91. COMMIT TRANSACTION
  92. EXEC proc_errorHandler 0, 'Record Document Received successfully.', @rowId
  93. END
  94. ELSE IF @flag = 'mDocSend'
  95. BEGIN
  96. IF EXISTS(SELECT 'x' FROM ncellFreeSimCampaign WITH(NOLOCK)
  97. WHERE id=@rowid AND docSendDate IS NOT NULL and rejectedDate is null)
  98. BEGIN
  99. EXEC proc_errorHandler 1, 'Already Document Sent.', @rowId
  100. RETURN
  101. END
  102. BEGIN TRANSACTION
  103. UPDATE ncellFreeSimCampaign SET
  104. docSendBy = @user
  105. ,docSendDate= GETDATE()
  106. ,rejectedBy=null
  107. ,rejectedDate=null
  108. WHERE id = @rowId
  109. SET @modType = 'Document Send'
  110. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  111. INSERT INTO #msg(errorCode, msg, id)
  112. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  113. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  114. BEGIN
  115. IF @@TRANCOUNT > 0
  116. ROLLBACK TRANSACTION
  117. EXEC proc_errorHandler 1, 'Failed to Document Send.', @rowId
  118. RETURN
  119. END
  120. IF @@TRANCOUNT > 0
  121. COMMIT TRANSACTION
  122. EXEC proc_errorHandler 0, 'Record Document Sent successfully.', @rowId
  123. END
  124. ELSE IF @flag = 'reject'
  125. BEGIN
  126. BEGIN TRANSACTION
  127. UPDATE ncellFreeSimCampaign SET
  128. rejectedBy = @user
  129. ,rejectedDate= GETDATE()
  130. WHERE id = @rowId
  131. SET @modType = 'reject'
  132. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  133. INSERT INTO #msg(errorCode, msg, id)
  134. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  135. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  136. BEGIN
  137. IF @@TRANCOUNT > 0
  138. ROLLBACK TRANSACTION
  139. EXEC proc_errorHandler 1, 'Failed to Reject Record.', @rowId
  140. RETURN
  141. END
  142. IF @@TRANCOUNT > 0
  143. COMMIT TRANSACTION
  144. EXEC proc_errorHandler 0, 'Record Rejected successfully.', @rowId
  145. END
  146. IF @flag='upload'
  147. BEGIN
  148. UPDATE SIMReceivedFromNcell_Temp
  149. SET
  150. ICCID=REPLACE(LTRIM(ICCID),'',''),
  151. MOBILE=REPLACE(LTRIM(MOBILE),'','')
  152. UPDATE SIMReceivedFromNcell_Temp
  153. SET
  154. ICCID=REPLACE((ICCID),' ',''),
  155. MOBILE=REPLACE((MOBILE),' ','')
  156. IF EXISTS(SELECT 'X' FROM SIMReceivedFromNcell_Temp WITH(NOLOCK) WHERE LEN(MOBILE)<>10)
  157. BEGIN
  158. DELETE FROM SIMReceivedFromNcell_Temp
  159. SELECT 'Invalid Mobile Length!' AS remarks
  160. RETURN;
  161. END
  162. IF EXISTS(SELECT 'X' FROM SIMReceivedFromNcell_Temp
  163. GROUP BY mobile
  164. HAVING COUNT(*)>1)
  165. BEGIN
  166. DELETE FROM SIMReceivedFromNcell_Temp
  167. SELECT 'Dublicate Mobile Number!' AS remarks
  168. RETURN;
  169. END
  170. IF EXISTS(SELECT 'X' FROM SIMReceivedFromNcell_Temp
  171. GROUP BY iccId
  172. HAVING COUNT(*)>1)
  173. BEGIN
  174. DELETE FROM SIMReceivedFromNcell_Temp
  175. SELECT 'Dublicate ICCID Number!' AS remarks
  176. RETURN;
  177. END
  178. IF EXISTS(SELECT 'x' FROM SIMReceivedFromNcell_Temp a WITH(NOLOCK)
  179. INNER JOIN SIMReceivedFromNcell b WITH(NOLOCK) ON a.mobile=b.mobile )
  180. BEGIN
  181. DELETE FROM SIMReceivedFromNcell_Temp
  182. SELECT 'Already Upload Some Mobile Number!' AS remarks
  183. RETURN;
  184. END
  185. IF EXISTS(SELECT 'x' FROM SIMReceivedFromNcell_Temp a
  186. INNER JOIN SIMReceivedFromNcell b WITH(NOLOCK) ON a.iccid=b.iccid )
  187. BEGIN
  188. DELETE FROM SIMReceivedFromNcell_Temp
  189. SELECT 'Already Upload Some ICCID Number!' AS remarks
  190. RETURN;
  191. END
  192. INSERT INTO SIMReceivedFromNcell(iccId,mobile,createdBy,createdDate)
  193. SELECT ICCID,MOBILE,'admin',GETDATE() FROM SIMReceivedFromNcell_Temp
  194. DELETE FROM SIMReceivedFromNcell_Temp
  195. SELECT 'Upload Completed Sucessfully.' AS remarks
  196. END
  197. IF @flag='uploadAgent'
  198. BEGIN
  199. UPDATE DistributionOfSIMToAgent_Temp
  200. SET
  201. agentId=REPLACE(LTRIM(agentId),'',''),
  202. iccId=REPLACE(LTRIM(iccId),'','')
  203. UPDATE DistributionOfSIMToAgent_Temp
  204. SET
  205. agentId=REPLACE((agentId),' ',''),
  206. iccId=REPLACE((iccId),' ','')
  207. IF EXISTS(SELECT 'X' FROM DistributionOfSIMToAgent_Temp
  208. GROUP BY iccId
  209. HAVING COUNT(*)>1)
  210. BEGIN
  211. DELETE FROM DistributionOfSIMToAgent_Temp
  212. SELECT 'Dublicate ICCID Number!' AS remarks
  213. RETURN;
  214. END
  215. IF EXISTS(SELECT 'x' FROM DistributionOfSIMToAgent_Temp a
  216. INNER JOIN DistributionOfSIMToAgent b WITH(NOLOCK) ON a.iccId=b.iccId )
  217. BEGIN
  218. DELETE FROM DistributionOfSIMToAgent_Temp
  219. SELECT 'Already Upload Some ICCID Number!' AS remarks
  220. RETURN;
  221. END
  222. IF EXISTS(SELECT 'X' FROM DistributionOfSIMToAgent_Temp
  223. WHERE iccId NOT IN (SELECT iccId FROM SIMReceivedFromNcell WITH(NOLOCK)))
  224. BEGIN
  225. DELETE FROM DistributionOfSIMToAgent_Temp
  226. SELECT 'Invalid Some ICCID, Not In Stock!' AS remarks
  227. RETURN;
  228. END
  229. IF EXISTS(SELECT 'X' FROM DistributionOfSIMToAgent_Temp
  230. WHERE agentId NOT IN (SELECT agentId FROM agentMaster WITH(NOLOCK)))
  231. BEGIN
  232. DELETE FROM DistributionOfSIMToAgent_Temp
  233. SELECT 'Invalid Some Agent ID!' AS remarks
  234. RETURN;
  235. END
  236. BEGIN TRANSACTION
  237. INSERT INTO DistributionOfSIMToAgent(agentId,iccId,mobile,createdBy,createdDate)
  238. SELECT agentId,a.iccId,b.mobile,@user,GETDATE() FROM DistributionOfSIMToAgent_Temp a with(nolock)
  239. inner join SIMReceivedFromNcell b on a.iccId=b.iccId
  240. DELETE FROM DistributionOfSIMToAgent_Temp
  241. SET @modType = 'Upload'
  242. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  243. INSERT INTO #msg(errorCode, msg, id)
  244. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  245. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  246. BEGIN
  247. IF @@TRANCOUNT > 0
  248. ROLLBACK TRANSACTION
  249. EXEC proc_errorHandler 1, 'Failed to upload record.', @rowId
  250. DELETE FROM DistributionOfSIMToAgent_Temp
  251. RETURN
  252. END
  253. IF @@TRANCOUNT > 0
  254. COMMIT TRANSACTION
  255. SELECT 'Upload Completed Sucessfully.' AS remarks
  256. END
  257. IF @flag='uploadActivate'
  258. BEGIN
  259. UPDATE SIMUpdate_Temp
  260. SET
  261. mobile=REPLACE(LTRIM(mobile),'','')
  262. UPDATE SIMUpdate_Temp
  263. SET
  264. mobile=REPLACE((mobile),' ','')
  265. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  266. GROUP BY mobile
  267. HAVING COUNT(*)>1)
  268. BEGIN
  269. DELETE FROM SIMUpdate_Temp
  270. SELECT 'Dublicate Mobile Number!' AS remarks
  271. RETURN;
  272. END
  273. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  274. WHERE mobile NOT IN (SELECT mobileNo FROM NcellFreeSimCampaign WITH(NOLOCK)))
  275. BEGIN
  276. DELETE FROM SIMUpdate_Temp
  277. SELECT 'Invalid Some Mobile Number, System can not find the mobile number!' AS remarks
  278. RETURN;
  279. END
  280. BEGIN TRANSACTION
  281. UPDATE NcellFreeSimCampaign SET
  282. activatedBy=@user
  283. ,activatedDate=GETDATE()
  284. ,rejectedBy=null
  285. ,rejectedDate=null
  286. FROM NcellFreeSimCampaign a,
  287. (
  288. SELECT mobile FROM SIMUpdate_Temp
  289. )b WHERE a.mobileNo=b.mobile and a.activatedDate is null
  290. DELETE FROM SIMUpdate_Temp
  291. SET @modType = 'Upload'
  292. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  293. INSERT INTO #msg(errorCode, msg, id)
  294. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  295. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  296. BEGIN
  297. IF @@TRANCOUNT > 0
  298. ROLLBACK TRANSACTION
  299. EXEC proc_errorHandler 1, 'Failed to upload record.', @rowId
  300. DELETE FROM SIMUpdate_Temp
  301. RETURN
  302. END
  303. IF @@TRANCOUNT > 0
  304. COMMIT TRANSACTION
  305. SELECT 'Upload Completed Sucessfully.' AS remarks
  306. END
  307. IF @flag='uploadDocAck'
  308. BEGIN
  309. UPDATE SIMUpdate_Temp
  310. SET
  311. mobile=REPLACE(LTRIM(mobile),'','')
  312. UPDATE SIMUpdate_Temp
  313. SET
  314. mobile=REPLACE((mobile),' ','')
  315. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  316. GROUP BY mobile
  317. HAVING COUNT(*)>1)
  318. BEGIN
  319. DELETE FROM SIMUpdate_Temp
  320. SELECT 'Dublicate Mobile Number!' AS remarks
  321. RETURN;
  322. END
  323. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  324. WHERE mobile NOT IN (SELECT mobileNo FROM NcellFreeSimCampaign WITH(NOLOCK) WHERE activatedDate IS NOT NULL))
  325. BEGIN
  326. DELETE FROM SIMUpdate_Temp
  327. SELECT 'Invalid Upload, Some Mobile Numbers Are Not Activated Or Not In Registered Yet!' AS remarks
  328. RETURN;
  329. END
  330. BEGIN TRANSACTION
  331. UPDATE NcellFreeSimCampaign SET
  332. docReceivedBy=@user
  333. ,docReceivedDate=GETDATE()
  334. ,rejectedBy=null
  335. ,rejectedDate=null
  336. FROM NcellFreeSimCampaign a,
  337. (
  338. SELECT mobile FROM SIMUpdate_Temp
  339. )b WHERE a.mobileNo=b.mobile and a.docReceivedDate is null
  340. DELETE FROM SIMUpdate_Temp
  341. SET @modType = 'Upload'
  342. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  343. INSERT INTO #msg(errorCode, msg, id)
  344. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  345. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  346. BEGIN
  347. IF @@TRANCOUNT > 0
  348. ROLLBACK TRANSACTION
  349. EXEC proc_errorHandler 1, 'Failed to upload record.', @rowId
  350. DELETE FROM SIMUpdate_Temp
  351. RETURN
  352. END
  353. IF @@TRANCOUNT > 0
  354. COMMIT TRANSACTION
  355. SELECT 'Upload Completed Sucessfully.' AS remarks
  356. END
  357. IF @flag='uploadDocSent'
  358. BEGIN
  359. UPDATE SIMUpdate_Temp
  360. SET
  361. mobile=REPLACE(LTRIM(mobile),'','')
  362. UPDATE SIMUpdate_Temp
  363. SET
  364. mobile=REPLACE((mobile),' ','')
  365. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  366. GROUP BY mobile
  367. HAVING COUNT(*)>1)
  368. BEGIN
  369. DELETE FROM SIMUpdate_Temp
  370. SELECT 'Dublicate Mobile Number!' AS remarks
  371. RETURN;
  372. END
  373. IF EXISTS(SELECT 'X' FROM SIMUpdate_Temp
  374. WHERE mobile NOT IN (SELECT mobileNo FROM NcellFreeSimCampaign WITH(NOLOCK) WHERE docReceivedDate IS NOT NULL))
  375. BEGIN
  376. DELETE FROM SIMUpdate_Temp
  377. SELECT 'Invalid Upload, Some Documents Are Not Received Or Not In Registered Yet!' AS remarks
  378. RETURN;
  379. END
  380. BEGIN TRANSACTION
  381. UPDATE NcellFreeSimCampaign SET
  382. docSendBy=@user
  383. ,docSendDate=GETDATE()
  384. ,rejectedBy=null
  385. ,rejectedDate=null
  386. FROM NcellFreeSimCampaign a,
  387. (
  388. SELECT mobile FROM SIMUpdate_Temp
  389. )b WHERE a.mobileNo=b.mobile and a.docSendDate is null
  390. DELETE FROM SIMUpdate_Temp
  391. SET @modType = 'Upload'
  392. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rowId, @oldValue OUTPUT
  393. INSERT INTO #msg(errorCode, msg, id)
  394. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rowId, @user, @oldValue, @newValue
  395. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  396. BEGIN
  397. IF @@TRANCOUNT > 0
  398. ROLLBACK TRANSACTION
  399. EXEC proc_errorHandler 1, 'Failed to upload record.', @rowId
  400. DELETE FROM SIMUpdate_Temp
  401. RETURN
  402. END
  403. IF @@TRANCOUNT > 0
  404. COMMIT TRANSACTION
  405. SELECT 'Upload Completed Sucessfully.' AS remarks
  406. END
  407. END TRY
  408. BEGIN CATCH
  409. IF @@TRANCOUNT > 0
  410. ROLLBACK TRANSACTION
  411. DECLARE @errorMessage VARCHAR(MAX)
  412. SET @errorMessage = ERROR_MESSAGE()
  413. EXEC proc_errorHandler 1, @errorMessage, @rowId
  414. END CATCH
  415. GO