· 5 years ago · Jul 13, 2020, 06:34 AM
1/*
2Run this script on:
3
4 AZU-PYXISDEV\MSSQLSERVER2017,1436.PayrollDB_ClientDB - This database will be modified
5
6to synchronize it with:
7
8 diadem6.pnagtstardom.com.PayrollDB_Stage
9
10You are recommended to back up your database before running this script
11
12Script created by SQL Compare version 13.1.9.5540 from Red Gate Software Ltd at 7/13/2020 2:29:37 PM
13
14*/
15SET NUMERIC_ROUNDABORT OFF
16GO
17SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS ON
18GO
19SET XACT_ABORT ON
20GO
21SET TRANSACTION ISOLATION LEVEL Serializable
22GO
23BEGIN TRANSACTION
24GO
25IF @@ERROR <> 0 SET NOEXEC ON
26GO
27PRINT N'Dropping foreign keys from [cc].[tbl_Bonus]'
28GO
29ALTER TABLE [cc].[tbl_Bonus] DROP CONSTRAINT [FK__tbl_Bonus__SubAc__6FD58E27]
30GO
31IF @@ERROR <> 0 SET NOEXEC ON
32GO
33PRINT N'Dropping foreign keys from [ccg].[tbl_Loan]'
34GO
35ALTER TABLE [ccg].[tbl_Loan] DROP CONSTRAINT [FK_ccg.tbl_Loa.BatchID$tmp.tbl_Bat.BatchID]
36GO
37ALTER TABLE [ccg].[tbl_Loan] DROP CONSTRAINT [FK__tbl_Loan__SubAcc__72B1FAD2]
38GO
39IF @@ERROR <> 0 SET NOEXEC ON
40GO
41PRINT N'Dropping trigger [dbo].[trg_CreateEmp] from [dbo].[tbl_Emp]'
42GO
43DROP TRIGGER [dbo].[trg_CreateEmp]
44GO
45IF @@ERROR <> 0 SET NOEXEC ON
46GO
47PRINT N'Dropping trigger [dbo].[trg_DeleteEmp] from [dbo].[tbl_Emp]'
48GO
49DROP TRIGGER [dbo].[trg_DeleteEmp]
50GO
51IF @@ERROR <> 0 SET NOEXEC ON
52GO
53PRINT N'Altering [cc].[tbl_Site]'
54GO
55IF @@ERROR <> 0 SET NOEXEC ON
56GO
57ALTER TABLE [cc].[tbl_Site] ADD
58[AcctChart] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
59GO
60IF @@ERROR <> 0 SET NOEXEC ON
61GO
62PRINT N'Altering [cc].[tbl_Section]'
63GO
64IF @@ERROR <> 0 SET NOEXEC ON
65GO
66ALTER TABLE [cc].[tbl_Section] ADD
67[AcctChart] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
68GO
69IF @@ERROR <> 0 SET NOEXEC ON
70GO
71PRINT N'Altering [cc].[tbl_Location]'
72GO
73IF @@ERROR <> 0 SET NOEXEC ON
74GO
75ALTER TABLE [cc].[tbl_Location] ADD
76[AcctChart] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
77GO
78IF @@ERROR <> 0 SET NOEXEC ON
79GO
80PRINT N'Altering [cc].[tbl_JobLevel]'
81GO
82IF @@ERROR <> 0 SET NOEXEC ON
83GO
84ALTER TABLE [cc].[tbl_JobLevel] ADD
85[AcctChart] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
86GO
87IF @@ERROR <> 0 SET NOEXEC ON
88GO
89PRINT N'Creating [rpt].[usp_CostAllocationList]'
90GO
91CREATE PROC [rpt].[usp_CostAllocationList]
92(@clientUID UNIQUEIDENTIFIER)
93AS
94BEGIN
95 SELECT DISTINCT
96 TEI.FullName,
97 TCE.ClientEmpCode,
98 TS.SiteName,
99 TD.DepartmentName,
100 TS2.SectionName,
101 TCA.AllocPercentage
102 FROM dbo.tbl_Client AS TC
103 INNER JOIN dbo.tbl_ClientEmp AS TCE
104 ON TCE.ClientID = TC.ClientID
105 INNER JOIN dbo.tbl_EmpInfo AS TEI
106 ON TEI.EmpID = TCE.EmpID
107 LEFT JOIN ce.tbl_CostAlloc AS TCA
108 ON TCA.ClientEmpID = TCE.ClientEmpID
109 LEFT JOIN cc.tbl_Site AS TS
110 ON TS.SiteID = TCA.SiteID
111 LEFT JOIN cc.tbl_Department AS TD
112 ON TD.DepartmentID = TCA.DepartmentID
113 LEFT JOIN cc.tbl_Section AS TS2
114 ON TS2.SectionID = TCA.SectionID
115 WHERE TC.ClientUID = @clientUID
116 AND TCA.CostAllocID IS NOT NULL
117 ORDER BY TEI.FullName;
118END;
119GO
120IF @@ERROR <> 0 SET NOEXEC ON
121GO
122PRINT N'Creating [dbo].[vw_segmentDetails_wCostAlloc_Sykes]'
123GO
124CREATE VIEW [dbo].[vw_segmentDetails_wCostAlloc_Sykes]
125AS
126 SELECT tce.ClientID ,
127 tce.ClientEmpID,
128 tce.ClientEmpCode [EmpID] ,
129 tei.FullName ,
130 tce2.PositionID,
131 tp.PositionName ,
132 tp.AcctChart,
133 costAlloc.costAllocID [CostAllocID],
134 costAlloc.DepartmentID,
135 costAlloc.DepartmentCode,
136 costAlloc.DepartmentName,
137 ISNULL(costAlloc.AllocPercentage, 100) [AllocPercentage],
138 IIF(CHARINDEX('.', costAlloc.AcctChart) = 0, '', LEFT(ISNULL(costAlloc.AcctChart, '.'), CHARINDEX('.', ISNULL(costAlloc.AcctChart, '.')) - 1)) Segment1,
139 IIF(CHARINDEX('.', costAlloc.AcctChart) = 0, '', IIF(CHARINDEX('/', costAlloc.AcctChart) = 0 AND CHARINDEX('-', costAlloc.AcctChart) = 0, SUBSTRING(costAlloc.AcctChart, CHARINDEX('.', costAlloc.AcctChart) + 1, LEN(costAlloc.AcctChart)), SUBSTRING(
140 costAlloc.AcctChart,
141 CHARINDEX('.', costAlloc.AcctChart) + 1,
142 IIF(CHARINDEX('/', costAlloc.AcctChart) = 0, CHARINDEX('-', costAlloc.AcctChart), CHARINDEX('/', costAlloc.AcctChart)) - CHARINDEX('.', costAlloc.AcctChart) - 1
143 ))) Segment2,
144 IIF(IIF(CHARINDEX('.', TP.AcctChart) = 0, '' , RIGHT(TP.AcctChart, charindex('.', TP.AcctChart) - 1)) = 'ops', LEFT(TP.AcctChart, charindex('.', TP.AcctChart) - 1), IIF(CHARINDEX('-', costAlloc.AcctChart) = 0, '', SUBSTRING(costAlloc.AcctChart, CHARINDEX('-', costAlloc.AcctChart) + 1, LEN(costAlloc.AcctChart)))) Segment3,
145 IIF(CHARINDEX('/', costAlloc.AcctChart) = 0, '', SUBSTRING(
146 costAlloc.AcctChart,
147 CHARINDEX('/', costAlloc.AcctChart) + 1,
148 IIF(CHARINDEX('-', costAlloc.AcctChart) = 0, CHARINDEX('/', costAlloc.AcctChart) - 1, CHARINDEX('-', costAlloc.AcctChart) - CHARINDEX('/', costAlloc.AcctChart) - 1)
149 )) Segment6,
150 IIF(CHARINDEX('.', TP.AcctChart) = 0, '' , RIGHT(TP.AcctChart, charindex('.', TP.AcctChart) - 1)) DeptType,
151 IIF(LEFT(IIF(IIF(CHARINDEX('.', TP.AcctChart) = 0, '' , RIGHT(TP.AcctChart, charindex('.', TP.AcctChart) - 1)) = 'ops', LEFT(TP.AcctChart, charindex('.', TP.AcctChart) - 1), IIF(CHARINDEX('-', costAlloc.AcctChart) = 0, '', SUBSTRING(costAlloc.AcctChart, CHARINDEX('-', costAlloc.AcctChart) + 1, LEN(costAlloc.AcctChart)))), 1) = '1', '5',
152 IIF(LEFT(IIF(IIF(CHARINDEX('.', TP.AcctChart) = 0, '' , RIGHT(TP.AcctChart, charindex('.', TP.AcctChart) - 1)) = 'ops', LEFT(TP.AcctChart, charindex('.', TP.AcctChart) - 1), IIF(CHARINDEX('-', costAlloc.AcctChart) = 0, '', SUBSTRING(costAlloc.AcctChart, CHARINDEX('-', costAlloc.AcctChart) + 1, LEN(costAlloc.AcctChart)))), 1) = '2', '6', '7')) Prefix
153 FROM dbo.tbl_ClientEmp AS tce
154 INNER JOIN dbo.tbl_EmpInfo AS tei ON tei.EmpID = tce.EmpID
155 INNER JOIN c.tbl_ConfEmp AS tce2 ON tce2.ClientEmpID = tce.ClientEmpID
156 LEFT JOIN cc.tbl_Position AS tp ON tp.PositionID = tce2.PositionID
157 OUTER APPLY (
158 SELECT TCA.CostAllocID,
159 TD.DepartmentID,
160 TD.DepartmentCode,
161 TD.DepartmentName,
162 TCA.AllocPercentage,
163 AcctChart
164 FROM c.tbl_ConfEmp AS TCE3
165 LEFT JOIN ce.tbl_CostAlloc AS TCA
166 ON TCA.ClientEmpID = TCE3.ClientEmpID
167 INNER JOIN cc.tbl_Department AS TD ON TCA.DepartmentID IS NULL AND TD.DepartmentID = TCE3.DepartmentID
168 OR TCA.DepartmentID IS NOT NULL AND TD.DepartmentID = TCA.DepartmentID
169 WHERE TCE3.ClientEmpID = tce.ClientEmpID
170 ) costAlloc
171GO
172IF @@ERROR <> 0 SET NOEXEC ON
173GO
174PRINT N'Altering [dbo].[ufn_CreatePayoutNotification]'
175GO
176ALTER FUNCTION [dbo].[ufn_CreatePayoutNotification]
177 (
178 @currentLoggedInID BIGINT
179 , @payoutID BIGINT
180 , @moduleProgress TINYINT
181 , @remarks NVARCHAR(500)
182 , @recordsCount INT
183 , @canUserView BIT
184 , @tranModuleProgressCollID BIGINT
185 , @clientID BIGINT
186 )
187RETURNS NVARCHAR(MAX)
188AS
189 BEGIN
190 DECLARE @notifGrpUID UNIQUEIDENTIFIER = 'C731B2AC-2203-414C-866E-E1159A51C5FA'
191 DECLARE @conStr NVARCHAR(255) = CONCAT('data source=' , @@SERVERNAME , ';initial catalog=' , DB_NAME() ,
192 '; integrated security=true ; enlist=false')
193
194 DECLARE @jsonObj NVARCHAR(500) = N'{"PayoutUID":"00000000-0000-0000-0000-000000000000","Progress":"None","Owner":[{"UID":"00000000-0000-0000-0000-000000000000"}]}'
195
196 SELECT
197 @jsonObj = N'{"PayoutUID":"' + CAST([PayoutUID] AS VARCHAR(36)) + '","Progress":'
198 + CAST(@moduleProgress AS VARCHAR(10)) + ',"Owner":[{"UID":"' + CAST([EmpUID] AS VARCHAR(36)) + '"}]}'
199 FROM
200 [dbo].[tbl_Payout] AS TP
201 INNER JOIN [dbo].[tbl_Emp] AS TE
202 ON TE.[EmpID] = @currentLoggedInID
203 WHERE
204 [PayoutID] = @payoutID
205
206 -- IF @canUserView = 1
207 -- BEGIN
208 -- --EXEC [dbo].[ufn_SendToSocket]
209 -- -- @port = 7005
210 -- -- , @data = @jsonObj
211
212 ---- --IIS Dorado Node1
213 ---- EXEC [dbo].[ufn_SendToSocketWithHost]
214 ---- @host = N'AZU-DIADEMDOR1'
215 ---- --N'172.16.152.16'
216 ---- , -- nvarchar(max)
217 ---- @port = 7005
218 ---- , -- int
219 ---- @data = @jsonObj
220
221 ------IIS Dorado Node2
222 ---- EXEC [dbo].[ufn_SendToSocketWithHost]
223 ---- @host = N'AZU-DIADEMDOR2'
224 ---- --N'172.16.152.16'
225 ---- , -- nvarchar(max)
226 ---- @port = 7005
227 ---- , -- int
228 ---- @data = @jsonObj
229
230 -- --IIS Corona Node1
231 -- EXEC [dbo].[ufn_SendToSocketWithHost]
232 -- @host = N'AZU-DIADEMCOR1'
233 -- --N'172.16.152.16'
234 -- , -- nvarchar(max)
235 -- @port = 7005
236 -- , -- int
237 -- @data = @jsonObj
238
239 ------IIS Corona Node2
240 ---- EXEC [dbo].[ufn_SendToSocketWithHost]
241 ---- @host = N'AZU-DIADEMNCOR1'
242 ---- --N'172.16.152.16'
243 ---- , -- nvarchar(max)
244 ---- @port = 7005
245 ---- , -- int
246 ---- @data = @jsonObj
247
248 -- END
249
250 DECLARE @q NVARCHAR(MAX) = 'EXEC [dbo].[usp_CreatePayoutNotificationForCLR] '
251
252 SET @q = @q + CAST(@currentLoggedInID AS NVARCHAR(10)) + ', '
253 SET @q = @q + CAST(@payoutID AS NVARCHAR(36)) + ', '
254 SET @q = @q + CAST(@moduleProgress AS VARCHAR(3)) + ', '
255 SET @q = @q + '''' + @remarks + ''', '
256 SET @q = @q + CAST(@recordsCount AS VARCHAR(6)) + ', '
257 -- SET @q = @q + '''' + CAST(GETDATE() AS VARCHAR(255)) + ''''
258 SET @q = @q + '''' + FORMAT(GETDATE() , 'yyyy-MM-dd HH:mm:ss.fff') + ''','
259 SET @q = @q + CAST(@canUserView AS VARCHAR(1)) + ','
260 SET @q = @q + CAST(@tranModuleProgressCollID AS VARCHAR(MAX)) + ','
261 SET @q = @q + CAST(@clientID AS VARCHAR(30))
262 -- FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss')
263
264 -- RETURN @q
265
266 EXEC dbo.ufn_ExecCLR
267 @query = @q
268 , @connectionStr = @conStr
269
270 RETURN '1'
271 END
272
273
274
275
276
277GO
278IF @@ERROR <> 0 SET NOEXEC ON
279GO
280PRINT N'Altering [trn].[usp_FTClientEmpDetails_Init]'
281GO
282ALTER PROCEDURE [trn].[usp_FTClientEmpDetails_Init]
283 (
284 @currentLoggedInID BIGINT
285 , @payoutID BIGINT
286 , @tranModuleProgressCollID BIGINT
287 , @clientID BIGINT
288 )
289AS
290 SET NOCOUNT ON
291 EXEC dbo.ufn_CreatePayoutNotification
292 @currentLoggedInID
293 , @payoutID
294 , 5
295 , N'Start Module'
296 , 0
297 , 1
298 , @tranModuleProgressCollID
299 , @clientID
300
301 INSERT INTO trn.tbl_FTClientEmpDetails
302 (
303 FTClientEmpDetailsUID
304 , TranMainID
305 , ClientEmpID
306 , ClientID
307 , EmpID
308 , EmpCode
309 , Birthdate
310 , Gender
311 , NationalityName
312 , NickName
313 , PassportID
314 , TIN
315 , IsEpay
316 , ClientEmpCode
317 , EmailAddress
318 , HiredOn
319 , RehiredOn
320 , RegularizedOn
321 , SeparatedOn
322 , HoldOn
323 , SeparatedRemark
324 , IsAdmin
325 , EmploymentStatus
326 )
327 SELECT
328 NEWID() FTClientEmpDetailsUID
329 , TTM.TranMainID
330 , VTCE.ClientEmpID
331 , VTCE.ClientID
332 , VTCE.EmpID
333 , VTE.EmpCode
334 , VEI.Birthdate
335 , VEI.Gender
336 , VN.NationalityName
337 , VEI.NickName
338 , VEI.PassportID
339 , VEI.TIN
340 , VTCE.IsEpay
341 , VTCE.ClientEmpCode
342 ,
343 /*VTCE.EmailAddress (obsolete) ,*/ ISNULL((
344 SELECT TOP 1
345 eic.Value
346 FROM
347 dbo.tbl_EmpInfoCont eic
348 WHERE
349 eic.EmpInfoContactType = 3
350 AND eic.ContactBaseID = 1
351 AND EmpID = VTCE.EmpID
352 ) , '') EmailAddress
353 , VTCE.HiredOn
354 , VTCE.RehiredOn
355 , VTCE.RegularizedOn
356 , VTCE.SeparatedOn
357 , VTCE.HoldOn
358 , VTCE.SeparatedRemark
359 , VTCE.IsAdmin
360 , VTCE.EmploymentStatus
361 FROM
362 trn.tbl_TranMain AS TTM
363 INNER JOIN dbo.tbl_ClientEmp AS VTCE
364 ON VTCE.ClientEmpID = TTM.ClientEmpID
365 INNER JOIN dbo.tbl_Emp AS VTE
366 ON VTE.EmpID = VTCE.EmpID
367 INNER JOIN dbo.tbl_EmpInfo AS VEI
368 ON VEI.EmpID = VTE.EmpID
369 INNER JOIN dbo.tbl_Nationality AS VN
370 ON VN.NationalityID = VEI.NationalityID
371 WHERE
372 PayoutID = @payoutID
373 AND TTM.TranRefID NOT IN ( SELECT
374 TranRefID
375 FROM
376 trn.tbl_TranMain AS TTM2
377 INNER JOIN trn.tbl_FTClientEmpDetails AS TFTCED
378 ON TFTCED.TranMainID = TTM2.TranMainID
379 WHERE
380 PayoutID = @payoutID )
381
382 DECLARE @rowCount INT = @@ROWCOUNT
383
384 IF @rowCount = 0
385 RAISERROR (N'No record created on tbl_FTClientEmpDetails', 15, -1 );
386
387 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTClientEmpDetails')
388
389
390
391
392 EXEC dbo.ufn_CreatePayoutNotification
393 @currentLoggedInID
394 , @payoutID
395 , 5
396 , N'End Module'
397 , @rowCount
398 , 1
399 , @tranModuleProgressCollID
400 , @clientID
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417GO
418IF @@ERROR <> 0 SET NOEXEC ON
419GO
420PRINT N'Altering [trn].[usp_FTClientEmpDetails_KeyValue_Init]'
421GO
422ALTER PROCEDURE [trn].[usp_FTClientEmpDetails_KeyValue_Init]
423 (
424 @currentLoggedInID BIGINT
425 , @payoutID BIGINT
426 , @tranModuleProgressCollID BIGINT
427 , @clientID BIGINT
428 )
429AS
430 SET NOCOUNT ON
431 EXEC dbo.ufn_CreatePayoutNotification
432 @currentLoggedInID
433 , @payoutID
434 , 5
435 , N'Start Module'
436 , 0
437 , 1
438 , @tranModuleProgressCollID
439 , @clientID
440
441 INSERT INTO trn.tbl_FTClientEmpDetails_KeyValue
442 (
443 FTClientEmpDetails_KeyValueUID
444 , FTClientEmpDetailsID
445 , Key_KeyName
446 , Key_GroupNo
447 , Key_IsDefault
448 , Key_RowOrder
449 , Value
450 , RegexMask
451 , Key_KeyID
452 )
453 SELECT
454 NEWID() FTClientEmpDetails_KeyValueUID
455 , TFCED.FTClientEmpDetailsID
456 , TK.KeyName Key_KeyName
457 , TK.GroupNo Key_GroupNo
458 , TK.IsDefault Key_IsDefault
459 , TK.RowOrder Key_RowOrder
460 , TKV.Value
461 , TK.RegexMask
462 , TK.KeyID
463 FROM
464 trn.tbl_FTClientEmpDetails AS TFCED
465 INNER JOIN trn.tbl_TranMain AS TTM
466 ON TTM.TranMainID = TFCED.TranMainID
467 INNER JOIN dbo.tbl_ClientEmp AS VTCE
468 ON VTCE.ClientEmpID = TTM.ClientEmpID
469 INNER JOIN dbo.tbl_Emp AS VTE
470 ON VTE.EmpID = VTCE.EmpID
471 INNER JOIN dbo.tbl_EmpInfo AS VEI
472 ON VEI.EmpID = VTE.EmpID
473 INNER JOIN dbo.tbl_KeyValue AS TKV
474 ON TKV.KeyValueCollID = VEI.KeyValueCollID
475 INNER JOIN ccg.tbl_Key AS TK
476 ON TK.KeyID = TKV.KeyID
477 WHERE
478 PayoutID = @payoutID
479 AND TTM.TranRefID NOT IN ( SELECT
480 TranRefID
481 FROM
482 trn.tbl_TranMain AS TTM2
483 INNER JOIN trn.tbl_FTClientEmpDetails AS TFTCED
484 ON TFTCED.TranMainID = TTM2.TranMainID
485 INNER JOIN trn.tbl_FTClientEmpDetails_KeyValue AS TFCEDKV
486 ON TFCEDKV.FTClientEmpDetailsID = TFTCED.FTClientEmpDetailsID
487 WHERE
488 PayoutID = @payoutID )
489
490 DECLARE @rowCount INT = @@ROWCOUNT
491
492 --IF @rowCount = 0
493 -- RAISERROR (N'No record created on tbl_FTClientEmpDetails_KeyValue', 15, -1 );
494
495 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTClientEmpDetails_KeyValue')
496
497
498
499
500 EXEC dbo.ufn_CreatePayoutNotification
501 @currentLoggedInID
502 , @payoutID
503 , 5
504 , N'End Module'
505 , @rowCount
506 , 1
507 , @tranModuleProgressCollID
508 , @clientID
509
510
511
512
513
514
515GO
516IF @@ERROR <> 0 SET NOEXEC ON
517GO
518PRINT N'Altering [trn].[usp_FTConfEmpDetails_Init]'
519GO
520ALTER PROCEDURE [trn].[usp_FTConfEmpDetails_Init]
521 (
522 @currentLoggedInID BIGINT,
523 @payoutID BIGINT,
524 @tranModuleProgressCollID BIGINT,
525 @clientID BIGINT
526 )
527AS
528 SET NOCOUNT ON;
529 EXEC dbo.ufn_CreatePayoutNotification
530 @currentLoggedInID,
531 @payoutID,
532 4,
533 N'Start Module',
534 0,
535 1,
536 @tranModuleProgressCollID,
537 @clientID;
538
539 INSERT INTO trn.tbl_FTConfEmpDetails
540 (
541 FTConfEmpDetailsUID,
542 TranMainID,
543 PymtTypeName,
544 PymtType_Description,
545 TaxExemptCode,
546 TaxExemptName,
547 TaxExempt_Amount,
548 CountryName,
549 CurrencyCode,
550 CurrencyName,
551 CurrencySymbol,
552 PymtModeName,
553 TaxTypeID,
554 TaxTypeName,
555 EmpTypeID,
556 EmpTypeName,
557 EmpStatusID,
558 EmpStatusName,
559 Department_AcctChart,
560 DepartmentCode,
561 DepartmentName,
562 SiteCode,
563 SiteName,
564 LocationCode,
565 LocationName,
566 JobLevelCode,
567 JobLevelName,
568 SectionCode,
569 SectionName,
570 Position_AcctChart,
571 PositionCode,
572 PositionName,
573 NumOfDays,
574 NumOfHours
575 )
576 SELECT
577 NEWID() FTConfEmpDetailsUID,
578 TTM.TranMainID,
579 VTPT.PymtTypeName,
580 VTPT.Description PymtType_Description,
581 VTE.TaxExemptCode,
582 VTE.TaxExemptName,
583 VTE.Amount TaxExempt_Amount,
584 VC.CountryName,
585 VC2.CurrencyCode,
586 VC2.CurrencyName,
587 VC2.CurrencySymbol,
588 VPM.PymtModeName,
589 VTT.TaxTypeID,
590 VTT.TaxTypeName,
591 VET.EmpTypeID,
592 VET.EmpTypeName,
593 VES.EmpStatusID,
594 VES.EmpStatusName,
595 VD.AcctChart Department_AcctChart,
596 VD.DepartmentCode,
597 VD.DepartmentName,
598 VS.SiteCode,
599 VS.SiteName,
600 TL.LocationCode,
601 TL.LocationName,
602 TJL.JobLevelCode,
603 TJL.JobLevelName,
604 VS2.SectionCode,
605 VS2.SectionName,
606 VP.AcctChart Position_AcctChart,
607 VP.PositionCode,
608 VP.PositionName,
609 VE.NumOfDays,
610 VE.NumOfHours
611 FROM
612 trn.tbl_TranMain AS TTM
613 INNER JOIN
614 [dbo].[tbl_ClientEmp] AS TCE
615 ON [TCE].[ClientEmpID] = [TTM].[ClientEmpID]
616 INNER JOIN
617 dbo.vw__Employee AS VE
618 ON VE.EmpID = TCE.EmpID
619 INNER JOIN
620 dbo.tbl_PymtType AS VTPT
621 ON VTPT.PymtTypeID = VE.PymtTypeID
622 INNER JOIN
623 ccg.tbl_TaxExempt AS VTE
624 ON VTE.TaxExemptID = VE.TaxExemptID
625 INNER JOIN
626 dbo.tbl_Country AS VC
627 ON VC.CountryID = VE.CountryID
628 LEFT JOIN
629 dbo.tbl_Currency AS VC2
630 ON VC2.CurrencyID = VE.CurrencyID
631 INNER JOIN
632 ceg.tbl_PymtMode AS VPM
633 ON VPM.PymtModeID = VE.PymtModeID
634 INNER JOIN
635 dbo.tbl_TaxType AS VTT
636 ON VTT.TaxTypeID = VE.TaxTypeID
637 INNER JOIN
638 dbo.tbl_EmpType AS VET
639 ON VET.EmpTypeID = VE.EmpTypeID
640 INNER JOIN
641 dbo.tbl_EmpStatus AS VES
642 ON VES.EmpStatusID = VE.EmpStatusID
643 INNER JOIN
644 cc.tbl_Department AS VD
645 ON VD.DepartmentID = VE.DepartmentID
646 LEFT JOIN
647 cc.tbl_Site AS VS
648 ON VS.SiteID = VE.SiteID
649 INNER JOIN
650 cc.tbl_Section AS VS2
651 ON VS2.SectionID = VE.SectionID
652 LEFT JOIN
653 cc.tbl_Position AS VP
654 ON VP.PositionID = VE.PositionID
655 LEFT JOIN
656 cc.tbl_Location AS TL
657 ON TL.LocationID = TTM.LocationID
658 LEFT JOIN
659 cc.tbl_JobLevel AS TJL
660 ON TJL.JobLevelID = TTM.JobLevelID
661 WHERE
662 PayoutID = @payoutID
663 AND TTM.TranRefID NOT IN (
664 SELECT
665 TranRefID
666 FROM
667 trn.tbl_TranMain AS TTM2
668 INNER JOIN
669 trn.tbl_FTConfEmpDetails AS TFTCE
670 ON TFTCE.TranMainID = TTM2.TranMainID
671 WHERE
672 PayoutID = @payoutID
673 );
674
675
676 DECLARE @rowCount INT = @@ROWCOUNT;
677
678 IF @rowCount = 0
679 RAISERROR(N'No record created on tbl_FTConfEmpDetails', 15, -1);
680
681 PRINT CONCAT(@rowCount, ' item/s is added to trn.tbl_FTConfEmpDetails');
682
683
684
685
686 EXEC dbo.ufn_CreatePayoutNotification
687 @currentLoggedInID,
688 @payoutID,
689 4,
690 N'End Module',
691 @rowCount,
692 1,
693 @tranModuleProgressCollID,
694 @clientID;
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709GO
710IF @@ERROR <> 0 SET NOEXEC ON
711GO
712PRINT N'Altering [trn].[usp_FTDedDetails_Init]'
713GO
714ALTER PROCEDURE [trn].[usp_FTDedDetails_Init]
715 (
716 @currentLoggedInID BIGINT
717 , @payoutID BIGINT
718 , @tranModuleProgressCollID BIGINT
719 , @clientID BIGINT
720 )
721AS
722 SET NOCOUNT ON
723 EXEC dbo.ufn_CreatePayoutNotification
724 @currentLoggedInID
725 , @payoutID
726 , 8
727 , N'Start Module'
728 , 0
729 , 1
730 , @tranModuleProgressCollID
731 , @clientID
732
733 INSERT INTO trn.tbl_FTDedDetails
734 (
735 FTDedDetailsUID
736 , TranMainID
737 , EmpDedID
738 , EmpDed_Amount
739 , EmpDed_AcctChartBrkdnName
740 , EmpDed_AcctNo
741 , EmpDed_AcctName
742 , EmpDed_DedCode
743 , EmpDed_DedName
744 , EmpDed_EffEndMonthOn
745 , EmpDed_EffEndYearOn
746 , EmpDed_EffStartMonthOn
747 , EmpDed_EffStartYearOn
748 , EmpDed_PymtModeName
749 , EmpDed_FreqName
750 , EmpDed_FreqOrder
751 , EmpDed_PeriodStartFreqName
752 , EmpDed_PeriodStartFreqOrder
753 , EmpDed_PeriodEndFreqName
754 , EmpDed_PeriodEndFreqOrder
755 , EmpDed_Remarks
756 , DedID
757 , Ded_AcctChartBrkdnName
758 , Ded_AcctNo
759 , Ded_AcctName
760 , Ded_DedCode
761 , Ded_DedName
762 , Amount
763 )
764 SELECT
765 NEWID() FTDedDetailsUID
766 , TTM.TranMainID
767 , TTD.EmpDedID
768 , VED.Amount EmpDed_Amount
769 , VACB.AcctChartBrkdnName EmpDed_AcctChartBrkdnName
770 , VAC.AcctNo EmpDed_AcctNo
771 , VAC.AcctName EmpDed_AcctName
772 , VD.DedCode EmpDed_DedCode
773 , VD.DedName EmpDed_DedName
774 , VED.EffEndMonthOn EmpDed_EffEndMonthOn
775 , VED.EffEndYearOn EmpDed_EffEndYearOn
776 , VED.EffStartMonthOn EmpDed_EffStartMonthOn
777 , VED.EffStartYearOn EmpDed_EffStartYearOn
778 , VPM.PymtModeName EmpDed_PymtModeName
779 , TF.FreqName EmpDed_FreqName
780 , TF.FreqOrder EmpDed_FreqOrder
781 , TF2.FreqName EmpDed_PeriodStartFreqName
782 , TF2.FreqOrder EmpDed_PeriodStartFreqOrder
783 , TF3.FreqName EmpDed_PeriodEndFreqName
784 , TF3.FreqOrder EmpDed_PeriodEndFreqOrder
785 , VED.Remarks EmpDed_Remarks
786 , TTD.DedID
787 , VACB2.AcctChartBrkdnName Ded_AcctChartBrkdnName
788 , VAC2.AcctNo Ded_AcctNo
789 , VAC2.AcctName Ded_AcctName
790 , VD2.DedCode Ded_DedCode
791 , VD2.DedName Ded_DedName
792 , EditedAmount Amount
793 FROM
794 trn.tbl_TranMain AS TTM
795 INNER JOIN trn.tbl_TDed AS TTD
796 ON TTD.TranRefID = TTM.TranRefID
797 LEFT JOIN ce.tbl_EmpDed AS VED
798 ON VED.EmpDedID = TTD.EmpDedID
799 LEFT JOIN cc.tbl_Ded AS VD
800 ON VD.DedID = VED.DedID
801 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB
802 ON VACB.AcctChartBrkdnID = VD.AcctChartBrkdnID
803 LEFT JOIN cc.tbl_AcctChart AS VAC
804 ON VAC.AcctChartID = VD.AcctChartID
805 LEFT JOIN dbo.tbl_Freq AS TF
806 ON TF.FreqID = VED.FreqID
807 LEFT JOIN dbo.tbl_Freq AS TF2
808 ON TF2.FreqID = VED.PeriodStartID
809 LEFT JOIN dbo.tbl_Freq AS TF3
810 ON TF3.FreqID = VED.PeriodEndID
811 LEFT JOIN ceg.tbl_PymtMode AS VPM
812 ON VPM.PymtModeID = TF.PymtModeID
813 INNER JOIN cc.tbl_Ded AS VD2
814 ON VD2.DedID = TTD.DedID
815 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB2
816 ON VACB2.AcctChartBrkdnID = VD2.AcctChartBrkdnID
817 LEFT JOIN cc.tbl_AcctChart AS VAC2
818 ON VAC2.AcctChartID = VD2.AcctChartID
819 WHERE
820 PayoutID = @payoutID
821 AND TTM.TranRefID NOT IN ( SELECT
822 TranRefID
823 FROM
824 trn.tbl_TranMain AS TTM2
825 INNER JOIN trn.tbl_FTDedDetails AS TFTDD
826 ON TFTDD.TranMainID = TTM2.TranMainID
827 WHERE
828 PayoutID = @payoutID )
829
830 DECLARE @rowCount INT = @@ROWCOUNT
831
832 --IF @rowCount = 0
833 -- RAISERROR (N'No record created on tbl_FTDedDetails', 15, -1 );
834
835 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTDedDetails')
836
837
838
839
840 EXEC dbo.ufn_CreatePayoutNotification
841 @currentLoggedInID
842 , @payoutID
843 , 8
844 , N'End Module'
845 , @rowCount
846 , 1
847 , @tranModuleProgressCollID
848 , @clientID
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868GO
869IF @@ERROR <> 0 SET NOEXEC ON
870GO
871PRINT N'Altering [trn].[usp_FTLoanDetails_Init]'
872GO
873-------------------------------------------------------------------------Deployment script for trn.usp_FTLoanDetails_Init --------------------------------------------------------------
874ALTER PROCEDURE [trn].[usp_FTLoanDetails_Init]
875 (
876 @currentLoggedInID BIGINT
877 , @payoutID BIGINT
878 , @tranModuleProgressCollID BIGINT
879 , @clientID BIGINT
880 )
881AS
882 SET NOCOUNT ON
883 EXEC dbo.ufn_CreatePayoutNotification
884 @currentLoggedInID
885 , @payoutID
886 , 9
887 , N'Start Module'
888 , 0
889 , 1
890 , @tranModuleProgressCollID
891 , @clientID
892
893 INSERT INTO trn.tbl_FTLoanDetails
894 (
895 FTLoanDetailsUID
896 , TranMainID
897 , EmpLoan_EmpLoanID
898 , EmpLoan_AcctChartBrkdnName
899 , EmpLoan_AcctNo
900 , EmpLoan_AcctName
901 , EmpLoan_LoanID
902 , EmpLoan_LoanCode
903 , EmpLoan_LoanName
904 , EmpLoan_LoanTypeID
905 , EmpLoan_LoanTypeName
906 , EmpLoan_GoverntmentLoanTypeID
907 , EmpLoan_GoverntmentLoanTypeName
908 , EmpLoan_GoverntmentLoanType_StatutoryTableKeyID
909 , EmpLoan_GoverntmentLoanType_StatutoryTableKeyName
910 , EmpLoan_AccumulatedPaymentManual
911 , EmpLoan_Amortization
912 , EmpLoan_EffEndMonthOn
913 , EmpLoan_EffEndYearOn
914 , EmpLoan_EffStartMonthOn
915 , EmpLoan_EffStartYearOn
916 , EmpLoan_PymtModeName
917 , EmpLoan_FreqName
918 , EmpLoan_FreqOrder
919 , EmpLoan_PeriodStartFreqName
920 , EmpLoan_PeriodStartFreqOrder
921 , EmpLoan_PeriodEndFreqName
922 , EmpLoan_PeriodEndFreqOrder
923 , EmpLoan_GrantedOn
924 , EmpLoan_StartDate
925 , EmpLoan_EndDate
926 , EmpLoan_HoldDate
927 , EmpLoan_Interest
928 , EmpLoan_PrincipalAmount
929 , EmpLoan_Remarks
930 , EmpLoan_TotalLoan
931 , Amount
932 , EmpLoan_AccumulatedPayment
933 , EmpLoan_Balance
934 )
935 SELECT
936 NEWID() FTLoanDetailsUID
937 , TTM.TranMainID
938 , TTL.EmpLoanID
939 , VACB.AcctChartBrkdnName EmpLoan_AcctChartBrkdnName
940 , VAC.AcctNo EmpLoan_AcctNo
941 , VAC.AcctName EmpLoan_AcctName
942 , VL.LoanID EmpLoan_LoanID
943 , VL.LoanCode EmpLoan_LoanCode
944 , VL.LoanName EmpLoan_LoanName
945 , VLT.LoanTypeID
946 , VLT.LoanTypeName EmpLoan_LoanTypeName
947 , VLT.GovernmentLoanTypeID
948 , VGLT.GovernmentLoanTypeName
949 , VSTK.StatutoryTableKeyID
950 , VSTK.StatutoryTableKeyName
951 , TTL.AccumulatedPaymentManual EmpLoan_AccumulatedPaymentManual
952 , TTL.Amortization EmpLoan_Amortization
953 , TTL.EffEndMonthOn EmpLoan_EffEndMonthOn
954 , TTL.EffEndYearOn EmpLoan_EffEndYearOn
955 , TTL.EffStartMonthOn EmpLoan_EffStartMonthOn
956 , TTL.EffStartYearOn EmpLoan_EffStartYearOn
957 , VPM.PymtModeName EmpLoan_PymtModeName
958 , TF.FreqName EmpLoan_FreqName
959 , TF.FreqOrder EmpLoan_FreqOrder
960 , TF2.FreqName EmpLoan_PeriodStartFreqName
961 , TF2.FreqOrder EmpLoan_PeriodStartFreqOrder
962 , TF3.FreqName EmpLoan_PeriodEndFreqName
963 , TF3.FreqOrder EmpLoan_PeriodEndFreqOrder
964 , TTL.GrantedOn EmpLoan_GrantedOn
965 , TTL.StartDate EmpLoan_StartDate
966 , TTL.EndDate EmpLoan_EndDate
967 , TTL.HoldDate EmpLoan_HoldDate
968 , TTL.Interest EmpLoan_Interest
969 , TTL.PrincipalAmount EmpLoan_PrincipalAmount
970 , TTL.Remarks EmpLoan_Remarks
971 , TTL.TotalLoan EmpLoan_TotalLoan
972 , EditedAmount Amount
973 , TTL.AccumulatedPayment EmpLoan_AccumulatedPayment
974 , ( TTL.Balance - EditedAmount ) EmpLoan_Balance
975 FROM
976 trn.tbl_TranMain AS TTM
977 INNER JOIN trn.vw__TLoanDetails AS TTL
978 ON TTL.TranRefID = TTM.TranRefID
979 --INNER JOIN ce.tbl_EmpLoan AS VEL
980 -- ON VEL.EmpLoanID = TTL.EmpLoanID
981 INNER JOIN ccg.tbl_Loan AS VL
982 ON VL.LoanID = TTL.LoanID
983 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB
984 ON VACB.AcctChartBrkdnID = VL.AcctChartBrkdnID
985 LEFT JOIN cc.tbl_AcctChart AS VAC
986 ON VAC.AcctChartID = VL.AcctChartID
987 INNER JOIN dbo.tbl_LoanType AS VLT
988 ON VLT.LoanTypeID = VL.LoanTypeID
989 LEFT JOIN dbo.tbl_GovernmentLoanType AS VGLT
990 ON VGLT.GovernmentLoanTypeID = VLT.GovernmentLoanTypeID
991 LEFT JOIN dbo.tbl_StatutoryTableKey AS VSTK
992 ON VSTK.StatutoryTableKeyID = VGLT.StatutoryTableKeyID
993 INNER JOIN dbo.tbl_Freq AS TF
994 ON TF.FreqID = TTL.FreqID
995 INNER JOIN dbo.tbl_Freq AS TF2
996 ON TF2.FreqID = TTL.PeriodStartID
997 LEFT JOIN dbo.tbl_Freq AS TF3
998 ON TF3.FreqID = TTL.PeriodEndID
999 INNER JOIN ceg.tbl_PymtMode AS VPM
1000 ON VPM.PymtModeID = TF.PymtModeID
1001 WHERE
1002 TTM.PayoutID = @payoutID
1003 AND TTM.TranRefID NOT IN ( SELECT
1004 TranRefID
1005 FROM
1006 trn.tbl_TranMain AS TTM2
1007 INNER JOIN trn.tbl_FTLoanDetails AS TFTLD
1008 ON TFTLD.TranMainID = TTM2.TranMainID
1009 WHERE
1010 PayoutID = @payoutID )
1011
1012 DECLARE @rowCount INT = @@ROWCOUNT
1013
1014 --IF @rowCount = 0
1015 -- RAISERROR (N'No record created on tbl_FTLoanDetails', 15, -1 );
1016
1017 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTLoanDetails')
1018
1019
1020
1021
1022 EXEC dbo.ufn_CreatePayoutNotification
1023 @currentLoggedInID
1024 , @payoutID
1025 , 9
1026 , N'End Module'
1027 , @rowCount
1028 , 1
1029 , @tranModuleProgressCollID
1030 , @clientID
1031
1032GO
1033IF @@ERROR <> 0 SET NOEXEC ON
1034GO
1035PRINT N'Altering [tst].[usp_FTOvertimeDetails_Init]'
1036GO
1037ALTER PROCEDURE [tst].[usp_FTOvertimeDetails_Init]
1038 (
1039 @currentLoggedInID BIGINT
1040 , @payoutID BIGINT
1041 , @tOvertime trn.[tOvertimeTable] READONLY
1042 , @tranModuleProgressCollID BIGINT
1043 , @clientID BIGINT
1044 )
1045AS
1046 SET NOCOUNT ON
1047 EXEC dbo.ufn_CreatePayoutNotification
1048 @currentLoggedInID
1049 , @payoutID
1050 , 16
1051 , N'Start Module'
1052 , 0
1053 , 1
1054 , @tranModuleProgressCollID
1055 , @clientID
1056
1057
1058 INSERT INTO trn.tbl_FTOvertimeDetails
1059 (
1060 FTOvertimeDetailsUID
1061 , TranMainID
1062 , OTRateID
1063 , OTRateBasis
1064 , OTRateCode
1065 , OTRateName
1066 , OTRateTypeID
1067 , OTRateTypeName
1068 , OTRate
1069 , Rate
1070 , NumOfHours
1071 , NumOfDays
1072 , Amount
1073 )
1074 SELECT
1075 NEWID() FTOvertimeDetailsUID
1076 , TTM.TranMainID
1077 , TTO.OTRateID
1078 , TTO.OTRateBasis
1079 , TTO.OTRateCode
1080 , TTO.OTRateName
1081 , TTO.OTRateTypeID
1082 , TTO.OTRateTypeName
1083 , TTO.OriginalRate OTRate
1084 , TTO.EditedRate Rate
1085 , TTO.EditedNumOfHours NumOfHours
1086 , TTO.EditedNumOfDays NumOfDays
1087 , TTO.Amount
1088 FROM
1089 trn.tbl_TranMain AS TTM --CROSS APPLY (
1090 -- SELECT
1091 -- *
1092 -- FROM
1093 -- trn.ufn__TOvertimeDetailsByTranRefID(TTM.TranRefID)
1094 -- AS UTODBTRI
1095 -- ) AS TTO
1096 INNER JOIN @tOvertime AS TTO
1097 ON TTO.TranRefID = TTM.TranRefID
1098 --INNER JOIN cc.tbl_OTRate AS VOR
1099 -- ON VOR.OTRateID = TTO.OTRateID
1100 --INNER JOIN dbo.tbl_OTRateType AS VORT
1101 -- ON VORT.OTRateTypeID = VOR.OTRateTypeID
1102 WHERE
1103 TTM.PayoutID = @payoutID
1104 AND TTM.TranRefID NOT IN ( SELECT
1105 TranRefID
1106 FROM
1107 trn.tbl_TranMain AS TTM2
1108 INNER JOIN trn.tbl_FTOvertimeDetails AS TFTOD
1109 ON TFTOD.TranMainID = TTM2.TranMainID
1110 WHERE
1111 PayoutID = @payoutID )
1112
1113
1114 DECLARE @rowCount INT = @@ROWCOUNT
1115
1116 --IF @rowCount = 0
1117 -- RAISERROR (N'No record created on tbl_FTOvertimeDetails', 15, -1 );
1118
1119 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTOvertimeDetails')
1120
1121
1122
1123
1124 EXEC dbo.ufn_CreatePayoutNotification
1125 @currentLoggedInID
1126 , @payoutID
1127 , 16
1128 , N'End Module'
1129 , @rowCount
1130 , 1
1131 , @tranModuleProgressCollID
1132 , @clientID
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154GO
1155IF @@ERROR <> 0 SET NOEXEC ON
1156GO
1157PRINT N'Altering [trn].[usp_SendTransactionForApproval]'
1158GO
1159ALTER PROCEDURE [trn].[usp_SendTransactionForApproval]
1160 (
1161 @currentLoggedInUID UNIQUEIDENTIFIER
1162 , @payoutUID UNIQUEIDENTIFIER
1163 )
1164AS
1165 BEGIN
1166 DECLARE @payoutID BIGINT
1167 DECLARE @currentLoggedInID BIGINT
1168 DECLARE @clientID BIGINT
1169
1170 SELECT
1171 @payoutID = PayoutID
1172 , @currentLoggedInID = E.EmpID
1173 , @clientID = P.ClientID
1174 FROM
1175 dbo.tbl_Payout AS P
1176 INNER JOIN dbo.tbl_Emp AS E
1177 ON E.EmpUID = @currentLoggedInUID
1178 WHERE
1179 PayoutUID = @payoutUID
1180
1181 DECLARE @msg NVARCHAR(255) = CONCAT(N'For Approval transaction Initialized ' ,
1182 @payoutID , ' ' ,
1183 @currentLoggedInID)
1184
1185 EXEC dbo.ufn_CreatePayoutNotification
1186 @currentLoggedInID
1187 , @payoutID
1188 , 1
1189 , @msg
1190 , 0
1191 , @clientID
1192
1193 SELECT
1194 CAST(1 AS BIT)
1195 END
1196
1197
1198
1199
1200GO
1201IF @@ERROR <> 0 SET NOEXEC ON
1202GO
1203PRINT N'Altering [tst].[usp_FTBonusDetails_Init]'
1204GO
1205ALTER PROCEDURE [tst].[usp_FTBonusDetails_Init]
1206 (
1207 @currentLoggedInID BIGINT
1208 , @payoutID BIGINT
1209 , @tBonus trn.[tBonusTable] READONLY
1210 , @tranModuleProgressCollID BIGINT
1211 , @clientID BIGINT
1212 )
1213AS
1214 SET NOCOUNT ON
1215 EXEC dbo.ufn_CreatePayoutNotification
1216 @currentLoggedInID
1217 , @payoutID
1218 , 10
1219 , N'Start Module'
1220 , 0
1221 , 1
1222 , @tranModuleProgressCollID
1223 , @clientID
1224
1225 INSERT INTO trn.tbl_FTBonusDetails
1226 (
1227 FTBonusDetailsUID
1228 , TranMainID
1229 , BonusBasisID
1230 , BonusBasis_AcctChartBrkdnName
1231 , BonusBasis_AcctNo
1232 , BonusBasis_AcctName
1233 , BonusBasis_BonusCode
1234 , BonusBasis_BonusName
1235 , BonusBasis_BonusTypeName
1236 , BonusBasis_IsTaxable
1237 , BonusID
1238 , BonusTypeID
1239 , [Bonus_AcctChartBrkdnName]
1240 , [Bonus_AcctNo]
1241 , [Bonus_AcctName]
1242 , [Bonus_BonusCode]
1243 , [Bonus_BonusName]
1244 , [Bonus_BonusTypeName]
1245 , [Bonus_IsTaxable]
1246 , TaxableBonus
1247 , NonTaxableBonus
1248 , Amount
1249 )
1250 SELECT
1251 NEWID() FTBonusDetailsUID
1252 , TTM.TranMainID
1253 , VTBD.BonusBasisID
1254 , VACB.AcctChartBrkdnName BonusBasis_AcctChartBrkdnName
1255 , VAC.AcctNo BonusBasis_AcctNo
1256 , VAC.AcctName BonusBasis_AcctName
1257 , VB.BonusCode BonusBasis_BonusCode
1258 , VB.BonusName BonusBasis_BonusName
1259 , VBT.BonusTypeName BonusBasis_BonusTypeName
1260 , VB.IsTaxable BonusBasis_IsTaxable
1261 , VTBD.BonusID
1262 , VTBD.BonusTypeID
1263 , VACB2.AcctChartBrkdnName Bonus_AcctChartBrkdnName
1264 , VAC2.AcctNo Bonus_AcctNo
1265 , VAC2.AcctName Bonus_AcctName
1266 , VB2.BonusCode Bonus_BonusCode
1267 , VB2.BonusName Bonus_BonusName
1268 , VBT2.BonusTypeName Bonus_BonusTypeName
1269 , VB2.IsTaxable Bonus_IsTaxable
1270 , VTBD.TaxableBonus
1271 , VTBD.NonTaxableBonus
1272 , VTBD.FormulatedAmount
1273 FROM
1274 trn.tbl_TranMain AS TTM
1275 INNER JOIN [trn].[tbl_TranRef] AS TTR
1276 ON [TTR].[TranRefID] = [TTM].[TranRefID]
1277 --CROSS APPLY (
1278 -- SELECT
1279 -- [TranRefID]
1280 -- , [TranRefUID]
1281 -- , [PayoutID]
1282 -- , [PayoutUID]
1283 -- , [ClientEmpID]
1284 -- , [ClientEmpUID]
1285 -- , [TBonusID]
1286 -- , [TBonusUID]
1287 -- , [TaxableAmount]
1288 -- , [ToBeComputeNonTaxableAmount]
1289 -- , [FormulatedAmount]
1290 -- , [AvailableBonusThresholdBalance]
1291 -- , [BonusThresholdBalance]
1292 -- , [BonusThreshold]
1293 -- , [BonusBasisID]
1294 -- , [BonusBasisUID]
1295 -- , [BonusID]
1296 -- , [BonusUID]
1297 -- , [BonusName]
1298 -- , [IsTaxable]
1299 -- , [BonusTypeID]
1300 -- , [BonusTypeName]
1301 -- , [BonusTypeUID]
1302 -- , [BonusTypeSource]
1303 -- , [TaxableBonus]
1304 -- , [NonTaxableBonus]
1305 -- FROM
1306 -- [trn].[ufn__TBonusDetailsByTranRefID](TTR.[TranRefID])
1307 -- ) --trn.vw__TBonusDetails
1308 INNER JOIN @tBonus AS VTBD
1309 ON VTBD.TranRefID = TTM.TranRefID
1310 -- INNER JOIN trn.tbl_TBonus AS TTB ON TTB.TranRefID = TTM.TranRefID
1311 LEFT JOIN ceg.tbl_BonusBasis AS BB
1312 ON BB.BonusBasisID = VTBD.BonusBasisID
1313 LEFT JOIN cc.tbl_Bonus AS VB
1314 ON VB.BonusID = BB.BonusID
1315 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB
1316 ON VACB.AcctChartBrkdnID = VB.AcctChartBrkdnID
1317 LEFT JOIN cc.tbl_AcctChart AS VAC
1318 ON VAC.AcctChartID = VB.AcctChartID
1319 LEFT JOIN ccg.tbl_BonusType AS VBT
1320 ON VBT.BonusTypeID = VB.BonusTypeID
1321 LEFT JOIN cc.tbl_Bonus AS VB2
1322 ON VB2.BonusID = VTBD.BonusID
1323 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB2
1324 ON VACB2.AcctChartBrkdnID = VB2.AcctChartBrkdnID
1325 LEFT JOIN cc.tbl_AcctChart AS VAC2
1326 ON VAC2.AcctChartID = VB2.AcctChartID
1327 LEFT JOIN ccg.tbl_BonusType AS VBT2
1328 ON VBT2.BonusTypeID = VB2.BonusTypeID
1329 ----INNER JOIN trn.vw__BonusComputation AS VBC
1330 ---- ON VBC.TBonusID = TTB.TBonusID
1331 -- CROSS APPLY ( SELECT TranRefID ,
1332 -- CASE WHEN SUM(FormulatedAmount)
1333 -- - BonusThresholdBalance < 0
1334 -- THEN 0
1335 -- ELSE SUM(FormulatedAmount)
1336 -- - BonusThresholdBalance
1337 -- END TaxableBonus ,
1338 -- SUM(FormulatedAmount)
1339 -- - ( CASE WHEN SUM(FormulatedAmount)
1340 -- - BonusThresholdBalance < 0
1341 -- THEN 0
1342 -- ELSE SUM(FormulatedAmount)
1343 -- - BonusThresholdBalance
1344 -- END ) NonTaxableBonus ,
1345 -- BonusThreshold ,
1346 -- BonusThresholdBalance
1347 -- FROM ( SELECT TB.TranRefID ,
1348 -- ISNULL(TB.OverrideAmount,
1349 -- dbo.ufn_EvaluateFromXML(VVE.Expression,
1350 -- VVE.Val,
1351 -- BonusCompXml.TempXML)) FormulatedAmount ,
1352 -- CASE WHEN ISNULL(BT.Amount,
1353 -- 0)
1354 -- - ISNULL(VPSTMBY.YTotalPreviousNonTaxableBonus,
1355 -- 0) < 0 THEN 0
1356 -- ELSE ISNULL(BT.Amount,
1357 -- 0)
1358 -- - ISNULL(VPSTMBY.YTotalPreviousNonTaxableBonus,
1359 -- 0)
1360 -- END BonusThresholdBalance ,
1361 -- BT.Amount BonusThreshold ,
1362 -- BT.BonusThresholdID ,
1363 -- CC2.ConfClientID ,
1364 -- BB.BonusBasisID ,
1365 -- B.BonusID
1366 -- FROM trn.tbl_TBonus AS TB
1367 -- LEFT JOIN ceg.tbl_BonusBasis
1368 -- AS BB ON BB.BonusBasisID = TB.BonusBasisID
1369 -- INNER JOIN cc.tbl_Bonus
1370 -- AS B ON B.BonusID = ( COALESCE(TB.BonusID,
1371 -- BB.BonusID) )
1372 -- INNER JOIN dbo.tbl_Payout
1373 -- AS P ON P.PayoutID = TTM.PayoutID
1374 -- INNER JOIN c.tbl_ConfClient
1375 -- AS CC2 ON CC2.ClientID = P.ClientID
1376 -- LEFT JOIN trn.vw__VariableExpression
1377 -- AS VVE ON VVE.VariableID = BB.VariableID
1378 -- LEFT JOIN trn.vw__PreviousSumTranMainByYear
1379 -- AS VPSTMBY ON VPSTMBY.ClientEmpID = TTM.ClientEmpID
1380 -- AND VPSTMBY.Year = P.Year
1381 -- INNER JOIN cc.tbl_BonusThreshold
1382 -- AS BT ON BT.ConfClientID = CC2.ConfClientID
1383 -- AND P.Year BETWEEN BT.EffStartYear
1384 -- AND
1385 -- ISNULL(BT.EffEndYear,
1386 -- 3000)
1387 -- CROSS APPLY ( SELECT
1388 -- ( SELECT
1389 -- CurDaily ,
1390 -- CurHourly ,
1391 -- CurMonthly ,
1392 -- VPSTMBY.YTotalPreviousBasicPay TotalPreviousBasicPay_ByYear ,
1393 -- VPSTMBY.YTotalPreviousNonTaxableBonus TotalPreviousNonTaxableBonus_ByYear ,
1394 -- VPSTMBY.YTotalPreviousTaxableBonus TotalPreviousTaxableBonus_ByYear
1395 -- FOR
1396 -- XML
1397 -- PATH('root')
1398 -- ) AS TempXML
1399 -- ) BonusCompXml
1400 -- WHERE TB.TranRefID = TTM.TranRefID
1401 -- ) BonusComp
1402 -- GROUP BY BonusThresholdID ,
1403 -- BonusThreshold ,
1404 -- BonusComp.TranRefID ,
1405 -- BonusThresholdBalance
1406 -- ) Bonus
1407 WHERE
1408 TTM.PayoutID = @payoutID
1409 AND TTM.TranRefID NOT IN ( SELECT
1410 TranRefID
1411 FROM
1412 trn.tbl_TranMain AS TTM2
1413 INNER JOIN trn.tbl_FTBonusDetails AS TFTBD
1414 ON TFTBD.TranMainID = TTM2.TranMainID
1415 WHERE
1416 PayoutID = @payoutID )
1417
1418 DECLARE @rowCount INT = @@ROWCOUNT
1419
1420 --IF @rowCount = 0
1421 -- RAISERROR (N'No record created on tbl_FTBonusDetails', 15, -1 );
1422
1423 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTBonusDetails')
1424
1425
1426
1427
1428 EXEC dbo.ufn_CreatePayoutNotification
1429 @currentLoggedInID
1430 , @payoutID
1431 , 10
1432 , N'End Module'
1433 , @rowCount
1434 , 1
1435 , @tranModuleProgressCollID
1436 , @clientID
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460GO
1461IF @@ERROR <> 0 SET NOEXEC ON
1462GO
1463PRINT N'Altering [trn].[usp_TranBasicPay_Init]'
1464GO
1465ALTER PROCEDURE [trn].[usp_TranBasicPay_Init]
1466 (
1467 @currentLoggedInID BIGINT
1468 , @payoutID BIGINT
1469 , @numHours INT
1470 , @numDays INT
1471 , @isForUpdate BIT
1472 , @clientEmpUIDList NVARCHAR(MAX)
1473 , @tranModuleProgressCollID BIGINT
1474 )
1475AS -- SET NOCOUNT ON added to prevent extra result sets from
1476 -- interfering with SELECT statements.
1477 SET NOCOUNT ON;
1478
1479 DECLARE @year INT
1480 DECLARE @month INT
1481 DECLARE @FreqOrder INT
1482 DECLARE @PayoutType INT
1483 DECLARE @clientID BIGINT
1484
1485
1486 SELECT
1487 @year = VP.Year
1488 , @month = VP.Month
1489 , @FreqOrder = VF.FreqOrder
1490 , @PayoutType = VP.PayoutType
1491 , @clientID = VP.ClientID
1492 FROM
1493 dbo.tbl_Payout AS VP
1494 INNER JOIN dbo.tbl_Freq AS VF
1495 ON VF.FreqID = VP.FreqID
1496 WHERE
1497 PayoutID = @payoutID
1498
1499 EXEC dbo.ufn_CreatePayoutNotification
1500 @currentLoggedInID
1501 , @payoutID
1502 , 6
1503 , N'Start Module'
1504 , 0
1505 , 1
1506 , @tranModuleProgressCollID
1507 , @clientID
1508
1509 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
1510 INSERT INTO @tblClientEmpID
1511 SELECT
1512 TCE.ClientEmpID
1513 FROM
1514 utl.SplitString(@clientEmpUIDList , ',') tmp
1515 INNER JOIN dbo.tbl_ClientEmp AS TCE
1516 ON TCE.ClientEmpUID = tmp.Data
1517 WHERE
1518 tmp.Data IS NOT NULL
1519 AND RTRIM(LTRIM(tmp.Data)) != ''
1520
1521
1522
1523
1524
1525-- DECLARE @currentLoggedInID BIGINT = 1
1526--DECLARE @payoutID BIGINT = 66
1527--DECLARE @numHours INT = 176.0000
1528--DECLARE @numDays INT = 22.0000
1529--DECLARE @isForUpdate BIT = 1
1530
1531
1532
1533 DECLARE @CBasicPay AS TABLE
1534 (
1535 TranRefID BIGINT
1536 , ClientEmpID BIGINT
1537 , PreviousBasicPayID BIGINT
1538 , CurrentBasicPayID BIGINT
1539 , OriginalNumHours INT
1540 , OriginalNumDays INT
1541 , EditedNumHours INT
1542 , EditedNumDays INT
1543 , CreatedOn DATETIME
1544 , CreatedByID BIGINT
1545 , StrCurrentEntryTS NVARCHAR(MAX)
1546 , TBasicPayUID UNIQUEIDENTIFIER
1547 )
1548 INSERT INTO @CBasicPay
1549 SELECT
1550 TR.TranRefID
1551 , TR.ClientEmpID
1552 , VCBP.PreviousBasicPayID
1553 , VCBP.CurrentBasicPayID
1554 , @numHours OriginalNumHours
1555 , @numDays OriginalNumDays
1556 , @numHours EditedNumHours
1557 , @numDays EditedNumDays
1558 , GETDATE() CreatedOn
1559 , E.EmpID CreatedByID
1560 , VCBP.CurrentStrEntryTS
1561 , NEWID() TBasicPayUID
1562 FROM
1563 trn.ufn__CEBasicPayForPayout(@clientID , @clientEmpUIDList , @payoutID) AS VCBP
1564 INNER JOIN trn.tbl_TranRef AS TR
1565 ON TR.ClientEmpID = VCBP.ClientEmpID
1566 AND TR.PayoutID = @payoutID
1567 --INNER JOIN ce.vw__CEBasicPay AS VCBP
1568 -- ON VCBP.ClientEmpID = TR.ClientEmpID
1569 --CROSS APPLY (
1570 -- SELECT
1571 -- VCBP2.ClientEmpID
1572 -- , MAX(VCBP2.EffectivityPeriodDate) EffectivityPeriodDateMax
1573 -- FROM
1574 -- ce.vw__CEBasicPay AS VCBP2
1575 -- WHERE
1576 -- (
1577 -- (
1578 -- VCBP2.EffectiveYear = @year
1579 -- AND VCBP2.EffectiveMonth = @month
1580 -- AND VCBP2.PeriodFreqOrder <= @FreqOrder
1581 -- )
1582 -- OR ( VCBP2.EffectiveYear < @year )
1583 -- OR (
1584 -- VCBP2.EffectiveYear = @year
1585 -- AND VCBP2.EffectiveMonth < @month
1586 -- )
1587 -- )
1588 -- AND VCBP2.ClientEmpID = VCBP.ClientEmpID
1589 -- GROUP BY
1590 -- VCBP2.ClientEmpID
1591 -- ) AS VCBP_temp
1592 INNER JOIN dbo.tbl_Emp AS E
1593 ON E.EmpID = @currentLoggedInID
1594 --WHERE
1595 -- TR.PayoutID = @payoutID
1596 -- AND (
1597 -- @clientEmpUIDList IS NULL
1598 -- OR VCBP.ClientEmpID IN ( SELECT
1599 -- ClientEmpID
1600 -- FROM
1601 -- @tblClientEmpID )
1602 -- )
1603 -- AND VCBP.CurrentBasicPayID IS NOT NULL
1604 -- AND VCBP_temp.EffectivityPeriodDateMax = VCBP.EffectivityPeriodDate
1605
1606 DELETE
1607 TTBP
1608 FROM
1609 trn.tbl_TBasicPay AS TTBP
1610 INNER JOIN trn.tbl_TranRef AS TTR
1611 ON TTR.TranRefID = TTBP.TranRefID
1612 INNER JOIN dbo.tbl_ClientEmp AS VCE
1613 ON VCE.ClientEmpID = TTR.ClientEmpID
1614 LEFT JOIN @CBasicPay AS CBP
1615 ON CBP.TranRefID = TTBP.TranRefID
1616 WHERE
1617 TTR.PayoutID = @payoutID
1618 AND TTBP.DataSource = 1
1619 AND (
1620 @clientEmpUIDList IS NULL
1621 OR VCE.ClientEmpID IN ( SELECT
1622 ClientEmpID
1623 FROM
1624 @tblClientEmpID )
1625 )
1626 AND (
1627 CBP.TranRefID IS NULL
1628 OR TTBP.OrigEntryTS != StrCurrentEntryTS
1629 OR TTBP.CurrentBasicPayID != CBP.CurrentBasicPayID
1630 OR TTBP.PreviousBasicPayID != CBP.PreviousBasicPayID
1631 )
1632
1633
1634 DECLARE @rowCount INT = @@ROWCOUNT
1635
1636 EXEC dbo.ufn_CreatePayoutNotification
1637 @currentLoggedInID
1638 , @payoutID
1639 , 6
1640 , N'Delete Existing Basic Pay'
1641 , @rowCount
1642 , 0
1643 , @tranModuleProgressCollID
1644 , @clientID
1645 PRINT CONCAT(@rowCount , ' item/s with modification in Basic pay info is deleted to trn.tbl_TBasicPay')
1646
1647 INSERT INTO trn.tbl_TBasicPay
1648 (
1649 TranRefID
1650 , PreviousBasicPayID
1651 , CurrentBasicPayID
1652 , OriginalNumHours
1653 , OriginalNumDays
1654 , EditedNumHours
1655 , EditedNumDays
1656 , OverrideBasicPayAmount
1657 , CreatedOn
1658 , CreatedByID
1659 , OrigEntryTS
1660 , TBasicPayUID
1661 )
1662 SELECT
1663 TranRefID BIGINT
1664 , PreviousBasicPayID
1665 , CurrentBasicPayID
1666 , OriginalNumHours
1667 , OriginalNumDays
1668 , EditedNumHours
1669 , EditedNumDays
1670 , IIF (@PayoutType != 3 , NULL , 0 )
1671 , CreatedOn
1672 , CreatedByID
1673 , StrCurrentEntryTS
1674 , TBasicPayUID
1675 FROM
1676 @CBasicPay
1677 WHERE
1678 ClientEmpID NOT IN ( SELECT
1679 ClientEmpID
1680 FROM
1681 trn.tbl_TBasicPay AS TCE
1682 INNER JOIN trn.tbl_TranRef TRi
1683 ON TRi.TranRefID = TCE.TranRefID
1684 INNER JOIN dbo.tbl_Payout POi
1685 ON POi.PayoutID = TRi.PayoutID
1686 WHERE
1687 POI.PayoutID = @payoutID )
1688
1689
1690 SET @rowCount = @@ROWCOUNT
1691
1692 IF @isForUpdate = 0
1693 AND @rowCount = 0
1694 RAISERROR (N'No record created on usp_TranBasicPay_Init', 15, -1 );
1695
1696 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TBasicPay')
1697
1698 EXEC dbo.ufn_CreatePayoutNotification
1699 @currentLoggedInID
1700 , @payoutID
1701 , 6
1702 , N'End Module'
1703 , @rowCount
1704 , 1
1705 , @tranModuleProgressCollID
1706 , @clientID
1707
1708
1709
1710
1711GO
1712IF @@ERROR <> 0 SET NOEXEC ON
1713GO
1714PRINT N'Altering [trn].[usp_TranBonus_Init]'
1715GO
1716ALTER PROCEDURE [trn].[usp_TranBonus_Init]
1717 (
1718 @currentLoggedInID BIGINT
1719 , @payoutID BIGINT
1720 , @bonusFormulaUIDList NVARCHAR(MAX) -- Bonus Formula UIDs separated with comma
1721 , @clientEmpUIDList NVARCHAR(MAX)
1722 , @tranModuleProgressCollID BIGINT
1723 , @clientID BIGINT
1724 )
1725AS
1726 SET NOCOUNT ON
1727
1728 EXEC dbo.ufn_CreatePayoutNotification
1729 @currentLoggedInID
1730 , @payoutID
1731 , 10
1732 , N'Start Module'
1733 , 0
1734 , 1
1735 , @tranModuleProgressCollID
1736 , @clientID
1737
1738 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
1739 INSERT INTO @tblClientEmpID
1740 SELECT
1741 TCE.ClientEmpID
1742 FROM
1743 utl.SplitString(@clientEmpUIDList , ',') tmp
1744 INNER JOIN dbo.tbl_ClientEmp AS TCE
1745 ON TCE.ClientEmpUID = tmp.Data
1746 WHERE
1747 tmp.Data IS NOT NULL
1748 AND RTRIM(LTRIM(tmp.Data)) != ''
1749
1750 DECLARE @PayoutType INT
1751
1752 SELECT
1753 @PayoutType = PayoutType
1754 FROM
1755 dbo.tbl_Payout AS TP
1756 WHERE
1757 PayoutID = @payoutID
1758
1759
1760 DECLARE @rowCount INT = 0
1761
1762 IF ( @PayoutType != 3 )
1763 BEGIN
1764 DECLARE @tblBonusFormulaID TABLE
1765 (
1766 BonusFormulaID BIGINT
1767 )
1768 INSERT INTO @tblBonusFormulaID
1769 SELECT
1770 BonusBasisID
1771 FROM
1772 utl.SplitString(@bonusFormulaUIDList , ',') SS
1773 INNER JOIN ceg.tbl_BonusBasis AS TBB
1774 ON TBB.BonusBasisUID = SS.Data
1775 WHERE
1776 SS.Data IS NOT NULL
1777 AND RTRIM(LTRIM(SS.Data)) != ''
1778
1779
1780 --DECLARE @currentLoggedInID BIGINT = 1
1781 --DECLARE @payoutID BIGINT = 22
1782 --DECLARE @bonusFormulaUIDs NVARCHAR(MAX) = ''
1783
1784
1785 IF RTRIM(LTRIM(@bonusFormulaUIDList)) = ''
1786 SET @bonusFormulaUIDList = NULL
1787
1788
1789 DELETE
1790 TTB
1791 FROM
1792 trn.tbl_TBonus AS TTB
1793 INNER JOIN trn.tbl_TranRef AS TR
1794 ON TR.TranRefID = TTB.TranRefID
1795 INNER JOIN dbo.tbl_ClientEmp AS VCE
1796 ON VCE.ClientEmpID = TR.ClientEmpID
1797 INNER JOIN dbo.tbl_Payout AS P
1798 ON P.PayoutID = TR.PayoutID
1799 LEFT JOIN ceg.tbl_BonusBasis BB
1800 ON BB.BonusBasisID = TTB.BonusBasisID
1801 WHERE
1802 P.PayoutID = @payoutID
1803 AND TTB.DataSource = 1
1804 AND (
1805 @clientEmpUIDList IS NULL
1806 OR VCE.ClientEmpID IN ( SELECT
1807 ClientEmpID
1808 FROM
1809 @tblClientEmpID )
1810 )
1811 AND (
1812 BB.BonusBasisID NOT IN ( SELECT
1813 BonusFormulaID
1814 FROM
1815 @tblBonusFormulaID )
1816 OR BB.BonusBasisID IS NULL
1817 )
1818
1819 SET @rowCount = @@ROWCOUNT
1820
1821 PRINT CONCAT(@rowCount , ' item/s with invalid Bonus Basis is deleted from trn.tbl_TBonus')
1822
1823 INSERT INTO trn.tbl_TBonus
1824 (
1825 TBonusUID
1826 , TranRefID
1827 , BonusBasisID
1828 , CreatedByID
1829 , CreatedOn
1830 )
1831 SELECT
1832 NEWID() TBonusUID
1833 , TR.TranRefID
1834 , BB.BonusBasisID
1835 , @currentLoggedInID
1836 , GETDATE()
1837 FROM
1838 trn.tbl_TranRef AS TR
1839 INNER JOIN dbo.tbl_ClientEmp AS VCE
1840 ON VCE.ClientEmpID = TR.ClientEmpID
1841 INNER JOIN dbo.tbl_Payout AS P2
1842 ON P2.PayoutID = TR.PayoutID
1843 INNER JOIN ceg.tbl_BonusBasis AS BB
1844 ON BB.BonusBasisID IN ( SELECT
1845 BonusFormulaID
1846 FROM
1847 @tblBonusFormulaID )
1848 LEFT JOIN trn.tbl_TBonus AS TTB
1849 ON TTB.TranRefID = TR.TranRefID
1850 AND TTB.BonusBasisID = BB.BonusBasisID
1851 WHERE
1852 P2.PayoutID = @payoutID
1853 AND (
1854 @clientEmpUIDList IS NULL
1855 OR VCE.ClientEmpID IN ( SELECT
1856 ClientEmpID
1857 FROM
1858 @tblClientEmpID )
1859 )
1860 AND TTB.TBonusID IS NULL
1861 --AND ClientEmpID NOT IN (
1862 --SELECT ClientEmpID
1863 --FROM trn.tbl_TBonus AS TTB
1864 -- INNER JOIN trn.tbl_TranRef TRi ON TRi.TranRefID = TTB.TranRefID
1865 -- INNER JOIN dbo.tbl_Payout POi ON POi.PayoutID = TRi.PayoutID
1866 --WHERE POI.PayoutID = @payoutID
1867 -- AND BonusBasisID IN (
1868 -- SELECT BonusFormulaUID
1869 -- FROM @BonusFormulaUIDsTbl ) )
1870
1871
1872
1873 SET @rowCount = @@ROWCOUNT
1874
1875 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TBonus')
1876
1877 END
1878
1879 EXEC dbo.ufn_CreatePayoutNotification
1880 @currentLoggedInID
1881 , @payoutID
1882 , 10
1883 , N'End Module'
1884 , @rowCount
1885 , 1
1886 , @tranModuleProgressCollID
1887 , @clientID
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898GO
1899IF @@ERROR <> 0 SET NOEXEC ON
1900GO
1901PRINT N'Altering [utl].[usp_FixPayoutStatus]'
1902GO
1903ALTER PROCEDURE [utl].[usp_FixPayoutStatus]
1904 (
1905 @payoutUID UNIQUEIDENTIFIER
1906 , @payoutStatus TINYINT
1907 , @currentLoggedInUID UNIQUEIDENTIFIER
1908 )
1909AS
1910 BEGIN
1911 --DECLARE
1912 -- @payoutUID UNIQUEIDENTIFIER = 'DDB4E295-21FF-4245-B434-528257F281FC'
1913 -- , @payoutStatus TINYINT = 0
1914 -- , @currentLoggedInUID UNIQUEIDENTIFIER = '51A3DDB2-01E0-4A38-8896-876E0CAC9EDE'
1915
1916 DECLARE
1917 @payoutID BIGINT
1918 , @currentLoggedInID BIGINT
1919 , @tranModuleProgressCollID BIGINT
1920 , @currentPayoutStatus TINYINT
1921 , @currentIsLocked BIT
1922 , @clientID BIGINT
1923
1924 SELECT
1925 @payoutID = PayoutID
1926 , @currentPayoutStatus = Status
1927 , @currentIsLocked = IsLocked
1928 , @clientID = TP.ClientID
1929 FROM
1930 dbo.tbl_Payout AS TP
1931 WHERE
1932 PayoutUID = @payoutUID
1933
1934 SELECT
1935 @currentLoggedInID = EmpID
1936 FROM
1937 dbo.tbl_Emp AS TE
1938 WHERE
1939 EmpUID = @currentLoggedInUID
1940
1941
1942 INSERT INTO trn.tbl_TranModuleProgressColl
1943 (
1944 PayoutID
1945 , CreatedOn
1946 , CreatedByID
1947 )
1948 VALUES
1949 (
1950 @payoutID
1951 , -- PayoutID - bigint
1952 GETDATE()
1953 , -- CreatedOn - datetime
1954 @currentLoggedInID -- CreatedByID - bigint
1955 )
1956 SET @tranModuleProgressCollID = SCOPE_IDENTITY()
1957
1958 BEGIN TRY
1959
1960 DECLARE @mes NVARCHAR(MAX)= N'Fix Payout Status Initialized'
1961
1962
1963 EXEC dbo.ufn_CreatePayoutNotification
1964 @currentLoggedInID
1965 , @payoutID
1966 , 2
1967 , @mes
1968 , 0
1969 , 0
1970 , @tranModuleProgressCollID
1971 , @clientID
1972
1973 IF @payoutStatus = 3
1974 BEGIN
1975 IF EXISTS ( SELECT
1976 1
1977 FROM
1978 trn.tbl_TranRef AS TTR
1979 WHERE
1980 PayoutID = @payoutID )
1981 BEGIN
1982
1983 IF EXISTS ( SELECT
1984 1
1985 FROM
1986 trn.tbl_TranMain AS TTM
1987 WHERE
1988 PayoutID = @payoutID )
1989 BEGIN
1990 EXEC dbo.ufn_CreatePayoutNotification
1991 @currentLoggedInID
1992 , @payoutID
1993 , 2
1994 , N'Deleting TranMain Initialized'
1995 , 0
1996 , 0
1997 , @tranModuleProgressCollID
1998 , @clientID
1999
2000 DELETE FROM
2001 trn.tbl_TranMain
2002 WHERE
2003 PayoutID = @payoutID
2004
2005 EXEC dbo.ufn_CreatePayoutNotification
2006 @currentLoggedInID
2007 , @payoutID
2008 , 14
2009 , N'Deleting TranMain Completed'
2010 , 0
2011 , 0
2012 , @tranModuleProgressCollID
2013 , @clientID
2014 END
2015
2016 IF @currentPayoutStatus != 3
2017 OR @currentIsLocked != 0
2018 BEGIN
2019 SET @mes = CONCAT(N'Updating Payout Initialized - Status:' , @currentPayoutStatus ,
2020 ' IsLocked:' , @currentIsLocked)
2021
2022 EXEC dbo.ufn_CreatePayoutNotification
2023 @currentLoggedInID
2024 , @payoutID
2025 , 2
2026 , @mes
2027 , 0
2028 , 0
2029 , @tranModuleProgressCollID
2030 , @clientID
2031
2032 UPDATE
2033 dbo.tbl_Payout
2034 SET
2035 Status = 3 -- Open
2036 , IsLocked = 0
2037 , CanViewPayslip = 0
2038 WHERE
2039 PayoutID = @payoutID
2040
2041 EXEC dbo.ufn_CreatePayoutNotification
2042 @currentLoggedInID
2043 , @payoutID
2044 , 14
2045 , N'Updating Payout Completed'
2046 , 0
2047 , 0
2048 , @tranModuleProgressCollID
2049 , @clientID
2050 END
2051 END
2052 ELSE
2053 BEGIN
2054 EXEC dbo.ufn_CreatePayoutNotification
2055 @currentLoggedInID
2056 , @payoutID
2057 , 15
2058 , N'No TranRef!'
2059 , 0
2060 , 0
2061 , @tranModuleProgressCollID
2062 , @clientID
2063 END
2064 END
2065
2066 ELSE
2067 BEGIN
2068 IF @payoutStatus = 4
2069 BEGIN
2070
2071 IF EXISTS ( SELECT
2072 1
2073 FROM
2074 trn.tbl_TranRef AS TTR
2075 WHERE
2076 PayoutID = @payoutID )
2077 BEGIN
2078
2079 IF NOT EXISTS ( SELECT
2080 1
2081 FROM
2082 trn.tbl_TranMain AS TTM
2083 WHERE
2084 PayoutID = @payoutID )
2085 BEGIN
2086 EXEC dbo.ufn_CreatePayoutNotification
2087 @currentLoggedInID
2088 , @payoutID
2089 , 15
2090 , N'No TranMain!'
2091 , 0
2092 , 0
2093 , @tranModuleProgressCollID
2094 , @clientID
2095 RETURN;
2096 END
2097
2098 IF @currentPayoutStatus != 4
2099 OR @currentIsLocked != 1
2100 BEGIN
2101 SET @mes = CONCAT(N'Updating Payout Initialized - Status:' ,
2102 @currentPayoutStatus , ' IsLocked:' , @currentIsLocked)
2103
2104 EXEC dbo.ufn_CreatePayoutNotification
2105 @currentLoggedInID
2106 , @payoutID
2107 , 2
2108 , @mes
2109 , 0
2110 , 0
2111 , @tranModuleProgressCollID
2112 , @clientID
2113
2114 UPDATE
2115 dbo.tbl_Payout
2116 SET
2117 Status = 4 -- Open
2118 , IsLocked = 1
2119 , CanViewPayslip = 0
2120 WHERE
2121 PayoutID = @payoutID
2122
2123 EXEC dbo.ufn_CreatePayoutNotification
2124 @currentLoggedInID
2125 , @payoutID
2126 , 14
2127 , N'Updating Payout Completed'
2128 , 0
2129 , 0
2130 , @tranModuleProgressCollID
2131 , @clientID
2132 END
2133 END
2134 ELSE
2135 BEGIN
2136 EXEC dbo.ufn_CreatePayoutNotification
2137 @currentLoggedInID
2138 , @payoutID
2139 , 15
2140 , N'No TranRef!'
2141 , 0
2142 , 0
2143 , @tranModuleProgressCollID
2144 , @clientID
2145 END
2146 END
2147 ELSE
2148 BEGIN
2149 RAISERROR (N'Transaction Action not implemented!', 15, -1 );
2150 RETURN;
2151 END
2152 END
2153
2154
2155
2156 EXEC dbo.ufn_CreatePayoutNotification
2157 @currentLoggedInID
2158 , @payoutID
2159 , 2
2160 , N'Fix Payout Status Completed'
2161 , 0
2162 , 0
2163 , @tranModuleProgressCollID
2164 , @clientID
2165
2166 SELECT
2167 'Fixed'
2168 END TRY
2169 BEGIN CATCH
2170
2171 DECLARE @errTemp NVARCHAR(MAX) = ERROR_MESSAGE()
2172 DECLARE @err NVARCHAR(MAX) = 'Error: ' + REPLACE(@errTemp , '''' , '"')
2173
2174 EXEC dbo.ufn_CreatePayoutNotification
2175 @currentLoggedInID
2176 , @payoutID
2177 , 15
2178 , @err
2179 , 0
2180 , 0
2181 , @tranModuleProgressCollID
2182 , @clientID
2183
2184
2185 RAISERROR (@errTemp, 15, -1 );
2186 RETURN;
2187 END CATCH
2188 END
2189
2190GO
2191IF @@ERROR <> 0 SET NOEXEC ON
2192GO
2193PRINT N'Altering [trn].[usp_TranDeduction_Init]'
2194GO
2195ALTER PROCEDURE [trn].[usp_TranDeduction_Init]
2196 (
2197 @currentLoggedInID BIGINT
2198 , @payoutID BIGINT
2199 , @includeEmpDed BIT
2200 , @clientEmpUIDList NVARCHAR(MAX)
2201 , @tranModuleProgressCollID BIGINT
2202 )
2203AS
2204 SET NOCOUNT ON
2205
2206 DECLARE @freqID BIGINT
2207 DECLARE @clientID BIGINT
2208 DECLARE @PayoutType INT
2209 DECLARE @PayoutFreqDateStart DATE
2210 DECLARE @PayoutFreqDateEnd DATE
2211 DECLARE @PayDate DATE
2212
2213 SELECT
2214 @freqID = FreqID
2215 , @clientID = ClientID
2216 , @PayoutType = PayoutType
2217 , @PayoutFreqDateStart = utl.ufn_GetDateByFreq(Year , Month , FreqID , 0)
2218 , @PayoutFreqDateEnd = utl.ufn_GetDateByFreq(Year , Month , FreqID , 1)
2219 , @PayDate = PayDate
2220 FROM
2221 dbo.tbl_Payout
2222 WHERE
2223 PayoutID = @payoutID
2224
2225 EXEC dbo.ufn_CreatePayoutNotification
2226 @currentLoggedInID
2227 , @payoutID
2228 , 8
2229 , N'Start Module'
2230 , 0
2231 , 1
2232 , @tranModuleProgressCollID
2233 , @clientID
2234
2235 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
2236 INSERT INTO @tblClientEmpID
2237 SELECT
2238 TCE.ClientEmpID
2239 FROM
2240 utl.SplitString(@clientEmpUIDList , ',') tmp
2241 INNER JOIN dbo.tbl_ClientEmp AS TCE
2242 ON TCE.ClientEmpUID = tmp.Data
2243 WHERE
2244 tmp.Data IS NOT NULL
2245 AND RTRIM(LTRIM(tmp.Data)) != ''
2246
2247 --DECLARE @payoutUID UNIQUEIDENTIFIER = '89296A5E-3ACF-4AAC-A237-2EE844FD83A4'
2248 --DECLARE @currentLoggedInUID UNIQUEIDENTIFIER = 'f135a664-a5ab-1312-9630-154d137f2940'
2249
2250 DECLARE @rowCount INT= 0
2251
2252 IF ( @includeEmpDed != 0 )
2253 BEGIN
2254 DECLARE @empDed TABLE
2255 (
2256 EmpDedID BIGINT
2257 , DedID BIGINT
2258 , ClientEmpID BIGINT
2259 , FreqID BIGINT
2260 , Amount DECIMAL(18 , 4)
2261 , OrigEntryTS NVARCHAR(MAX)
2262 )
2263 INSERT INTO @empDed
2264 (
2265 EmpDedID
2266 , DedID
2267 , ClientEmpID
2268 , FreqID
2269 , Amount
2270 , OrigEntryTS
2271 )
2272 SELECT
2273 TED.EmpDedID
2274 , TED.DedID
2275 , TR.ClientEmpID
2276 , TED.FreqID
2277 , TED.Amount
2278 , sys.fn_varbintohexstr(CAST(TED.EntryTS AS VARBINARY(8)))
2279 FROM
2280 trn.tbl_TranRef AS TR
2281 INNER JOIN dbo.tbl_ClientEmp AS VCE
2282 ON VCE.ClientEmpID = TR.ClientEmpID
2283 INNER JOIN ce.tbl_EmpDed AS TED
2284 ON TED.ClientEmpID = TR.ClientEmpID
2285 LEFT JOIN dbo.tbl_Payout AS VP_hold
2286 ON VP_hold.PayoutID = TED.StartHoldPayoutID
2287 INNER JOIN dbo.tbl_Freq AS VF
2288 ON VF.FreqID = TED.FreqID
2289 WHERE
2290 TR.PayoutID = @payoutID
2291 AND (
2292 @clientEmpUIDList IS NULL
2293 OR VCE.ClientEmpID IN ( SELECT
2294 ClientEmpID
2295 FROM
2296 @tblClientEmpID )
2297 )
2298 AND (
2299 TED.FreqID = @freqID
2300 OR VF.IsEveryPayroll = 1
2301 )
2302 AND (
2303 (
2304 TED.PeriodEndID IS NULL
2305 OR TED.EffEndYearOn IS NULL
2306 OR TED.EffEndMonthOn IS NULL
2307 )
2308 OR @PayoutFreqDateStart <= utl.ufn_GetDateByFreq(TED.EffEndYearOn , TED.EffEndMonthOn ,
2309 TED.PeriodEndID , 1)
2310 )
2311 AND @PayoutFreqDateEnd >= utl.ufn_GetDateByFreq(TED.EffStartYearOn , TED.EffStartMonthOn ,
2312 TED.PeriodStartID , 0)
2313 AND (
2314 TED.StartHoldPayoutID IS NULL
2315 OR VP_hold.PayDate > @PayDate
2316 )
2317
2318 DELETE
2319 TTD
2320 FROM
2321 trn.tbl_TDed AS TTD
2322 INNER JOIN trn.tbl_TranRef AS TR
2323 ON TR.TranRefID = TTD.TranRefID
2324 INNER JOIN dbo.tbl_ClientEmp AS VCE
2325 ON VCE.ClientEmpID = TR.ClientEmpID
2326 LEFT JOIN @empDed AS ED
2327 ON ED.ClientEmpID = TR.ClientEmpID
2328 AND ED.DedID = TTD.DedID
2329 WHERE
2330 TR.PayoutID = @payoutID
2331 AND (
2332 (
2333 TTD.DataSource = 1
2334 AND (
2335 ED.EmpDedID IS NULL
2336 OR TTD.OrigEntryTS != ED.OrigEntryTS
2337 )
2338 )
2339 OR (
2340 TTD.DataSource IN ( 2 , 3 )
2341 AND TTD.EmpDedID IS NULL
2342 AND ED.EmpDedID IS NOT NULL
2343 )
2344 )
2345 --AND TTD.DedID IS NULL
2346 AND (
2347 @clientEmpUIDList IS NULL
2348 OR VCE.ClientEmpID IN ( SELECT
2349 ClientEmpID
2350 FROM
2351 @tblClientEmpID )
2352 )
2353
2354 SET @rowCount = @@ROWCOUNT
2355 PRINT CONCAT(@rowCount , ' item/s with modification in Deduction reference is/are deleted on trn.tbl_TDed')
2356 EXEC dbo.ufn_CreatePayoutNotification
2357 @currentLoggedInID
2358 , @payoutID
2359 , 8
2360 , N'Delete tbl_TDed'
2361 , @rowCount
2362 , 0
2363 , @tranModuleProgressCollID
2364 , @clientID
2365
2366 INSERT INTO trn.tbl_TDed
2367 (
2368 TranRefID
2369 , EmpDedID
2370 , DedID
2371 , OriginalAmount
2372 , EditedAmount
2373 , OrigEntryTS
2374 , CreatedByID
2375 , CreatedOn
2376 )
2377 SELECT
2378 TR.TranRefID TranRefID
2379 , ED.EmpDedID
2380 , ED.DedID
2381 , ED.Amount Original
2382 , ED.Amount Edited
2383 , ED.OrigEntryTS
2384 , @currentLoggedInID
2385 , GETDATE()
2386 FROM
2387 @empDed AS ED
2388 INNER JOIN trn.tbl_TranRef AS TR
2389 ON TR.ClientEmpID = ED.ClientEmpID
2390 LEFT JOIN trn.tbl_TDed AS TTD
2391 ON TTD.TranRefID = TR.TranRefID
2392 AND TTD.DedID = ED.DedID
2393 WHERE
2394 TR.PayoutID = @payoutID
2395 AND TTD.TDedID IS NULL
2396 --AND TR.TranRefID NOT IN ( SELECT
2397 -- TD.TranRefID
2398 -- FROM
2399 -- trn.tbl_TDed AS TD
2400 -- INNER JOIN trn.tbl_TranRef AS TR
2401 -- ON TR.TranRefID = TD.TranRefID
2402 -- INNER JOIN dbo.tbl_Payout AS P
2403 -- ON P.PayoutID = TR.PayoutID
2404 -- WHERE
2405 -- TR.PayoutID = @payoutID )
2406
2407 SET @rowCount = @@ROWCOUNT
2408
2409 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TDed')
2410
2411
2412 END
2413 ELSE
2414 BEGIN
2415
2416 DELETE
2417 TTD
2418 FROM
2419 trn.tbl_TDed AS TTD
2420 INNER JOIN trn.tbl_TranRef AS TR
2421 ON TR.TranRefID = TTD.TranRefID
2422 INNER JOIN dbo.tbl_ClientEmp AS VCE
2423 ON VCE.ClientEmpID = TR.ClientEmpID
2424 WHERE
2425 TR.PayoutID = @payoutID
2426 AND TTD.DataSource = 1
2427 AND TTD.EmpDedID IS NOT NULL
2428 AND (
2429 @clientEmpUIDList IS NULL
2430 OR VCE.ClientEmpID IN ( SELECT
2431 ClientEmpID
2432 FROM
2433 @tblClientEmpID )
2434 )
2435
2436 SET @rowCount = @@ROWCOUNT
2437 PRINT CONCAT(@rowCount , ' item/s with modification in Deduction reference is deleted on trn.tbl_TDed')
2438 EXEC dbo.ufn_CreatePayoutNotification
2439 @currentLoggedInID
2440 , @payoutID
2441 , 8
2442 , N'Delete tbl_TDed'
2443 , @rowCount
2444 , 0
2445 , @tranModuleProgressCollID
2446 , @clientID
2447
2448 SET @rowCount = 0
2449 END
2450 EXEC dbo.ufn_CreatePayoutNotification
2451 @currentLoggedInID
2452 , @payoutID
2453 , 8
2454 , N'End Module'
2455 , @rowCount
2456 , 1
2457 , @tranModuleProgressCollID
2458 , @clientID
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477GO
2478IF @@ERROR <> 0 SET NOEXEC ON
2479GO
2480PRINT N'Altering [trn].[usp_TranEarning_Init]'
2481GO
2482ALTER PROCEDURE [trn].[usp_TranEarning_Init]
2483 (
2484 @currentLoggedInID BIGINT
2485 , @payoutID BIGINT
2486 , @includeEmpEarn BIT
2487 , @clientEmpUIDList NVARCHAR(MAX)
2488 , @tranModuleProgressCollID BIGINT
2489 )
2490AS
2491 SET NOCOUNT ON
2492
2493 DECLARE @freqID BIGINT
2494 DECLARE @clientID BIGINT
2495 DECLARE @PayoutType INT
2496 DECLARE @PayoutFreqDateStart DATE
2497 DECLARE @PayoutFreqDateEnd DATE
2498 DECLARE @PayDate DATE
2499
2500 SELECT
2501 @freqID = FreqID
2502 , @clientID = ClientID
2503 , @PayoutType = PayoutType
2504 , @PayoutFreqDateStart = utl.ufn_GetDateByFreq(Year , Month , FreqID , 0)
2505 , @PayoutFreqDateEnd = utl.ufn_GetDateByFreq(Year , Month , FreqID , 1)
2506 , @PayDate = PayDate
2507 FROM
2508 dbo.tbl_Payout
2509 WHERE
2510 PayoutID = @payoutID
2511
2512 EXEC dbo.ufn_CreatePayoutNotification
2513 @currentLoggedInID
2514 , @payoutID
2515 , 7
2516 , N'Start Module'
2517 , 0
2518 , 1
2519 , @tranModuleProgressCollID
2520 , @clientID
2521
2522 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
2523 INSERT INTO @tblClientEmpID
2524 SELECT
2525 TCE.ClientEmpID
2526 FROM
2527 utl.SplitString(@clientEmpUIDList , ',') tmp
2528 INNER JOIN dbo.tbl_ClientEmp AS TCE
2529 ON TCE.ClientEmpUID = tmp.Data
2530 WHERE
2531 tmp.Data IS NOT NULL
2532 AND RTRIM(LTRIM(tmp.Data)) != ''
2533
2534 --DECLARE @payoutUID UNIQUEIDENTIFIER = '89296A5E-3ACF-4AAC-A237-2EE844FD83A4'
2535 --DECLARE @currentLoggedInUID UNIQUEIDENTIFIER = 'f135a664-a5ab-1312-9630-154d137f2940'
2536
2537 DECLARE @rowCount INT = 0
2538
2539 IF ( @includeEmpEarn != 0 )
2540 BEGIN
2541 DECLARE @empEarn TABLE
2542 (
2543 EmpEarnID BIGINT
2544 , EarnID BIGINT
2545 , ClientEmpID BIGINT
2546 , FreqID BIGINT
2547 , Amount DECIMAL(18 , 4)
2548 , OrigEntryTS NVARCHAR(MAX)
2549 )
2550
2551 INSERT INTO @empEarn
2552 (
2553 EmpEarnID
2554 , EarnID
2555 , ClientEmpID
2556 , FreqID
2557 , Amount
2558 , OrigEntryTS
2559 )
2560 SELECT
2561 TEE.EmpEarnID
2562 , TEE.EarnID
2563 , TR.ClientEmpID
2564 , TEE.FreqID
2565 , IIF (TE.IsCappedEarnings = 1
2566 AND TEE.PrincipalAmount IS NOT NULL
2567 AND ABS(TEE.Balance) < ABS(TEE.Amount) , TEE.Balance , TEE.Amount )
2568 , sys.fn_varbintohexstr(CAST(TEE.EntryTS AS VARBINARY(8)))
2569 FROM
2570 trn.tbl_TranRef AS TR
2571 INNER JOIN dbo.tbl_ClientEmp AS VCE
2572 ON VCE.ClientEmpID = TR.ClientEmpID
2573 INNER JOIN ce.tbl_EmpEarn AS TEE
2574 ON TEE.ClientEmpID = TR.ClientEmpID
2575 LEFT JOIN dbo.tbl_Payout AS VP_hold
2576 ON VP_hold.PayoutID = TEE.StartHoldPayoutID
2577 INNER JOIN dbo.tbl_Freq AS VF
2578 ON VF.FreqID = TEE.FreqID
2579 INNER JOIN cc.tbl_Earn AS TE
2580 ON TE.EarnID = TEE.EarnID
2581 WHERE
2582 TR.PayoutID = @payoutID
2583 AND (
2584 @clientEmpUIDList IS NULL
2585 OR VCE.ClientEmpID IN ( SELECT
2586 ClientEmpID
2587 FROM
2588 @tblClientEmpID )
2589 )
2590 AND (
2591 (
2592 TE.IsCappedEarnings = 0
2593 OR TEE.PrincipalAmount IS NULL
2594 )
2595 OR (
2596 TE.IsCappedEarnings = 1
2597 AND TEE.PrincipalAmount IS NOT NULL
2598 AND TEE.Balance != 0
2599 )
2600 )
2601 AND (
2602 TEE.FreqID = @freqID
2603 OR VF.IsEveryPayroll = 1
2604 )
2605 AND (
2606 (
2607 TEE.PeriodEndID IS NULL
2608 OR TEE.EffEndYearOn IS NULL
2609 OR TEE.EffEndMonthOn IS NULL
2610 )
2611 OR @PayoutFreqDateStart <= utl.ufn_GetDateByFreq(TEE.EffEndYearOn , TEE.EffEndMonthOn ,
2612 TEE.PeriodEndID , 1)
2613 )
2614 AND @PayoutFreqDateEnd >= utl.ufn_GetDateByFreq(TEE.EffStartYearOn , TEE.EffStartMonthOn ,
2615 TEE.PeriodStartID , 0)
2616 AND (
2617 TEE.StartHoldPayoutID IS NULL
2618 OR VP_hold.PayDate > @PayDate
2619 )
2620
2621 DELETE
2622 TTE
2623 FROM
2624 trn.tbl_TEarn AS TTE
2625 INNER JOIN trn.tbl_TranRef AS TR
2626 ON TR.TranRefID = TTE.TranRefID
2627 INNER JOIN dbo.tbl_ClientEmp AS VCE
2628 ON VCE.ClientEmpID = TR.ClientEmpID
2629 LEFT JOIN @empEarn AS EE
2630 ON EE.ClientEmpID = TR.ClientEmpID
2631 AND EE.EarnID = TTE.EarnID
2632 WHERE
2633 TR.PayoutID = @payoutID
2634 AND (
2635 (
2636 TTE.DataSource = 1
2637 AND (
2638 EE.EmpEarnID IS NULL
2639 OR TTE.OrigEntryTS != EE.OrigEntryTS
2640 )
2641 )
2642 OR (
2643 TTE.DataSource IN ( 2 , 3 )
2644 AND TTE.EmpEarnID IS NULL
2645 AND EE.EmpEarnID IS NOT NULL
2646 )
2647 )
2648 --AND TTE.EarnID IS NULL
2649 AND (
2650 @clientEmpUIDList IS NULL
2651 OR VCE.ClientEmpID IN ( SELECT
2652 ClientEmpID
2653 FROM
2654 @tblClientEmpID )
2655 )
2656
2657 SET @rowCount = @@ROWCOUNT
2658 PRINT CONCAT(@rowCount , ' item/s with modification in Emp Earn reference is/are deleted to trn.tbl_TEarn')
2659 EXEC dbo.ufn_CreatePayoutNotification
2660 @currentLoggedInID
2661 , @payoutID
2662 , 7
2663 , N'Delete tbl_TEarn'
2664 , @rowCount
2665 , 0
2666 , @tranModuleProgressCollID
2667 , @clientID
2668
2669 INSERT INTO trn.tbl_TEarn
2670 (
2671 TEarnUID
2672 , TranRefID
2673 , EmpEarnID
2674 , EarnID
2675 , OriginalAmount
2676 , EditedAmount
2677 , OrigEntryTS
2678 , CreatedByID
2679 , CreatedOn
2680 )
2681 SELECT
2682 NEWID() TEarnUID
2683 , TR.TranRefID
2684 , EE.EmpEarnID
2685 , EE.EarnID
2686 , ISNULL(EE.Amount,0) Original
2687 , EE.Amount Edited
2688 , EE.OrigEntryTS
2689 , @currentLoggedInID
2690 , GETDATE()
2691 FROM
2692 @empEarn AS EE
2693 INNER JOIN trn.tbl_TranRef AS TR
2694 ON TR.ClientEmpID = EE.ClientEmpID
2695 LEFT JOIN trn.tbl_TEarn AS TTE
2696 ON TTE.TranRefID = TR.TranRefID
2697 AND TTE.EarnID = EE.EarnID
2698 WHERE
2699 TR.PayoutID = @payoutID
2700 AND TTE.TEarnID IS NULL
2701
2702 SET @rowCount = @@ROWCOUNT
2703 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TEarn')
2704
2705 END
2706 ELSE
2707 BEGIN
2708
2709 DELETE
2710 TTE
2711 FROM
2712 trn.tbl_TEarn AS TTE
2713 INNER JOIN trn.tbl_TranRef AS TR
2714 ON TR.TranRefID = TTE.TranRefID
2715 INNER JOIN dbo.tbl_ClientEmp AS VCE
2716 ON VCE.ClientEmpID = TR.ClientEmpID
2717 WHERE
2718 TR.PayoutID = @payoutID
2719 AND TTE.DataSource = 1
2720 AND TTE.EmpEarnID IS NOT NULL
2721 --AND TTE.EarnID IS NULL
2722 AND (
2723 @clientEmpUIDList IS NULL
2724 OR VCE.ClientEmpID IN ( SELECT
2725 ClientEmpID
2726 FROM
2727 @tblClientEmpID )
2728 )
2729
2730 SET @rowCount = @@ROWCOUNT
2731 PRINT CONCAT(@rowCount , ' item/s with modification in Emp Earn reference is deleted to trn.tbl_TEarn')
2732 EXEC dbo.ufn_CreatePayoutNotification
2733 @currentLoggedInID
2734 , @payoutID
2735 , 7
2736 , N'Delete tbl_TEarn'
2737 , @rowCount
2738 , 0
2739 , @tranModuleProgressCollID
2740 , @clientID
2741
2742 SET @rowCount = 0
2743 END
2744 EXEC dbo.ufn_CreatePayoutNotification
2745 @currentLoggedInID
2746 , @payoutID
2747 , 7
2748 , N'End Module'
2749 , @rowCount
2750 , 1
2751 , @tranModuleProgressCollID
2752 , @clientID
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771GO
2772IF @@ERROR <> 0 SET NOEXEC ON
2773GO
2774PRINT N'Altering [trn].[usp_TranEmpInfo_Init]'
2775GO
2776ALTER PROCEDURE [trn].[usp_TranEmpInfo_Init]
2777 (
2778 @currentLoggedInID BIGINT
2779 , @payoutID BIGINT
2780 , @isForUpdate BIT
2781 , @clientEmpUIDList NVARCHAR(MAX)
2782 , @tranModuleProgressCollID BIGINT
2783 , @clientID BIGINT
2784 )
2785AS
2786 SET NOCOUNT ON
2787
2788 EXEC dbo.ufn_CreatePayoutNotification
2789 @currentLoggedInID
2790 , @payoutID
2791 , 5
2792 , N'Start Module'
2793 , 0
2794 , 1
2795 , @tranModuleProgressCollID
2796 , @clientID
2797
2798
2799 --DECLARE @@currentLoggedInUID UNIQUEIDENTIFIER = '808b3fdc-003e-428c-b950-58ba3ab453a3'
2800 --DECLARE @@payoutUID UNIQUEIDENTIFIER = 'd3f7c629-2c6d-48ae-b8b7-3545ae0281f6'
2801
2802 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
2803 INSERT INTO @tblClientEmpID
2804 SELECT
2805 TCE.ClientEmpID
2806 FROM
2807 utl.SplitString(@clientEmpUIDList , ',') tmp
2808 INNER JOIN dbo.tbl_ClientEmp AS TCE
2809 ON TCE.ClientEmpUID = tmp.Data
2810 WHERE
2811 tmp.Data IS NOT NULL
2812 AND RTRIM(LTRIM(tmp.Data)) != ''
2813
2814 EXEC dbo.ufn_CreatePayoutNotification
2815 @currentLoggedInID
2816 , @payoutID
2817 , 5
2818 , N'Delete tbl_TEmpInfo'
2819 , 0
2820 , 0
2821 , @tranModuleProgressCollID
2822 , @clientID
2823
2824 DELETE
2825 TTEI
2826 FROM
2827 trn.tbl_TEmpInfo AS TTEI
2828 INNER JOIN trn.tbl_TranRef AS TR
2829 ON TR.TranRefID = TTEI.TranRefID
2830 INNER JOIN dbo.tbl_Payout AS P
2831 ON P.PayoutID = TR.PayoutID
2832 --LEFT JOIN [dbo].[tbl_EmpInfo] AS TEI
2833 -- ON [TEI].[EmpID] = [VCE].[EmpID]
2834 LEFT JOIN dbo.tbl_ClientEmp AS VCE
2835 ON VCE.ClientEmpID = TR.ClientEmpID
2836 OUTER APPLY (
2837 SELECT
2838 TEI2.EmpID
2839 , sys.fn_varbintohexstr(CAST(TEI2.EntryTS AS VARBINARY(8))) HexStrEntryTS
2840 FROM
2841 dbo.tbl_EmpInfo AS TEI2
2842 WHERE
2843 TEI2.EmpID = VCE.EmpID
2844 ) AS TEI
2845 --LEFT JOIN [dbo].[tbl_ClientEmp] AS TCE
2846 -- ON TEI.[EmpID] = TCE.[EmpID]
2847 --LEFT JOIN dbo.vw__Employee AS VE
2848 -- ON VE.EmpID = VCE.EmpID
2849 WHERE
2850 P.PayoutID = @payoutID
2851 AND TTEI.DataSource = 1
2852 AND (
2853 @clientEmpUIDList IS NULL
2854 OR VCE.ClientEmpID IN ( SELECT
2855 ClientEmpID
2856 FROM
2857 @tblClientEmpID )
2858 )
2859 AND (
2860 VCE.ClientEmpID IS NULL
2861 OR TEI.EmpID IS NULL
2862 OR TTEI.OrigEntryTS != TEI.HexStrEntryTS
2863 )
2864
2865 DECLARE @rowCount INT = @@ROWCOUNT
2866 PRINT CONCAT(@rowCount , ' item/s with modification in Emp Info is deleted to trn.tbl_TEmpInfo')
2867
2868 EXEC dbo.ufn_CreatePayoutNotification
2869 @currentLoggedInID
2870 , @payoutID
2871 , 5
2872 , N'INSERT INTO tbl_TEmpInfo'
2873 , 0
2874 , 0
2875 , @tranModuleProgressCollID
2876 , @clientID
2877
2878 INSERT INTO trn.tbl_TEmpInfo
2879 (
2880 TranRefID
2881 , FirstName
2882 , MiddleName
2883 , LastName
2884 , CivilStatus
2885 , PassportID
2886 , CreatedOn
2887 , CreatedByID
2888 , OrigEntryTS
2889 )
2890 SELECT
2891 TR.TranRefID
2892 , TEI.FirstName
2893 , TEI.MiddleName
2894 , TEI.LastName
2895 , TEI.CivilStatus
2896 , TEI.PassportID
2897 , GETDATE()
2898 , E.EmpID
2899 --, sys.fn_varbintohexstr(CAST(VE.EmpInfo_EntryTS AS VARBINARY(8)))
2900 , TEI.HexStrEntryTS
2901 FROM
2902 trn.tbl_TranRef AS TR
2903 INNER JOIN dbo.tbl_Payout AS P
2904 ON P.PayoutID = TR.PayoutID
2905 INNER JOIN [dbo].[tbl_ClientEmp] AS TCE
2906 ON [TCE].[ClientEmpID] = [TR].[ClientEmpID]
2907 INNER JOIN [dbo].[tbl_Emp] AS TE
2908 ON [TE].[EmpID] = [TCE].[EmpID]
2909 --INNER JOIN [dbo].[tbl_EmpInfo] AS TEI
2910 -- ON TEI.EmpID = TE.[EmpID]
2911 --INNER JOIN dbo.vw__Employee AS VE
2912 -- ON VE.EmpID = TCE.EmpID
2913 CROSS APPLY (
2914 SELECT
2915 TEI2.EmpID
2916 , TEI2.FirstName
2917 , TEI2.MiddleName
2918 , TEI2.LastName
2919 , TEI2.CivilStatus
2920 , TEI2.PassportID
2921 , sys.fn_varbintohexstr(CAST(TEI2.EntryTS AS VARBINARY(8))) HexStrEntryTS
2922 FROM
2923 dbo.tbl_EmpInfo AS TEI2
2924 WHERE
2925 TEI2.EmpID = TE.EmpID
2926 ) AS TEI
2927 INNER JOIN dbo.tbl_Emp AS E
2928 ON E.EmpID = @currentLoggedInID
2929 WHERE
2930 P.PayoutID = @payoutID
2931 AND (
2932 @clientEmpUIDList IS NULL
2933 OR TCE.ClientEmpID IN ( SELECT
2934 ClientEmpID
2935 FROM
2936 @tblClientEmpID )
2937 )
2938 AND TCE.ClientEmpID NOT IN ( SELECT
2939 ClientEmpID
2940 FROM
2941 trn.tbl_TEmpInfo AS TEI
2942 INNER JOIN trn.tbl_TranRef TRi
2943 ON TRi.TranRefID = TEI.TranRefID
2944 INNER JOIN dbo.tbl_Payout POi
2945 ON POi.PayoutID = TRi.PayoutID
2946 WHERE
2947 POi.PayoutID = @payoutID )
2948 SET @rowCount = @@ROWCOUNT
2949
2950 IF @isForUpdate = 0
2951 AND @rowCount = 0
2952 RAISERROR (N'No record created on tbl_TEmpInfo', 15, -1 );
2953
2954 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TEmpInfo')
2955
2956 EXEC dbo.ufn_CreatePayoutNotification
2957 @currentLoggedInID
2958 , @payoutID
2959 , 5
2960 , N'End Module'
2961 , @rowCount
2962 , 1
2963 , @tranModuleProgressCollID
2964 , @clientID
2965
2966
2967
2968
2969
2970
2971
2972GO
2973IF @@ERROR <> 0 SET NOEXEC ON
2974GO
2975PRINT N'Altering [trn].[usp_TranGovtDedComputation_Init]'
2976GO
2977ALTER PROCEDURE [trn].[usp_TranGovtDedComputation_Init]
2978 (
2979 @currentLoggedInID BIGINT
2980 , @payoutID BIGINT
2981 , @clientEmpUIDList NVARCHAR(MAX)
2982 , @tranModuleProgressCollID BIGINT
2983 )
2984AS
2985 BEGIN
2986 SET NOCOUNT ON
2987
2988 DECLARE @freqID BIGINT
2989 DECLARE @clientID BIGINT
2990 DECLARE @PayoutType INT
2991 DECLARE @PayoutFreqDateStart DATE
2992 DECLARE @PayoutFreqDateEnd DATE
2993 DECLARE @PayDate DATE
2994
2995 SELECT
2996 @freqID = FreqID
2997 , @clientID = ClientID
2998 , @PayoutType = PayoutType
2999 , @PayoutFreqDateStart = utl.ufn_GetDateByFreq(Year, Month, FreqID, 0)
3000 , @PayoutFreqDateEnd = utl.ufn_GetDateByFreq(Year, Month, FreqID, 1)
3001 , @PayDate = PayDate
3002 FROM dbo.tbl_Payout
3003 WHERE PayoutID = @payoutID
3004
3005 EXEC dbo.ufn_CreatePayoutNotification
3006 @currentLoggedInID
3007 , @payoutID
3008 , 11
3009 , N'Start Module'
3010 , 0
3011 , 1
3012 , @tranModuleProgressCollID
3013 , @clientID
3014
3015 DECLARE @tblClientEmpID TABLE
3016 (
3017 ClientEmpID BIGINT
3018 )
3019 INSERT INTO @tblClientEmpID
3020 SELECT
3021 TCE.ClientEmpID
3022 FROM utl.SplitString(@clientEmpUIDList, ',') tmp
3023 INNER JOIN dbo.tbl_ClientEmp AS TCE
3024 ON TCE.ClientEmpUID = tmp.Data
3025 WHERE tmp.Data IS NOT NULL
3026 AND RTRIM(LTRIM(tmp.Data)) != ''
3027
3028 --DECLARE @currentLoggedInID BIGINT= 1
3029 --DECLARE @payoutID BIGINT= 33722
3030 --DECLARE @clientEmpUIDList NVARCHAR(MAX)= '3E04C710-A661-4E5B-B961-61D546431CFB'
3031
3032 DECLARE @tblEmpStatutoryOvrdCTE TABLE
3033 (
3034 ClientEmpID BIGINT
3035 , StatutoryTableKeyID BIGINT
3036 , EYeeShare DECIMAL(38, 2)
3037 , EYerShare DECIMAL(38, 2)
3038 , ExtraValue DECIMAL(38, 2)
3039 )
3040 INSERT INTO @tblEmpStatutoryOvrdCTE (
3041 ClientEmpID
3042 , StatutoryTableKeyID
3043 , EYeeShare
3044 , EYerShare
3045 , ExtraValue
3046 )
3047 SELECT
3048 VESSO.ClientEmpID
3049 , VESSO.StatutoryTableKeyID
3050 , SUM(VESSO.EYeeShare) EYeeShare
3051 , SUM(VESSO.EYerShare) EYerShare
3052 , SUM(VESSO.ExtraValue) ExtraValue
3053 FROM ce.tbl_EmpStatutoryShareOvrd AS VESSO
3054 INNER JOIN dbo.tbl_ClientEmp AS VCE
3055 ON VCE.ClientEmpID = VESSO.ClientEmpID
3056 INNER JOIN trn.tbl_TranRef AS TTR
3057 ON TTR.ClientEmpID = VCE.ClientEmpID
3058 INNER JOIN dbo.tbl_Freq AS VF
3059 ON VF.FreqID = VESSO.FreqID
3060 LEFT JOIN dbo.tbl_Payout AS VP_hold
3061 ON VP_hold.PayoutID = VESSO.StartHoldPayoutID
3062 WHERE TTR.PayoutID = @payoutID
3063 AND (
3064 @clientEmpUIDList IS NULL
3065 OR VCE.ClientEmpID IN (
3066 SELECT
3067 ClientEmpID
3068 FROM @tblClientEmpID
3069 )
3070 )
3071 AND (
3072 VESSO.FreqID = @freqID
3073 OR VF.IsEveryPayroll = 1
3074 )
3075 AND (
3076 (
3077 VESSO.PeriodEndID IS NULL
3078 OR VESSO.EffEndYearOn IS NULL
3079 OR VESSO.EffEndMonthOn IS NULL
3080 )
3081 OR @PayoutFreqDateStart <= utl.ufn_GetDateByFreq(
3082 VESSO.EffEndYearOn
3083 , VESSO.EffEndMonthOn
3084 , VESSO.PeriodEndID
3085 , 1
3086 )
3087 )
3088 AND @PayoutFreqDateEnd >= utl.ufn_GetDateByFreq(
3089 VESSO.EffStartYearOn
3090 , VESSO.EffStartMonthOn
3091 , VESSO.PeriodStartID
3092 , 0
3093 )
3094 AND (
3095 VESSO.StartHoldPayoutID IS NULL
3096 OR VP_hold.PayDate > @PayDate
3097 )
3098 GROUP BY VESSO.ClientEmpID
3099 , VESSO.StatutoryTableKeyID
3100
3101
3102
3103 DELETE TTGDC
3104 FROM trn.tbl_TGovtDedComp AS TTGDC
3105 INNER JOIN trn.tbl_TranRef AS TR
3106 ON TR.TranRefID = TTGDC.TranRefID
3107 INNER JOIN dbo.tbl_ClientEmp AS VCE
3108 ON VCE.ClientEmpID = TR.ClientEmpID
3109 INNER JOIN dbo.tbl_Payout AS P
3110 ON P.PayoutID = TR.PayoutID
3111 OUTER APPLY (
3112 SELECT
3113 VCMDTB_temp.MandDedTableBasisID
3114 FROM ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp
3115 INNER JOIN ccg.tbl_MandDedTable AS TMDT
3116 ON TMDT.MandDedTableID = VCMDTB_temp.MandDedTableID
3117 WHERE VCMDTB_temp.ConfEmpGrpID = TR.ConfEmpGrpID
3118 AND (
3119 ( VCMDTB_temp.FreqID = P.FreqID )
3120 OR (
3121 VCMDTB_temp.FreqID != P.FreqID
3122 AND VCMDTB_temp.IsEveryPayroll = 1
3123 )
3124 )
3125 AND TMDT.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3126 ) AS VCMDTB
3127 WHERE P.PayoutID = @payoutID
3128 AND (
3129 @clientEmpUIDList IS NULL
3130 OR VCE.ClientEmpID IN (
3131 SELECT
3132 ClientEmpID
3133 FROM @tblClientEmpID
3134 )
3135 )
3136 AND VCMDTB.MandDedTableBasisID IS NULL
3137
3138 DECLARE @rowCount INT = @@ROWCOUNT
3139 PRINT CONCAT(@rowCount, ' item/s is deleted to trn.tbl_TGovtDedComp');
3140
3141
3142 UPDATE
3143 TTGDC
3144 SET
3145 OverrideEYeeShare = IIF(@PayoutType != 3, TESOC.EYeeShare, TTGDC.OverrideEYeeShare)
3146 , OverrideEYerShare = IIF(@PayoutType != 3, TESOC.EYerShare, TTGDC.OverrideEYerShare)
3147 , OverrideExtraValue = IIF(@PayoutType != 3, TESOC.ExtraValue, TTGDC.OverrideExtraValue)
3148 , IsCompute = IIF(
3149 TTIADC.IsCompute = 1
3150 AND TCEADC.IsCompute = 1
3151 , IIF(
3152 TTGDC.TranInfoAllowableDedConf_OrigEntryTS != TTIADC.HexStrEntryTS
3153 OR TTGDC.ClientEmpAllowableDedConf_OrigEntryTS != TCEADC.HexStrEntryTS
3154 OR P.PayoutType = 3
3155 , 1
3156 , TTGDC.IsCompute)
3157 , 0)
3158 , TranInfoAllowableDedConf_OrigEntryTS = TTIADC.HexStrEntryTS
3159 , ClientEmpAllowableDedConf_OrigEntryTS = TCEADC.HexStrEntryTS
3160 FROM trn.tbl_TGovtDedComp AS TTGDC
3161 INNER JOIN trn.tbl_TranRef AS TR
3162 ON TR.TranRefID = TTGDC.TranRefID
3163 INNER JOIN dbo.tbl_ClientEmp AS VCE
3164 ON VCE.ClientEmpID = TR.ClientEmpID
3165 INNER JOIN dbo.tbl_Payout AS P
3166 ON P.PayoutID = TR.PayoutID
3167 CROSS APPLY (
3168 SELECT
3169 VCMDTB_temp.MandDedTableBasisID
3170 FROM ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp
3171 INNER JOIN ccg.tbl_MandDedTable AS TMDT
3172 ON TMDT.MandDedTableID = VCMDTB_temp.MandDedTableID
3173 WHERE VCMDTB_temp.ConfEmpGrpID = TR.ConfEmpGrpID
3174 AND (
3175 ( VCMDTB_temp.FreqID = P.FreqID )
3176 OR (
3177 VCMDTB_temp.FreqID != P.FreqID
3178 AND VCMDTB_temp.IsEveryPayroll = 1
3179 )
3180 )
3181 AND TMDT.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3182 ) AS VCMDTB
3183 LEFT JOIN @tblEmpStatutoryOvrdCTE AS TESOC
3184 ON TESOC.ClientEmpID = TR.ClientEmpID
3185 AND TESOC.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3186 CROSS APPLY (
3187 SELECT
3188 PayoutID
3189 , TTIADC_temp.IsCompute
3190 , sys.fn_varbintohexstr(CAST(TTIADC_temp.EntryTS AS VARBINARY(8))) HexStrEntryTS
3191 FROM trn.tbl_TranInfoAllowableDedConf AS TTIADC_temp
3192 WHERE TTIADC_temp.PayoutID = P.PayoutID
3193 AND TTIADC_temp.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3194 ) AS TTIADC
3195 --LEFT JOIN dbo.tbl_ClientEmpAllowableDedConf AS TCEADC
3196 -- ON TCEADC.ClientEmpID = TR.ClientEmpID
3197 -- AND TCEADC.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3198 CROSS APPLY (
3199 SELECT
3200 TCEADC_temp.IsCompute
3201 , sys.fn_varbintohexstr(CAST(TCEADC_temp.EntryTS AS VARBINARY(8))) HexStrEntryTS
3202 FROM dbo.tbl_ClientEmpAllowableDedConf AS TCEADC_temp
3203 WHERE TCEADC_temp.ClientEmpID = TR.ClientEmpID
3204 AND TCEADC_temp.StatutoryTableKeyID = TTGDC.StatutoryTableKeyID
3205 ) AS TCEADC
3206 WHERE P.PayoutID = @payoutID
3207 AND (
3208 @clientEmpUIDList IS NULL
3209 OR VCE.ClientEmpID IN (
3210 SELECT
3211 ClientEmpID
3212 FROM @tblClientEmpID
3213 )
3214 )
3215 AND (
3216 (
3217 --TESOC.StatutoryTableKeyID IS NOT NULL
3218 --AND (
3219 -- (
3220 -- TTGDC.OverrideEYeeShare IS NULL
3221 -- OR TTGDC.OverrideEYeeShare != IIF (@PayoutType != 3 , TESOC.EYeeShare , TTGDC.OverrideEYeeShare )
3222 -- )
3223 -- OR (
3224 -- TTGDC.OverrideEYerShare IS NULL
3225 -- OR TTGDC.OverrideEYerShare != IIF (@PayoutType != 3 , TESOC.EYerShare , TTGDC.OverrideEYerShare )
3226 -- )
3227 -- OR (
3228 -- TTGDC.OverrideExtraValue IS NULL
3229 -- OR TTGDC.OverrideExtraValue != IIF (@PayoutType != 3 , TESOC.ExtraValue , TTGDC.OverrideExtraValue )
3230 -- )
3231 -- )
3232 (
3233 (
3234 TTGDC.OverrideEYeeShare IS NULL
3235 AND TESOC.EYeeShare IS NOT NULL
3236 )
3237 OR (
3238 TTGDC.OverrideEYeeShare IS NOT NULL
3239 AND TESOC.EYeeShare IS NULL
3240 )
3241 OR TTGDC.OverrideEYeeShare != IIF(@PayoutType != 3
3242 , TESOC.EYeeShare
3243 , TTGDC.OverrideEYeeShare)
3244 )
3245 OR (
3246 (
3247 TTGDC.OverrideEYerShare IS NULL
3248 AND TESOC.EYerShare IS NOT NULL
3249 )
3250 OR (
3251 TTGDC.OverrideEYerShare IS NOT NULL
3252 AND TESOC.EYerShare IS NULL
3253 )
3254 OR TTGDC.OverrideEYerShare != IIF(@PayoutType != 3
3255 , TESOC.EYerShare
3256 , TTGDC.OverrideEYerShare)
3257 )
3258 OR (
3259 (
3260 TTGDC.OverrideExtraValue IS NULL
3261 AND TESOC.ExtraValue IS NOT NULL
3262 )
3263 OR (
3264 TTGDC.OverrideExtraValue IS NOT NULL
3265 AND TESOC.ExtraValue IS NULL
3266 )
3267 OR TTGDC.OverrideExtraValue != IIF(@PayoutType != 3
3268 , TESOC.ExtraValue
3269 , TTGDC.OverrideExtraValue)
3270 )
3271 )
3272 OR TTGDC.TranInfoAllowableDedConf_OrigEntryTS != TTIADC.HexStrEntryTS
3273 OR TTGDC.ClientEmpAllowableDedConf_OrigEntryTS != TCEADC.HexStrEntryTS
3274 OR (
3275 TCEADC.IsCompute = 0
3276 AND TTGDC.IsCompute = 1
3277 )
3278 OR P.PayoutType = 3
3279 )
3280
3281 SET @rowCount = @@ROWCOUNT
3282 PRINT CONCAT(@rowCount, ' item/s is updated to trn.tbl_TGovtDedComp');
3283
3284
3285 INSERT INTO trn.tbl_TGovtDedComp (
3286 TGovtDedCompUID
3287 , TranRefID
3288 , StatutoryTableKeyID
3289 , OverrideEYerShare
3290 , OverrideEYeeShare
3291 , OverrideExtraValue
3292 , IsCompute
3293 , TranInfoAllowableDedConf_OrigEntryTS
3294 , ClientEmpAllowableDedConf_OrigEntryTS
3295 )
3296 SELECT
3297 NEWID() TGovtDedCompUID
3298 , TR.TranRefID TranRefID
3299 , TMDT.StatutoryTableKeyID
3300 , IIF(@PayoutType != 3, VESSO.EYerShare, 0)
3301 , IIF(@PayoutType != 3, VESSO.EYeeShare, 0)
3302 , IIF(@PayoutType != 3, VESSO.ExtraValue, 0)
3303 , IIF(TTIADC.IsCompute = 1 AND TCEADC.IsCompute = 1, 1, 0)
3304 , TTIADC.HexStrEntryTS
3305 , TCEADC.HexStrEntryTS
3306 FROM trn.tbl_TranRef AS TR
3307 INNER JOIN dbo.tbl_ClientEmp AS VCE
3308 ON VCE.ClientEmpID = TR.ClientEmpID
3309 INNER JOIN dbo.tbl_Payout AS P
3310 ON P.PayoutID = TR.PayoutID
3311 --INNER JOIN ceg.vw__CEGMandDedTableBasis AS VCMDTB
3312 -- ON VCMDTB.ConfEmpGrpID = TR.ConfEmpGrpID
3313 -- AND (
3314 -- ( VCMDTB.FreqID = P.FreqID )
3315 -- OR (
3316 -- VCMDTB.FreqID != P.FreqID
3317 -- AND VCMDTB.IsEveryPayroll = 1
3318 -- )
3319 -- )
3320 CROSS APPLY (
3321 SELECT
3322 VCMDTB_temp.MandDedTableBasisID
3323 , VCMDTB_temp.MandDedTableID
3324 FROM ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp
3325 INNER JOIN ccg.tbl_MandDedTable AS TMDT_temp
3326 ON TMDT_temp.MandDedTableID = VCMDTB_temp.MandDedTableID
3327 --LEFT JOIN ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp2
3328 -- ON VCMDTB_temp2.ConfEmpGrpID = VCMDTB_temp.ConfEmpGrpID
3329 -- AND VCMDTB_temp2.MandDedTableID = VCMDTB_temp.MandDedTableID
3330 -- AND (
3331 -- ( VCMDTB_temp2.FreqID = VCMDTB_temp.FreqID )
3332 -- OR (
3333 -- VCMDTB_temp2.FreqID != VCMDTB_temp.FreqID
3334 -- AND VCMDTB_temp2.IsEveryPayroll = 1
3335 -- )
3336 -- )
3337 -- AND VCMDTB_temp2.ForComputeFinalPay = 1
3338
3339 OUTER APPLY (
3340 SELECT TOP ( 1 )
3341 VCMDTB_temp2_temp.MandDedTableBasisID
3342 , VCMDTB_temp2_TMDT.YearValidity
3343 FROM ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp2_temp
3344 INNER JOIN ccg.tbl_MandDedTable AS VCMDTB_temp2_TMDT
3345 ON VCMDTB_temp2_TMDT.MandDedTableID = VCMDTB_temp2_temp.MandDedTableID
3346 WHERE VCMDTB_temp2_temp.ConfEmpGrpID = VCMDTB_temp.ConfEmpGrpID
3347 AND VCMDTB_temp2_TMDT.StatutoryTableKeyID = TMDT_temp.StatutoryTableKeyID
3348 AND (
3349 ( VCMDTB_temp2_temp.FreqID = VCMDTB_temp.FreqID )
3350 OR (
3351 VCMDTB_temp2_temp.FreqID <> VCMDTB_temp.FreqID
3352 AND VCMDTB_temp2_temp.IsEveryPayroll = 1
3353 )
3354 )
3355 AND VCMDTB_temp2_temp.ForComputeFinalPay = 1
3356 ORDER BY VCMDTB_temp2_TMDT.YearValidity DESC
3357 ) AS VCMDTB_temp2
3358 CROSS APPLY (
3359 SELECT
3360 TMDT_yearBasisTemp.StatutoryTableKeyID
3361 , MAX(TMDT_yearBasisTemp.YearValidity) YearValidity
3362 , VCMDTB_yearBasisTemp.ForComputeFinalPay
3363 FROM ceg.vw__CEGMandDedTableBasis AS VCMDTB_yearBasisTemp
3364 INNER JOIN ccg.tbl_MandDedTable AS TMDT_yearBasisTemp
3365 ON TMDT_yearBasisTemp.MandDedTableID = VCMDTB_yearBasisTemp.MandDedTableID
3366 WHERE VCMDTB_yearBasisTemp.ConfEmpGrpID = VCMDTB_temp.ConfEmpGrpID
3367 AND (
3368 ( VCMDTB_yearBasisTemp.FreqID = VCMDTB_temp.FreqID )
3369 OR (
3370 VCMDTB_yearBasisTemp.FreqID != VCMDTB_temp.FreqID
3371 AND VCMDTB_yearBasisTemp.IsEveryPayroll = 1
3372 )
3373 )
3374 AND TMDT_yearBasisTemp.YearValidity <= P.Year
3375 GROUP BY TMDT_yearBasisTemp.StatutoryTableKeyID
3376 , VCMDTB_yearBasisTemp.ForComputeFinalPay
3377 ) VCMDTB_yearBasis
3378 WHERE VCMDTB_temp.ClientID = P.ClientID
3379 AND VCMDTB_temp.ConfEmpGrpID = TR.ConfEmpGrpID
3380 AND (
3381 ( VCMDTB_temp.FreqID = P.FreqID )
3382 OR (
3383 VCMDTB_temp.FreqID != P.FreqID
3384 AND VCMDTB_temp.IsEveryPayroll = 1
3385 )
3386 )
3387 AND (
3388 VCMDTB_temp2.MandDedTableBasisID IS NULL
3389 OR VCMDTB_temp.ForComputeFinalPay = TR.IsComputeFinalPay
3390 )
3391 --Year validity
3392 AND (
3393 TMDT_temp.StatutoryTableKeyID = VCMDTB_yearBasis.StatutoryTableKeyID
3394 AND TMDT_temp.YearValidity = VCMDTB_yearBasis.YearValidity
3395 AND VCMDTB_temp.ForComputeFinalPay = VCMDTB_yearBasis.ForComputeFinalPay
3396 --------------------------START || For Multiple MandDedTableForComputeFinalPay MandDedTableBasis
3397 --AND (
3398 -- VCMDTB_temp2.MandDedTableBasisID IS NULL
3399 -- OR (
3400 -- VCMDTB_temp2.MandDedTableBasisID IS NOT NULL
3401 -- AND VCMDTB_temp2.YearValidity = VCMDTB_yearBasis.YearValidity
3402 -- --AND VCMDTB_yearBasis.ForComputeFinalPay = 1
3403 -- )
3404 -- )
3405 --AND (
3406 -- VCMDTB_temp2.MandDedTableBasisID IS NULL
3407 -- OR (
3408 -- VCMDTB_temp2.MandDedTableBasisID IS NOT NULL
3409 -- AND (
3410 -- VCMDTB_yearBasis.ForComputeFinalPay = 0
3411 -- OR (
3412 -- VCMDTB_yearBasis.ForComputeFinalPay = 1
3413 -- AND VCMDTB_temp2.YearValidity = VCMDTB_yearBasis.YearValidity
3414 -- )
3415 -- )
3416 -- )
3417 -- )
3418 --------------------------END || For Multiple MandDedTableForComputeFinalPay MandDedTableBasis
3419 )
3420 ) AS VCMDTB
3421 INNER JOIN ccg.tbl_MandDedTable AS TMDT
3422 ON TMDT.MandDedTableID = VCMDTB.MandDedTableID
3423 LEFT JOIN @tblEmpStatutoryOvrdCTE AS VESSO
3424 ON VESSO.ClientEmpID = TR.ClientEmpID
3425 AND VESSO.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
3426 LEFT JOIN trn.tbl_TGovtDedComp AS TTGDC
3427 ON TTGDC.TranRefID = TR.TranRefID
3428 AND TTGDC.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
3429 CROSS APPLY (
3430 SELECT
3431 PayoutID
3432 , TTIADC_temp.IsCompute
3433 , sys.fn_varbintohexstr(CAST(TTIADC_temp.EntryTS AS VARBINARY(8))) HexStrEntryTS
3434 FROM trn.tbl_TranInfoAllowableDedConf AS TTIADC_temp
3435 WHERE TTIADC_temp.PayoutID = P.PayoutID
3436 AND TTIADC_temp.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
3437 ) AS TTIADC
3438 CROSS APPLY (
3439 SELECT
3440 TCEADC_temp.IsCompute
3441 , sys.fn_varbintohexstr(CAST(TCEADC_temp.EntryTS AS VARBINARY(8))) HexStrEntryTS
3442 FROM dbo.tbl_ClientEmpAllowableDedConf AS TCEADC_temp
3443 WHERE TCEADC_temp.ClientEmpID = TR.ClientEmpID
3444 AND TCEADC_temp.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
3445 ) AS TCEADC
3446 WHERE P.PayoutID = @payoutID
3447 AND (
3448 @clientEmpUIDList IS NULL
3449 OR VCE.ClientEmpID IN (
3450 SELECT
3451 ClientEmpID
3452 FROM @tblClientEmpID
3453 )
3454 )
3455 AND TTGDC.TGovtDedCompID IS NULL
3456
3457
3458 SET @rowCount = @@ROWCOUNT
3459
3460 PRINT CONCAT(@rowCount, ' item/s is added to trn.tbl_TGovtDedComp')
3461
3462
3463 EXEC dbo.ufn_CreatePayoutNotification
3464 @currentLoggedInID
3465 , @payoutID
3466 , 11
3467 , N'End Module'
3468 , @rowCount
3469 , 1
3470 , @tranModuleProgressCollID
3471 , @clientID
3472 END
3473
3474
3475
3476
3477
3478
3479
3480
3481GO
3482IF @@ERROR <> 0 SET NOEXEC ON
3483GO
3484PRINT N'Altering [trn].[usp_TranLoan_Init]'
3485GO
3486-------------------------------------------------------------------------Deployment script for trn.usp_TranLoan_Init--------------------------------------------------------------------
3487ALTER PROCEDURE [trn].[usp_TranLoan_Init]
3488 (
3489 @currentLoggedInID BIGINT
3490 , @payoutID BIGINT
3491 , @includeEmpLoan BIT
3492 , @clientEmpUIDList NVARCHAR(MAX)
3493 , @tranModuleProgressCollID BIGINT
3494 )
3495AS
3496 SET NOCOUNT ON
3497
3498 DECLARE @freqID BIGINT
3499 DECLARE @clientID BIGINT
3500 DECLARE @PayoutType INT
3501 DECLARE @PayoutFreqDateStart DATE
3502 DECLARE @PayoutFreqDateEnd DATE
3503 DECLARE @PayDate DATE
3504
3505 SELECT
3506 @freqID = FreqID
3507 , @clientID = ClientID
3508 , @PayoutType = PayoutType
3509 , @PayoutFreqDateStart = utl.ufn_GetDateByFreq(Year , Month , FreqID , 0)
3510 , @PayoutFreqDateEnd = utl.ufn_GetDateByFreq(Year , Month , FreqID , 1)
3511 , @PayDate = PayDate
3512 FROM
3513 dbo.tbl_Payout
3514 WHERE
3515 PayoutID = @payoutID
3516
3517 EXEC dbo.ufn_CreatePayoutNotification
3518 @currentLoggedInID
3519 , @payoutID
3520 , 9
3521 , N'Start Module'
3522 , 0
3523 , 1
3524 , @tranModuleProgressCollID
3525 , @clientID
3526
3527 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
3528 INSERT INTO @tblClientEmpID
3529 SELECT
3530 TCE.ClientEmpID
3531 FROM
3532 utl.SplitString(@clientEmpUIDList , ',') tmp
3533 INNER JOIN dbo.tbl_ClientEmp AS TCE
3534 ON TCE.ClientEmpUID = tmp.Data
3535 WHERE
3536 tmp.Data IS NOT NULL
3537 AND RTRIM(LTRIM(tmp.Data)) != ''
3538
3539 --DECLARE @payoutUID UNIQUEIDENTIFIER = '4e62fe7f-b2cb-4fec-8af0-86a01efd7e70'
3540 --DECLARE @currentLoggedInUID UNIQUEIDENTIFIER = 'f135a664-a5ab-1312-9630-154d137f2940'
3541
3542 DECLARE @rowCount INT = 0
3543 IF ( @includeEmpLoan != 0 )
3544 BEGIN
3545 EXEC dbo.ufn_CreatePayoutNotification
3546 @currentLoggedInID
3547 , @payoutID
3548 , 9
3549 , N'1 emploan'
3550 , 0
3551 , 0
3552 , @tranModuleProgressCollID
3553 , @clientID
3554 DECLARE @empLoan TABLE
3555 (
3556 EmpLoanID BIGINT
3557 , ClientEmpID BIGINT
3558 , FreqID BIGINT
3559 , Amortization DECIMAL(18 , 4)
3560 , TotalLoan DECIMAL(19 , 4)
3561 , Balance DECIMAL(38 , 4)
3562 , AccumulatedPayment DECIMAL(38 , 4)
3563 , OrigEntryTS NVARCHAR(MAX)
3564 )
3565 INSERT INTO @empLoan
3566 (
3567 EmpLoanID
3568 , ClientEmpID
3569 , FreqID
3570 , Amortization
3571 , TotalLoan
3572 , Balance
3573 , AccumulatedPayment
3574 , OrigEntryTS
3575 )
3576 SELECT
3577 TEL.EmpLoanID
3578 , TEL.ClientEmpID
3579 , TEL.FreqID
3580 , Amortization
3581 , TotalLoan
3582 , Balance
3583 , AccumulatedPayment
3584 , StrEntryTS
3585 FROM
3586 trn.tbl_TranRef AS TR
3587 INNER JOIN dbo.tbl_ClientEmp AS VCE
3588 ON VCE.ClientEmpID = TR.ClientEmpID
3589 CROSS APPLY (
3590 SELECT
3591 TEL_temp.EmpLoanID
3592 , TEL_temp.ClientEmpID
3593 , TEL_temp.FreqID
3594 , TEL_temp.Amortization
3595 , TEL_temp.TotalLoan
3596 , TEL_temp.Balance
3597 , TEL_temp.AccumulatedPayment
3598 , utl.ufn_GetDateByFreq(TEL_temp.EffStartYearOn , TEL_temp.EffStartMonthOn ,
3599 TEL_temp.PeriodStartID , 0) DateStart
3600 , utl.ufn_GetDateByFreq(TEL_temp.EffEndYearOn , TEL_temp.EffEndMonthOn ,
3601 TEL_temp.PeriodEndID, 1) DateEnd
3602 , sys.fn_varbintohexstr(CAST(TEL_temp.EntryTS AS VARBINARY(8))) StrEntryTS
3603 , TEL_temp.StartHoldPayoutID
3604 FROM
3605 --ce.tbl_EmpLoan
3606 ce.vwtbl_EmpLoan AS TEL_temp
3607 WHERE
3608 TEL_temp.ClientEmpID = VCE.ClientEmpID
3609 ) AS TEL
3610 LEFT JOIN dbo.tbl_Payout AS VP_hold
3611 ON VP_hold.PayoutID = TEL.StartHoldPayoutID
3612 INNER JOIN dbo.tbl_Freq AS VF
3613 ON VF.FreqID = TEL.FreqID
3614 WHERE
3615 TR.PayoutID = @payoutID
3616 AND (
3617 @clientEmpUIDList IS NULL
3618 OR VCE.ClientEmpID IN ( SELECT
3619 ClientEmpID
3620 FROM
3621 @tblClientEmpID )
3622 )
3623 AND (
3624 TEL.FreqID = @freqID
3625 OR VF.IsEveryPayroll = 1
3626 )
3627 AND @PayoutFreqDateStart <= TEL.DateEnd
3628 AND TEL.Balance != 0
3629 AND (
3630 TEL.StartHoldPayoutID IS NULL
3631 OR VP_hold.PayDate > @PayDate
3632 )
3633 AND @PayoutFreqDateEnd >= TEL.DateStart
3634 EXEC dbo.ufn_CreatePayoutNotification
3635 @currentLoggedInID
3636 , @payoutID
3637 , 9
3638 , N'2 delete Tloan'
3639 , 0
3640 , 0
3641 , @tranModuleProgressCollID
3642 , @clientID
3643 DELETE
3644 TL
3645 FROM
3646 trn.tbl_TLoan AS TL
3647 INNER JOIN trn.tbl_TranRef AS TR
3648 ON TR.TranRefID = TL.TranRefID
3649 INNER JOIN dbo.tbl_ClientEmp AS VCE
3650 ON VCE.ClientEmpID = TR.ClientEmpID
3651 LEFT JOIN @empLoan AS EL
3652 ON EL.ClientEmpID = TR.ClientEmpID
3653 AND EL.EmpLoanID = TL.EmpLoanID
3654 WHERE
3655 TR.PayoutID = @payoutID
3656 AND TL.DataSource = 1
3657 AND (
3658 @clientEmpUIDList IS NULL
3659 OR VCE.ClientEmpID IN ( SELECT
3660 ClientEmpID
3661 FROM
3662 @tblClientEmpID )
3663 )
3664 AND (
3665 EL.EmpLoanID IS NULL
3666 OR TL.OrigEntryTS != EL.OrigEntryTS
3667 OR (
3668 TR.IsComputeFinalPay = 1
3669 AND TL.EditedAmount != EL.Balance
3670 )
3671 )
3672
3673 SET @rowCount = @@ROWCOUNT
3674 PRINT CONCAT(@rowCount , ' item/s with modification in Loan reference is deleted to trn.tbl_TLoan')
3675
3676 EXEC dbo.ufn_CreatePayoutNotification
3677 @currentLoggedInID
3678 , @payoutID
3679 , 9
3680 , N'3 insert Tloan'
3681 , 0
3682 , 0
3683 , @tranModuleProgressCollID
3684 , @clientID
3685 INSERT INTO trn.tbl_TLoan
3686 (
3687 TranRefID
3688 , EmpLoanID
3689 , OriginalAmount
3690 , EditedAmount
3691 , OrigEntryTS
3692 , CreatedByID
3693 , CreatedOn
3694 )
3695 SELECT
3696 TR.TranRefID AS TranRefID
3697 , EL.EmpLoanID
3698 , IIF (EL.Amortization > EL.Balance
3699 OR TR.IsComputeFinalPay = 1 , EL.Balance , EL.Amortization )
3700 , IIF (EL.Amortization > EL.Balance
3701 OR TR.IsComputeFinalPay = 1 , EL.Balance , EL.Amortization )
3702 , EL.OrigEntryTS
3703 , @currentLoggedInID
3704 , GETDATE()
3705 FROM
3706 @empLoan AS EL
3707 INNER JOIN trn.tbl_TranRef AS TR
3708 ON TR.ClientEmpID = EL.ClientEmpID
3709 AND TR.PayoutID = @payoutID
3710 LEFT JOIN trn.tbl_TLoan AS TTL
3711 ON TTL.TranRefID = TR.TranRefID
3712 AND TTL.EmpLoanID = EL.EmpLoanID
3713 WHERE
3714 TR.PayoutID = @payoutID
3715 AND TTL.EmpLoanID IS NULL
3716
3717 SET @rowCount = @@ROWCOUNT
3718
3719 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TLoan')
3720
3721
3722
3723 END
3724 ELSE
3725 BEGIN
3726 DELETE
3727 TL
3728 FROM
3729 trn.tbl_TLoan AS TL
3730 INNER JOIN trn.tbl_TranRef AS TR
3731 ON TR.TranRefID = TL.TranRefID
3732 INNER JOIN dbo.tbl_ClientEmp AS VCE
3733 ON VCE.ClientEmpID = TR.ClientEmpID
3734 WHERE
3735 TR.PayoutID = @payoutID
3736 AND TL.DataSource = 1
3737 AND (
3738 @clientEmpUIDList IS NULL
3739 OR VCE.ClientEmpID IN ( SELECT
3740 ClientEmpID
3741 FROM
3742 @tblClientEmpID )
3743 )
3744
3745 SET @rowCount = @@ROWCOUNT
3746 PRINT CONCAT(@rowCount , ' item/s with modification in Loan reference is deleted to trn.tbl_TLoan')
3747 END
3748
3749 EXEC dbo.ufn_CreatePayoutNotification
3750 @currentLoggedInID
3751 , @payoutID
3752 , 9
3753 , N'End Module'
3754 , @rowCount
3755 , 1
3756 , @tranModuleProgressCollID
3757 , @clientID
3758
3759GO
3760IF @@ERROR <> 0 SET NOEXEC ON
3761GO
3762PRINT N'Altering [trn].[usp_TranRef_Init]'
3763GO
3764ALTER PROCEDURE [trn].[usp_TranRef_Init]
3765 (
3766 @currentLoggedInID BIGINT
3767 , @payoutID BIGINT
3768 , @isZeroBasicPay BIT
3769 , @isComputeFinalPay BIT
3770 , @isForUpdate BIT
3771 , @clientEmpUIDList NVARCHAR(MAX)
3772 , @tranModuleProgressCollID BIGINT
3773 )
3774AS
3775 SET NOCOUNT ON
3776
3777 DECLARE @clientID BIGINT
3778 DECLARE @pymtModeID BIGINT
3779 DECLARE @cutOffEnd DATE
3780 DECLARE @year INT
3781 DECLARE @month INT
3782 DECLARE @FreqOrder INT
3783 DECLARE @PayoutType INT
3784
3785 SELECT
3786 @cutOffEnd = CutOffEnd
3787 , @pymtModeID = P.PymtModeID
3788 , @clientID = C2.ClientID
3789 , @year = P.Year
3790 , @month = P.Month
3791 , @FreqOrder = VF.FreqOrder
3792 , @PayoutType = P.PayoutType
3793 --, @freqID = P.FreqID
3794 FROM
3795 dbo.tbl_Payout AS P
3796 INNER JOIN dbo.tbl_Client AS C2
3797 ON C2.ClientID = P.ClientID
3798 INNER JOIN dbo.tbl_Freq AS VF
3799 ON VF.FreqID = P.FreqID
3800 WHERE
3801 PayoutID = @payoutID
3802
3803 EXEC dbo.ufn_CreatePayoutNotification
3804 @currentLoggedInID
3805 , @payoutID
3806 , 3
3807 , N'Start Module'
3808 , 0
3809 , 1
3810 , @tranModuleProgressCollID
3811 , @clientID
3812
3813 --DECLARE @currentLoggedInID bigint= 0
3814 --DECLARE @payoutID bigint= 0
3815 --DECLARE @isZeroBasicPay bit= NULL
3816 --DECLARE @isComputeAllowableDed bit= NULL
3817 --DECLARE @isComputeFinalPay bit= NULL
3818 --DECLARE @isForUpdate bit= NULL
3819 --DECLARE @clientEmpUIDList nvarchar(max)= N''
3820
3821 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
3822 INSERT INTO @tblClientEmpID
3823 SELECT
3824 TCE.ClientEmpID
3825 FROM
3826 utl.SplitString(@clientEmpUIDList , ',') tmp
3827 INNER JOIN dbo.tbl_ClientEmp AS TCE
3828 ON TCE.ClientEmpUID = tmp.Data
3829 WHERE
3830 tmp.Data IS NOT NULL
3831 AND RTRIM(LTRIM(tmp.Data)) != ''
3832
3833 DECLARE @temp NVARCHAR(MAX)= CONCAT(N'c=' , @currentLoggedInID , ' p=' , @payoutID , ' z=' , @isZeroBasicPay , ' f=' ,
3834 @isComputeFinalPay , ' u=' , @isForUpdate , ' e=' , @clientEmpUIDList)
3835 EXEC dbo.ufn_CreatePayoutNotification
3836 @currentLoggedInID
3837 , @payoutID
3838 , 3
3839 , @temp
3840 , 0
3841 , 0
3842 , @tranModuleProgressCollID
3843 , @clientID
3844 DECLARE @tblBasicPay TABLE
3845 (
3846 ClientEmpID BIGINT
3847 , CurrentBasicPayID BIGINT
3848 )
3849 INSERT INTO @tblBasicPay
3850 (
3851 ClientEmpID
3852 , CurrentBasicPayID
3853 )
3854 SELECT
3855 ClientEmpID
3856 , CurrentBasicPayID
3857 FROM
3858 [trn].[ufn__CEBasicPayForPayout](@clientID , @clientEmpUIDList , @payoutID) AS UCBPFP
3859 --SELECT
3860 -- VCBP.ClientEmpID
3861 -- , VCBP.CurrentBasicPayID
3862 --FROM
3863 -- ce.vw__CEBasicPay AS VCBP
3864 --CROSS APPLY (
3865 -- SELECT
3866 -- VCBP2.ClientEmpID
3867 -- , MAX(VCBP2.EffectivityPeriodDate) EffectivityPeriodDateMax
3868 -- FROM
3869 -- ce.vw__CEBasicPay AS VCBP2
3870 -- WHERE
3871 -- (
3872 -- (
3873 -- VCBP2.EffectiveYear = @year
3874 -- AND VCBP2.EffectiveMonth = @month
3875 -- AND VCBP2.PeriodFreqOrder <= @FreqOrder
3876 -- )
3877 -- OR ( VCBP2.EffectiveYear < @year )
3878 -- OR (
3879 -- VCBP2.EffectiveYear = @year
3880 -- AND VCBP2.EffectiveMonth < @month
3881 -- )
3882 -- )
3883 -- AND VCBP2.ClientEmpID = VCBP.ClientEmpID
3884 -- GROUP BY
3885 -- VCBP2.ClientEmpID
3886 -- ) AS VCBP_temp
3887 --WHERE
3888 -- VCBP.ClientID = @clientID
3889 -- AND (
3890 -- @clientEmpUIDList IS NULL
3891 -- OR VCBP.ClientEmpID IN ( SELECT
3892 -- ClientEmpID
3893 -- FROM
3894 -- @tblClientEmpID )
3895 -- )
3896 -- AND VCBP.CurrentBasicPayID IS NOT NULL
3897 -- AND VCBP_temp.EffectivityPeriodDateMax = VCBP.EffectivityPeriodDate
3898
3899 EXEC dbo.ufn_CreatePayoutNotification
3900 @currentLoggedInID
3901 , @payoutID
3902 , 3
3903 , N'2 delete TranRef'
3904 , 0
3905 , 0
3906 , @tranModuleProgressCollID
3907 , @clientID
3908
3909 DELETE
3910 TR
3911 FROM
3912 trn.tbl_TranRef AS TR
3913 INNER JOIN dbo.tbl_ClientEmp AS VCE
3914 ON VCE.ClientEmpID = TR.ClientEmpID
3915 INNER JOIN dbo.tbl_Payout AS P
3916 ON TR.PayoutID = P.PayoutID
3917 LEFT JOIN dbo.vw__Employee AS VE
3918 ON VE.ClientEmpID = TR.ClientEmpID
3919 AND VE.PymtModeID = P.PymtModeID
3920 AND VE.ClientID = P.ClientID
3921 LEFT JOIN @tblBasicPay AS BP
3922 ON BP.ClientEmpID = VE.ClientEmpID
3923 WHERE
3924 TR.PayoutID = @payoutID
3925 AND (
3926 @clientEmpUIDList IS NULL
3927 OR VCE.ClientEmpID IN ( SELECT
3928 ClientEmpID
3929 FROM
3930 @tblClientEmpID )
3931 )
3932 AND (
3933 VE.EmpID IS NULL
3934 OR VE.ClientEmpID IS NULL
3935 OR BP.ClientEmpID IS NULL
3936 OR (
3937 @PayoutType = 1
3938 AND (
3939 ( VE.EmploymentStatus = 2
3940 --AND VE.SeparatedOn < @cutOffEnd
3941 ) -- separated
3942 OR ( VE.EmploymentStatus = 3
3943 --AND VE.HoldOn <= @cutOffEnd
3944 ) -- hold)
3945 )
3946 )
3947 OR TR.ConfEmpGrpID != VE.ConfEmpGrpID
3948 --OR ( @PayoutType != 3
3949 -- AND TR.IsComputeAllowableDed != VE.IsComputeAllowableDed
3950 -- )
3951 );
3952
3953 DECLARE @rowCount INT = @@ROWCOUNT
3954 PRINT CONCAT(@rowCount ,
3955 ' item/s with Hold Employee Status, No Employee Info and Modified ConfEmpGrpID is deleted from trn.tbl_TranRef')
3956
3957-----UPDATE the configurations-----
3958 EXEC dbo.ufn_CreatePayoutNotification
3959 @currentLoggedInID
3960 , @payoutID
3961 , 3
3962 , N'3 update TranRef'
3963 , 0
3964 , 0
3965 , @tranModuleProgressCollID
3966 , @clientID
3967 UPDATE
3968 TR
3969 SET -- TR.IsComputeAllowableDed = IIF (@isComputeAllowableDed = 1
3970 -- AND VCE.IsComputeAllowableDed = 1 , IIF (TR.OrigEntryTS != HexStrEntryTS , 1 , TR.IsComputeAllowableDed ) , 0 )--ISNULL(@isComputeAllowableDed , 0)
3971 --,
3972 TR.IsComputeFinalPay = IIF (TR.OrigEntryTS != HexStrEntryTS , ISNULL(@isComputeFinalPay , 0) , TR.IsComputeFinalPay )
3973 , TR.IsZeroBasicPay = IIF (TR.OrigEntryTS != HexStrEntryTS , ISNULL(@isZeroBasicPay , 0) , TR.IsZeroBasicPay )
3974 , TR.OrigEntryTS = TTI.HexStrEntryTS
3975 FROM
3976 trn.tbl_TranRef AS TR
3977 INNER JOIN dbo.tbl_ClientEmp AS VCE
3978 ON VCE.ClientEmpID = TR.ClientEmpID
3979 INNER JOIN dbo.tbl_Payout AS P
3980 ON P.PayoutID = @payoutID
3981 AND TR.PayoutID = P.PayoutID
3982 CROSS APPLY (
3983 SELECT
3984 PayoutID
3985 , TransactionInfoUID
3986 , NumOfHours
3987 , NumOfDays
3988 , TaxTableID
3989 , IsZeroBasicPay
3990 , IsComputeFinalPay
3991 , IncludeEmpEarn
3992 , IncludeEmpDed
3993 , IncludeEmpLoan
3994 , CreatedOn
3995 , CreatedByID
3996 , ModifiedOn
3997 , ModifiedByID
3998 , EntryTS
3999 , sys.fn_varbintohexstr(CAST(TTI_temp.EntryTS AS VARBINARY(8))) HexStrEntryTS
4000 FROM
4001 trn.tbl_TransactionInfo AS TTI_temp
4002 WHERE
4003 TTI_temp.PayoutID = P.PayoutID
4004 ) AS TTI
4005 --INNER JOIN dbo.vw__Employee AS VE
4006 -- ON VE.ClientEmpID = TR.ClientEmpID
4007 -- AND VE.PymtModeID = P.PymtModeID
4008 -- AND VE.ClientID = P.ClientID
4009 WHERE
4010 TR.PayoutID = @payoutID
4011 AND (
4012 @clientEmpUIDList IS NULL
4013 OR VCE.ClientEmpID IN ( SELECT
4014 ClientEmpID
4015 FROM
4016 @tblClientEmpID )
4017 )
4018 AND ( TR.OrigEntryTS != HexStrEntryTS
4019 --OR TR.IsComputeAllowableDed != VCE.IsComputeAllowableDed
4020 --OR TR.IsComputeAllowableDed != IIF (@isComputeAllowableDed IS NULL , VCE.IsComputeAllowableDed , IIF (@isComputeAllowableDed = 1
4021 --AND VCE.IsComputeAllowableDed = 1 , 1 , 0 ) )
4022 )
4023
4024 --AND ( TR.IsComputeAllowableDed != IIF (@isComputeAllowableDed IS NULL , VE.IsComputeAllowableDed , IIF (@isComputeAllowableDed = 1 , VE.IsComputeAllowableDed , @isComputeAllowableDed ) )
4025 -- OR TR.IsComputeFinalPay != IIF (@isComputeFinalPay IS NULL , 0 , @isComputeFinalPay )
4026 -- OR TR.IsZeroBasicPay != IIF (@isZeroBasicPay IS NULL , 0 , @isZeroBasicPay )
4027 -- );
4028 SET @rowCount = @@ROWCOUNT
4029 PRINT CONCAT(@rowCount , ' item/s is updated to trn.tbl_TranRef')
4030-------------------------------------
4031
4032
4033
4034
4035
4036 EXEC dbo.ufn_CreatePayoutNotification
4037 @currentLoggedInID
4038 , @payoutID
4039 , 3
4040 , N'1 insert TranRef'
4041 , 0
4042 , 0
4043 , @tranModuleProgressCollID
4044 , @clientID
4045 INSERT INTO trn.tbl_TranRef
4046 (
4047 ClientEmpID
4048 , ConfEmpGrpID
4049 --, FreqID
4050 , PayoutID
4051 --, TaxTableID
4052 , IsComputeFinalPay
4053 , IsZeroBasicPay
4054 , CreatedOn
4055 , CreatedByID
4056 , OrigEntryTS
4057 )
4058 SELECT
4059 VE.ClientEmpID
4060 , VE.ConfEmpGrpID
4061 , p.PayoutID
4062 , IIF (@isComputeFinalPay IS NULL , 0 , @isComputeFinalPay ) IsComputeFinalPay
4063 , IIF (@isZeroBasicPay IS NULL , 0 , @isZeroBasicPay ) IsZeroBasicPay
4064 , GETDATE() CreatedOn
4065 , E.EmpID CreatedByID
4066 , sys.fn_varbintohexstr(CAST(TTI.EntryTS AS VARBINARY(8)))
4067 FROM
4068 dbo.vw__Employee AS VE
4069 INNER JOIN dbo.tbl_Payout AS P
4070 ON P.PayoutID = @payoutID
4071 AND VE.PymtModeID = P.PymtModeID
4072 AND VE.ClientID = P.ClientID
4073 INNER JOIN trn.tbl_TransactionInfo AS TTI
4074 ON TTI.PayoutID = P.PayoutID
4075 INNER JOIN @tblBasicPay AS BP
4076 ON BP.ClientEmpID = VE.ClientEmpID
4077 INNER JOIN dbo.tbl_Emp AS E
4078 ON E.EmpID = @currentLoggedInID
4079 --LEFT JOIN ccg.tbl_TaxTable AS TT2
4080 -- ON TT2.PymtModeID = @pymtModeID
4081 --LEFT JOIN ccg.tbl_TaxTable AS TT
4082 -- ON TT.TaxTableUID = @taxTableUID
4083 WHERE
4084 --VE.EmploymentStatus = 1 -- not hold
4085 --OR ( VE.EmploymentStatus = 2
4086 -- AND VE.SeparatedOn >= @cutOffEnd
4087 -- ) -- separated
4088 --OR ( VE.EmploymentStatus = 3
4089 -- AND VE.HoldOn > @cutOffEnd
4090 -- ) -- hold
4091 --AND VE.ClientEmpID NOT IN ( SELECT
4092 -- ClientEmpID
4093 -- FROM
4094 -- trn.tbl_TranRef AS TR
4095 -- WHERE
4096 -- PayoutID = @payoutID )
4097 VE.ClientEmpID NOT IN ( SELECT
4098 ClientEmpID
4099 FROM
4100 trn.tbl_TranRef AS TR
4101 WHERE
4102 PayoutID = @payoutID )
4103 AND (
4104 @PayoutType IN ( 2 , 3 )
4105 OR VE.EmploymentStatus = 1 -- not hold
4106 --OR ( VE.EmploymentStatus = 2
4107 -- AND VE.SeparatedOn >= @cutOffEnd
4108 -- ) -- separated
4109 --OR ( VE.EmploymentStatus = 3
4110 -- AND VE.HoldOn > @cutOffEnd
4111 -- ) -- hold
4112 )
4113 AND (
4114 @clientEmpUIDList IS NULL
4115 OR VE.ClientEmpID IN ( SELECT
4116 ClientEmpID
4117 FROM
4118 @tblClientEmpID )
4119 )
4120
4121 SET @rowCount = @@ROWCOUNT
4122
4123 IF @isForUpdate = 0
4124 AND @rowCount = 0
4125 RAISERROR (N'No record created on tbl_TranRef', 15, -1 );
4126
4127 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TranRef')
4128
4129
4130
4131
4132 EXEC dbo.ufn_CreatePayoutNotification
4133 @currentLoggedInID
4134 , @payoutID
4135 , 3
4136 , N'End Module'
4137 , @rowCount
4138 , 1
4139 , @tranModuleProgressCollID
4140 , @clientID
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156GO
4157IF @@ERROR <> 0 SET NOEXEC ON
4158GO
4159PRINT N'Altering [trn].[usp_TranTaxComputation_Init]'
4160GO
4161ALTER PROCEDURE [trn].[usp_TranTaxComputation_Init]
4162 (
4163 @currentLoggedInID BIGINT,
4164 @payoutID BIGINT,
4165 @taxTableUID UNIQUEIDENTIFIER,
4166 @clientEmpUIDList NVARCHAR(MAX),
4167 @tranModuleProgressCollID BIGINT,
4168 @clientID BIGINT
4169 )
4170AS --
4171 SET NOCOUNT ON;
4172 EXEC dbo.ufn_CreatePayoutNotification
4173 @currentLoggedInID,
4174 @payoutID,
4175 12,
4176 N'Start Module',
4177 0,
4178 1,
4179 @tranModuleProgressCollID,
4180 @clientID;
4181
4182 DECLARE @tblClientEmpID TABLE
4183 (
4184 ClientEmpID BIGINT
4185 );
4186 INSERT INTO @tblClientEmpID
4187 SELECT
4188 TCE.ClientEmpID
4189 FROM
4190 utl.SplitString(@clientEmpUIDList, ',') tmp
4191 INNER JOIN
4192 dbo.tbl_ClientEmp AS TCE
4193 ON TCE.ClientEmpUID = tmp.Data
4194 WHERE
4195 tmp.Data IS NOT NULL
4196 AND RTRIM(LTRIM(tmp.Data)) != '';
4197
4198 DECLARE @PayoutType INT;
4199
4200 SELECT
4201 @PayoutType = PayoutType
4202 FROM
4203 dbo.tbl_Payout AS TP
4204 WHERE
4205 PayoutID = @payoutID;
4206
4207 --DECLARE @currentLoggedInUID UNIQUEIDENTIFIER = '808B3FDC-003E-428C-B950-58BA3AB453A3'
4208 --DECLARE @payoutUID UNIQUEIDENTIFIER = '36424ad0-92fd-40e7-bd88-a12f0f0446bb'
4209 --DECLARE @taxTableUID UNIQUEIDENTIFIER --= '834E00C2-FF79-43FF-8C90-B9A9B8B7A8CE'
4210
4211 -- NOTE!!!!!
4212 -- NOTE!!!!!
4213 -- NOTE!!!!!
4214 -- if no result in computation, possible reasons are:
4215 -- No basis of computation
4216 -- Computed value not in range (MIN <> MAX)
4217
4218 DELETE
4219 TTTC
4220 FROM
4221 trn.tbl_TTaxComp AS TTTC
4222 INNER JOIN
4223 trn.tbl_TranRef AS TR
4224 ON TR.TranRefID = TTTC.TranRefID
4225 INNER JOIN
4226 dbo.tbl_ClientEmp AS VCE
4227 ON VCE.ClientEmpID = TR.ClientEmpID
4228 INNER JOIN
4229 dbo.tbl_Payout AS P
4230 ON P.PayoutID = TR.PayoutID
4231 WHERE
4232 P.PayoutID = @payoutID
4233 AND TTTC.TaxTableBasisID IS NULL
4234 AND
4235 (
4236 @clientEmpUIDList IS NULL
4237 OR VCE.ClientEmpID IN (
4238 SELECT
4239 ClientEmpID
4240 FROM
4241 @tblClientEmpID
4242 )
4243 );
4244
4245 DECLARE @rowCount INT = @@ROWCOUNT;
4246 PRINT CONCAT(@rowCount, ' item/s is deleted to trn.tbl_TTaxComp');
4247
4248
4249 DECLARE @tblTaxTableCTE TABLE
4250 (
4251 TaxTableID BIGINT,
4252 ClientID BIGINT
4253 );
4254 INSERT INTO @tblTaxTableCTE
4255 (
4256 TaxTableID,
4257 ClientID
4258 )
4259 SELECT
4260 TT.TaxTableID,
4261 VCTTB.ClientID
4262 FROM
4263 cc.vw__CCTaxTable AS TT
4264 INNER JOIN
4265 ceg.vw__CEGTaxTableBasis AS VCTTB
4266 ON VCTTB.TaxTableID = TT.TaxTableID
4267 AND VCTTB.ClientID = TT.ClientID
4268 INNER JOIN
4269 c.tbl_ConfEmpGrp CEG
4270 ON CEG.ConfEmpGrpID = VCTTB.ConfEmpGrpID
4271 INNER JOIN
4272 dbo.tbl_Payout AS P
4273 ON P.PymtModeID = CEG.PymtModeID
4274 AND P.ClientID = TT.ClientID
4275 AND
4276 (
4277 P.FreqID = VCTTB.FreqID
4278 OR VCTTB.IsEveryPayroll = 1
4279 )
4280 WHERE
4281 TT.TaxTableUID = @taxTableUID
4282 AND P.PayoutID = @payoutID;
4283
4284 INSERT INTO trn.tbl_TTaxComp
4285 (
4286 TTaxCompUID,
4287 TranRefID,
4288 OverrideAmount,
4289 TaxTableBasisID
4290 )
4291 SELECT
4292 NEWID() TTaxCompUID,
4293 TR.TranRefID TranRefID,
4294 IIF(@PayoutType != 3, NULL, 0),
4295 utl.ufn_AddTaxTableBasisToAnnualizedFTEX(TR.TranRefID, @taxTableUID) TaxTableBasisID
4296 FROM
4297 trn.tbl_TranRef AS TR
4298 INNER JOIN
4299 dbo.tbl_ClientEmp AS VCE
4300 ON VCE.ClientEmpID = TR.ClientEmpID
4301 INNER JOIN
4302 c.tbl_ConfEmp AS CE3
4303 ON CE3.ClientEmpID = TR.ClientEmpID
4304 INNER JOIN
4305 dbo.tbl_Payout AS P
4306 ON P.PayoutID = TR.PayoutID
4307 INNER JOIN
4308 @tblTaxTableCTE AS VCTT
4309 ON VCTT.ClientID = P.ClientID
4310 --INNER JOIN ccg.tbl_Tax AS T
4311 -- ON T.TaxTableID = VCTT.TaxTableID
4312 WHERE
4313 P.PayoutID = @payoutID
4314 --AND T.TaxExemptID = CE3.TaxExemptID
4315 AND
4316 (
4317 @clientEmpUIDList IS NULL
4318 OR VCE.ClientEmpID IN (
4319 SELECT
4320 ClientEmpID
4321 FROM
4322 @tblClientEmpID
4323 )
4324 )
4325 AND TR.TranRefID NOT IN (
4326 SELECT
4327 TR.TranRefID
4328 FROM
4329 trn.tbl_TranRef AS TR
4330 INNER JOIN
4331 trn.tbl_TTaxComp
4332 ON trn.tbl_TTaxComp.TranRefID = TR.TranRefID
4333 WHERE
4334 PayoutID = @payoutID
4335 );
4336
4337 SET @rowCount = @@ROWCOUNT;
4338
4339 --IF @rowCount = 0
4340 -- RAISERROR (N'No record created', 15, -1 );
4341
4342 PRINT CONCAT(@rowCount, ' item/s is added to trn.tbl_TTaxComp');
4343
4344
4345 EXEC dbo.ufn_CreatePayoutNotification
4346 @currentLoggedInID,
4347 @payoutID,
4348 12,
4349 N'End Module',
4350 @rowCount,
4351 1,
4352 @tranModuleProgressCollID,
4353 @clientID;
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371GO
4372IF @@ERROR <> 0 SET NOEXEC ON
4373GO
4374PRINT N'Altering [trn].[usp_UpdatePayoutStatus]'
4375GO
4376ALTER PROCEDURE [trn].[usp_UpdatePayoutStatus]
4377 (
4378 @currentLoggedInUID UNIQUEIDENTIFIER
4379 , @payoutUID UNIQUEIDENTIFIER
4380 , @status TINYINT
4381 , @isSystemValidated BIT
4382 , @tranModuleProgressCollID BIGINT -- NULL:Generate TranModuleProgressCollID
4383 , @transactionMethodType TINYINT -- 0:Create, 1:Update, 2:DraftTransaction, 4:ForApproval, 5:ReOpen, 6:Approve, 7:Post, 8:Delete
4384 )
4385AS
4386 BEGIN
4387 BEGIN TRY
4388 ---- Check if payout is locked ----
4389 -- IF EXISTS ( SELECT 1
4390 -- FROM dbo.tbl_Payout AS VP
4391 -- WHERE PayoutUID = @payoutUID
4392 -- AND IsLocked = 1 )
4393 -- RAISERROR (N'Payout is locked', 15, -1 );
4394
4395 -- -- New = 0,
4396 -- -- Queieng = 1,
4397 -- -- Processing = 2,
4398 -- -- Open = 3,
4399 -- -- Draft = 4,
4400 -- -- ForApproval = 5,
4401 -- -- Approved = 6,
4402 -- -- Posted = 7
4403
4404 ------ You can only change to "Open" status when it is "Processing, Draft or For Approval" status only ----
4405 -- IF @status = 3
4406 -- BEGIN
4407 -- IF EXISTS ( SELECT 1
4408 -- FROM dbo.tbl_Payout AS VP
4409 -- WHERE PayoutUID = @payoutUID
4410 -- AND Status NOT IN ( 2, 4, 5 ) )
4411 -- RAISERROR (N'Payout is not in "Processing", "Draft" or "For Approval" status', 15, -1 );
4412 -- END
4413 -- ELSE
4414 ------ Check if it is the preceding status ----
4415 -- BEGIN
4416 -- IF EXISTS ( SELECT 1
4417 -- FROM dbo.tbl_Payout AS VP
4418 -- WHERE PayoutUID = @payoutUID
4419 -- AND Status != ( @status - 1 ) )
4420 -- RAISERROR (N'Invalid preceding Payout Status', 15, -1 );
4421 -- END
4422
4423 -- DECLARE @currentLoggedInUID UNIQUEIDENTIFIER ='51A3DDB2-01E0-4A38-8896-876E0CAC9EDE'
4424 --DECLARE @payoutUID UNIQUEIDENTIFIER = 'DDB4E295-21FF-4245-B434-528257F281FC'
4425 --DECLARE @status TINYINT =1
4426
4427 DECLARE
4428 @payoutID BIGINT
4429 , @clientID BIGINT
4430 , @year INT
4431 --DECLARE @tranModuleProgressCollID BIGINT
4432 DECLARE @currentLoggedInID BIGINT
4433 DECLARE @remarks NVARCHAR(MAX)
4434 DECLARE @remarksStart NVARCHAR(MAX)
4435 DECLARE @remarksEnd NVARCHAR(MAX)
4436
4437 DECLARE @curStatus TINYINT
4438 DECLARE @curIsLocked BIT
4439
4440 SELECT
4441 @payoutID = PayoutID
4442 , @clientID = ClientID
4443 , @year = Year
4444 , @curStatus = TP.Status
4445 , @curIsLocked = TP.IsLocked
4446 FROM
4447 dbo.tbl_Payout AS TP
4448 WHERE
4449 PayoutUID = @payoutUID
4450
4451
4452 SELECT
4453 @currentLoggedInID = EmpID
4454 FROM
4455 dbo.tbl_Emp AS TE
4456 WHERE
4457 EmpUID = @currentLoggedInUID
4458
4459 SELECT
4460 @remarks = CASE WHEN @status = 1 THEN 'Queuing Transactions'
4461 WHEN @status = 5 THEN 'Sending Transactions For Approval'
4462 WHEN @status = 6 THEN 'Approving Transactions'
4463 WHEN @status = 7 THEN 'Posting Transactions'
4464 ELSE 'Status not valid'
4465 END
4466 SET @remarksStart = CONCAT('Initialize ' , @remarks)
4467 SET @remarksEnd = CONCAT(@remarks , ' Completed')
4468
4469
4470 IF @tranModuleProgressCollID IS NULL
4471 BEGIN
4472 INSERT INTO trn.tbl_TranModuleProgressColl
4473 (
4474 PayoutID
4475 , TransactionMethodType
4476 , CreatedOn
4477 , CreatedByID
4478 )
4479 VALUES
4480 (
4481 @payoutID
4482 , -- PayoutID - bigint
4483 @transactionMethodType
4484 , GETDATE()
4485 , -- CreatedOn - datetime
4486 @currentLoggedInID -- CreatedByID - bigint
4487 )
4488 SET @tranModuleProgressCollID = SCOPE_IDENTITY()
4489 END
4490
4491 EXEC dbo.ufn_CreatePayoutNotification
4492 @currentLoggedInID
4493 , @payoutID
4494 , 2
4495 , @remarksStart
4496 , 0
4497 , 1
4498 , @tranModuleProgressCollID
4499 , @clientID
4500
4501
4502 IF @isSystemValidated = 0
4503 BEGIN
4504 IF @status = 1
4505 BEGIN
4506 --IF @curStatus NOT IN ( 0 , 3 , 4 , 5 , 6 , 7 )
4507 -- BEGIN
4508 -- RAISERROR (N'Queuing Transactions: Payout is neither new nor open', 15, -1 );
4509 -- END
4510 IF @curStatus = 1
4511 BEGIN
4512 RAISERROR (N'Queuing Transactions: Payout is already in Queuing status', 15, -1 );
4513 END
4514 IF @curStatus = 2
4515 BEGIN
4516 RAISERROR (N'Queuing Transactions: Payout is in Processing status', 15, -1 );
4517 END
4518 IF @curStatus IN ( 0 , 3 )
4519 AND @curIsLocked = 1
4520 BEGIN
4521 RAISERROR (N'Queuing Transactions: Payout is locked', 15, -1 );
4522 END
4523 IF @curStatus IN ( 4 , 5 , 6 , 7 )
4524 AND @curIsLocked = 0
4525 BEGIN
4526 RAISERROR (N'Queuing Transactions: Payout is not locked', 15, -1 );
4527 END
4528
4529 IF @transactionMethodType = 0
4530 AND @curStatus != 0
4531 BEGIN
4532 RAISERROR (N'Queuing Transactions for Creating Transaction: Payout is not new', 15, -1 );
4533 END
4534 IF @transactionMethodType = 1
4535 AND @curStatus != 3
4536 BEGIN
4537 RAISERROR (N'Queuing Transactions for Updating Transaction: Payout is not open', 15, -1 );
4538 END
4539 IF @transactionMethodType = 2
4540 AND @curStatus != 3
4541 BEGIN
4542 RAISERROR (N'Queuing Transactions for Drafting Transaction: Payout is not open', 15, -1 );
4543 END
4544 IF @transactionMethodType = 4
4545 AND @curStatus NOT IN ( 4 , 7 )
4546 BEGIN
4547 RAISERROR (N'Queuing Transactions for Sending For Approval: Payout is not drafted or posted', 15, -1 );
4548 END
4549 IF @transactionMethodType = 5
4550 AND @curStatus NOT IN ( 4 , 5 , 6 )
4551 BEGIN
4552 RAISERROR (N'Queuing Transactions for Re-opening Transaction: Payout is not drafted, For approval or approved', 15, -1 );
4553 END
4554 IF @transactionMethodType = 6
4555 AND @curStatus != 5
4556 BEGIN
4557 RAISERROR (N'Queuing Transactions for Approving Transaction: Payout is not For approval', 15, -1 );
4558 END
4559 IF @transactionMethodType = 7
4560 AND @curStatus != 6
4561 BEGIN
4562 RAISERROR (N'Queuing Transactions for Approving Transaction: Payout is not approved', 15, -1 );
4563 END
4564 END
4565 ELSE
4566 IF @status = 5
4567 BEGIN
4568 IF @curStatus NOT IN ( 4 , 7 )
4569 BEGIN
4570 RAISERROR (N'Sending Transactions For Approval: Payout is not drafted or posted', 15, -1 );
4571 END
4572 IF @curIsLocked = 0
4573 BEGIN
4574 RAISERROR (N'Sending Transactions For Approval: Payout is not locked', 15, -1 );
4575 END
4576 END
4577 ELSE
4578 IF @status = 6
4579 BEGIN
4580 IF @curStatus != 5
4581 BEGIN
4582 RAISERROR (N'Approving Transactions: Payout is not For approval', 15, -1 );
4583 END
4584 IF @curIsLocked = 0
4585 BEGIN
4586 RAISERROR (N'Approving Transactions: Payout is not locked', 15, -1 );
4587 END
4588 END
4589 ELSE
4590 IF @status = 7
4591 BEGIN
4592 IF @curStatus != 6
4593 BEGIN
4594 RAISERROR (N'Posting Transactions: Payout is not approved', 15, -1 );
4595 END
4596 IF @curIsLocked = 0
4597 BEGIN
4598 RAISERROR (N'Posting Transactions: Payout is not locked', 15, -1 );
4599 END
4600 END
4601 END
4602 ELSE
4603 BEGIN
4604 EXEC dbo.ufn_CreatePayoutNotification
4605 @currentLoggedInID
4606 , @payoutID
4607 , 1
4608 , N'Checking if payout is queuing'
4609 , 0
4610 , 0
4611 , @tranModuleProgressCollID
4612 , @clientID
4613 IF EXISTS ( SELECT
4614 1
4615 FROM
4616 dbo.tbl_Payout AS VP
4617 WHERE
4618 PayoutUID = @payoutUID
4619 AND Status != 1 )
4620 BEGIN
4621 RAISERROR (N'Payout is not in "Queuing" status', 15, -1 );
4622 END
4623
4624 EXEC dbo.ufn_CreatePayoutNotification
4625 @currentLoggedInID
4626 , @payoutID
4627 , 1
4628 , N'Update payout status'
4629 , 0
4630 , 0
4631 , @tranModuleProgressCollID
4632 , @clientID
4633 UPDATE
4634 dbo.tbl_Payout
4635 SET
4636 Status = 2 -- Processing
4637 WHERE
4638 PayoutID = @payoutID
4639
4640 EXEC dbo.ufn_CreatePayoutNotification
4641 @currentLoggedInID
4642 , @payoutID
4643 , 1
4644 , N'Setting payout to "Processing status"'
4645 , 0
4646 , 0
4647 , @tranModuleProgressCollID
4648 , @clientID
4649 END
4650
4651
4652 IF @status = 6
4653 BEGIN
4654 IF EXISTS ( SELECT TOP 1
4655 TranMainID
4656 FROM
4657 trn.tbl_TranMain AS TTM
4658 INNER JOIN ccg.tbl_TaxTable AS TTT
4659 ON TTT.TaxTableID = TTM.TaxTableID
4660 WHERE
4661 PayoutID = @payoutID
4662 AND TTT.TaxTableType = 1
4663 AND TTT.TaxTableID = 28 )
4664 BEGIN
4665
4666 EXEC dbo.ufn_CreatePayoutNotification
4667 @currentLoggedInID
4668 , @payoutID
4669 , 2
4670 , N'Executing Update Annual Transaction'
4671 , 0
4672 , 0
4673 , @tranModuleProgressCollID
4674 , @clientID
4675
4676 DECLARE @retVal NVARCHAR(MAX)
4677 --> shyder 12/26/2017 update should affect employees under the payout approving
4678 --EXEC @retVal = tmp.usp_UpdateEmployeeTransactionByYearTable
4679 -- @ClientID = @clientID
4680 -- , -- bigint
4681 -- @Year = @year
4682 -- , -- int
4683 -- @CreatedByID = @currentLoggedInID -- bigint
4684
4685 --EXEC dbo.ufn_CreatePayoutNotification
4686 -- @currentLoggedInID
4687 -- , @payoutID
4688 -- , 2
4689 -- , N'Update Annual Transaction Completed'
4690 -- , 0
4691 -- , 0
4692 -- , @tranModuleProgressCollID
4693
4694 END
4695 END
4696
4697 EXEC dbo.ufn_CreatePayoutNotification
4698 @currentLoggedInID
4699 , @payoutID
4700 , 2
4701 , N'Updating Payout'
4702 , 0
4703 , 0
4704 , @tranModuleProgressCollID
4705 , @clientID
4706
4707 UPDATE
4708 dbo.tbl_Payout
4709 SET
4710 Status = @status
4711 WHERE
4712 PayoutID = @payoutID
4713
4714 SELECT
4715 CAST(@tranModuleProgressCollID AS NVARCHAR(MAX))
4716
4717 SELECT
4718 'SUCCESS'
4719
4720 EXEC dbo.ufn_CreatePayoutNotification
4721 @currentLoggedInID
4722 , @payoutID
4723 , 14
4724 , @remarksEnd
4725 , 0
4726 , 1
4727 , @tranModuleProgressCollID
4728 , @clientID
4729
4730
4731 END TRY
4732 BEGIN CATCH
4733 DECLARE @errMes NVARCHAR(500)= ERROR_MESSAGE()
4734 EXEC dbo.ufn_CreatePayoutNotification
4735 @currentLoggedInID
4736 , -- bigint
4737 @payoutID
4738 , -- bigint
4739 15
4740 , -- tinyint
4741 @errMes
4742 , -- nvarchar(500)
4743 0
4744 , -- int
4745 1
4746 , -- bit
4747 @tranModuleProgressCollID -- bigint
4748 , @clientID
4749
4750 RAISERROR (@errMes, 15, -1 );
4751 END CATCH
4752
4753 END
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774GO
4775IF @@ERROR <> 0 SET NOEXEC ON
4776GO
4777PRINT N'Altering [tst].[usp_FTEarnDetails_Init]'
4778GO
4779ALTER PROCEDURE [tst].[usp_FTEarnDetails_Init]
4780 (
4781 @currentLoggedInID BIGINT
4782 , @payoutID BIGINT
4783 , @tEarn trn.[tEarnTable] READONLY
4784 , @tranModuleProgressCollID BIGINT
4785 , @clientID BIGINT
4786 )
4787AS
4788 SET NOCOUNT ON
4789 EXEC dbo.ufn_CreatePayoutNotification
4790 @currentLoggedInID
4791 , @payoutID
4792 , 7
4793 , N'Start Module'
4794 , 0
4795 , 1
4796 , @tranModuleProgressCollID
4797 , @clientID
4798
4799 INSERT INTO trn.tbl_FTEarnDetails
4800 (
4801 FTEarnDetailsUID
4802 , TranMainID
4803 , EmpEarnID
4804 , EmpEarn_Amount
4805 , EmpEarn_PrincipalAmount
4806 , EmpEarn_Balance
4807 --, EmpEarn_AcctChartBrkdnName
4808 --, EmpEarn_AcctNo
4809 --, EmpEarn_AcctName
4810 --, EmpEarn_EarnCode
4811 --, EmpEarn_EarnName
4812 --, EmpEarn_IsAdjustIfAbsent
4813 --, EmpEarn_IsBasicPayPart
4814 --, EmpEarn_IsComputed
4815 --, EmpEarn_IsComputedBy
4816 --, EmpEarn_IsDeMinimis
4817 --, EmpEarn_IsNegativeComputation
4818 --, [EmpEarn_EarnTypeID]
4819 --, EmpEarn_IsReceivable
4820 --, EmpEarn_IsTaxable
4821 --, EmpEarn_ChargeEarnCode
4822 --, EmpEarn_ChargeEarnName
4823 , EmpEarn_EffEndMonthOn
4824 , EmpEarn_EffEndYearOn
4825 , EmpEarn_EffStartMonthOn
4826 , EmpEarn_EffStartYearOn
4827 , EmpEarn_PymtModeName
4828 , EmpEarn_FreqName
4829 , EmpEarn_FreqOrder
4830 , EmpEarn_PeriodStartFreqName
4831 , EmpEarn_PeriodStartFreqOrder
4832 , EmpEarn_PeriodEndFreqName
4833 , EmpEarn_PeriodEndFreqOrder
4834 , EmpEarn_Remarks
4835 , EarnID
4836 , Earn_AcctChartBrkdnName
4837 , Earn_AcctNo
4838 , Earn_AcctName
4839 , Earn_EarnCode
4840 , Earn_EarnName
4841 --, Earn_IsAdjustIfAbsent
4842 , Earn_AbsentAdjustmentEarnID
4843 , Earn_IsBasicPayPart
4844 , Earn_IsComputed
4845 , Earn_IsComputedBy
4846 , Earn_IsDeMinimis
4847 , Earn_IsNegativeComputation
4848 , [Earn_EarnTypeID]
4849 , Earn_IsReceivable
4850 , Earn_IsTaxable
4851 , Earn_ChargeEarnCode
4852 , Earn_ChargeEarnName
4853 , NumOfHours
4854 , NumOfDays
4855 , Amount
4856 )
4857 SELECT
4858 NEWID() FTEarnDetailsUID
4859 , TTM.TranMainID
4860 , TTE.EmpEarnID
4861 , VEE.Amount EmpEarn_Amount
4862 , VEE.PrincipalAmount EmpEarn_PrincipalAmount
4863 , VEE.Balance EmpEarn_Balance
4864 --, VACB.AcctChartBrkdnName EmpEarn_AcctChartBrkdnName
4865 --, VAC.AcctNo EmpEarn_AcctNo
4866 --, VAC.AcctName EmpEarn_AcctName
4867 --, VE.EarnCode EmpEarn_EarnCode
4868 --, VE.EarnName EmpEarn_EarnName
4869 --, VE.IsAdjustIfAbsent EmpEarn_IsAdjustIfAbsent
4870 --, VE.IsBasicPayPart EmpEarn_IsBasicPayPart
4871 --, VE.IsComputed EmpEarn_IsComputed
4872 --, VE.IsComputedBy EmpEarn_IsComputedBy
4873 --, VE.IsDeMinimis EmpEarn_IsDeMinimis
4874 --, VE.IsNegativeComputation EmpEarn_IsNegativeComputation
4875 --, VE.EarnTypeID EmpEarn_EarnTypeID
4876 --, VE.IsReceivable EmpEarn_IsReceivable
4877 --, VE.IsTaxable EmpEarn_IsTaxable
4878 --, VE2.EarnCode EmpEarn_ChargeEarnCode
4879 --, VE2.EarnName EmpEarn_ChargeEarnName
4880 , VEE.EffEndMonthOn EmpEarn_EffEndMonthOn
4881 , VEE.EffEndYearOn EmpEarn_EffEndYearOn
4882 , VEE.EffStartMonthOn EmpEarn_EffStartMonthOn
4883 , VEE.EffStartYearOn EmpEarn_EffStartYearOn
4884 , VPM.PymtModeName EmpEarn_PymtModeName
4885 , TF.FreqName EmpEarn_FreqName
4886 , TF.FreqOrder EmpEarn_FreqOrder
4887 , TF2.FreqName EmpEarn_PeriodStartFreqName
4888 , TF2.FreqOrder EmpEarn_PeriodStartFreqOrder
4889 , TF3.FreqName EmpEarn_PeriodEndFreqName
4890 , TF3.FreqOrder EmpEarn_PeriodEndFreqOrder
4891 , VEE.Remarks EmpEarn_Remarks
4892 , TTE.EarnID
4893 , VACB2.AcctChartBrkdnName Earn_AcctChartBrkdnName
4894 , VAC2.AcctNo Earn_AcctNo
4895 , VAC2.AcctName Earn_AcctName
4896 , VE3.EarnCode Earn_EarnCode
4897 , VE3.EarnName Earn_EarnName
4898 --, VE3.IsAdjustIfAbsent Earn_IsAdjustIfAbsent
4899 , VE3.AdjustIfAbsentEarnID Earn_AbsentAdjustmentEarnID
4900 , VE3.IsBasicPayPart Earn_IsBasicPayPart
4901 , VE3.IsComputed Earn_IsComputed
4902 , VE3.IsComputedBy Earn_IsComputedBy
4903 , VE3.IsDeMinimis Earn_IsDeMinimis
4904 , VE3.IsNegativeComputation Earn_IsNegativeComputation
4905 , VE3.EarnTypeID Earn_EarnTypeID
4906 , VE3.IsReceivable Earn_IsReceivable
4907 , VE3.IsTaxable Earn_IsTaxable
4908 , VE32.EarnCode Earn_ChargeEarnCode
4909 , VE32.EarnName Earn_ChargeEarnName
4910 , TTE.EditedNumOfHours NumOfHours
4911 , TTE.EditedNumOfDays NumOfDays
4912 , ISNULL(TTE.Amount,0) Amount
4913 FROM
4914 trn.tbl_TranMain AS TTM --CROSS APPLY (
4915 -- SELECT
4916 -- *
4917 -- FROM
4918 -- trn.ufn__TEarnDetailsByTranRefID(TTM.TranRefID)
4919 -- AS UTEDBTRI
4920 -- ) AS TTE
4921 INNER JOIN @tEarn AS TTE
4922 ON TTE.TranRefID = TTM.TranRefID
4923 LEFT JOIN ce.tbl_EmpEarn AS VEE
4924 ON VEE.EmpEarnID = TTE.EmpEarnID
4925 LEFT JOIN cc.tbl_Earn AS VE
4926 ON VE.EarnID = VEE.EarnID
4927 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB
4928 ON VACB.AcctChartBrkdnID = VE.AcctChartBrkdnID
4929 LEFT JOIN cc.tbl_AcctChart AS VAC
4930 ON VAC.AcctChartID = VE.AcctChartID
4931 LEFT JOIN cc.tbl_Earn AS VE2
4932 ON VE2.ChargeEarnID = VE.EarnID
4933 LEFT JOIN dbo.tbl_Freq AS TF
4934 ON TF.FreqID = VEE.FreqID
4935 LEFT JOIN dbo.tbl_Freq AS TF2
4936 ON TF2.FreqID = VEE.PeriodStartID
4937 LEFT JOIN dbo.tbl_Freq AS TF3
4938 ON TF3.FreqID = VEE.PeriodEndID
4939 LEFT JOIN ceg.tbl_PymtMode AS VPM
4940 ON VPM.PymtModeID = TF.PymtModeID
4941 INNER JOIN cc.tbl_Earn AS VE3
4942 ON VE3.EarnID = TTE.EarnID
4943 LEFT JOIN cc.tbl_AcctChartBrkdn AS VACB2
4944 ON VACB2.AcctChartBrkdnID = VE3.AcctChartBrkdnID
4945 LEFT JOIN cc.tbl_AcctChart AS VAC2
4946 ON VAC2.AcctChartID = VE3.AcctChartID
4947 LEFT JOIN cc.tbl_Earn AS VE32
4948 ON VE32.ChargeEarnID = VE3.EarnID
4949 WHERE
4950 TTM.PayoutID = @payoutID
4951 AND TTM.TranRefID NOT IN ( SELECT
4952 TranRefID
4953 FROM
4954 trn.tbl_TranMain AS TTM2
4955 INNER JOIN trn.tbl_FTEarnDetails AS TFTED
4956 ON TFTED.TranMainID = TTM2.TranMainID
4957 WHERE
4958 PayoutID = @payoutID )
4959
4960 DECLARE @rowCount INT = @@ROWCOUNT
4961
4962 --IF @rowCount = 0
4963 -- RAISERROR (N'No record created on tbl_FTEarnDetails', 15, -1 );
4964
4965 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTEarnDetails')
4966
4967
4968
4969
4970 EXEC dbo.ufn_CreatePayoutNotification
4971 @currentLoggedInID
4972 , @payoutID
4973 , 7
4974 , N'End Module'
4975 , @rowCount
4976 , 1
4977 , @tranModuleProgressCollID
4978 , @clientID
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989GO
4990IF @@ERROR <> 0 SET NOEXEC ON
4991GO
4992PRINT N'Altering [tst].[usp_FTLeaveCreditDetails_Init]'
4993GO
4994ALTER PROCEDURE [tst].[usp_FTLeaveCreditDetails_Init]
4995(
4996 @currentLoggedInID BIGINT,
4997 @payoutID BIGINT,
4998 @tranModuleProgressCollID BIGINT,
4999 @clientID BIGINT
5000)
5001AS
5002SET NOCOUNT ON;
5003EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
5004 @payoutID,
5005 8,
5006 N'Start Module - FTLeaveCredit',
5007 0,
5008 1,
5009 @tranModuleProgressCollID,
5010 @clientID;
5011
5012
5013
5014INSERT INTO trn.tbl_FTLeaveCreditDetails
5015(
5016 FTLeaveCreditUID,
5017 TranMainID,
5018 LeaveType_LeaveTypeID,
5019 LeaveType_LeaveTypeCode,
5020 LeaveType_LeaveTypeName,
5021 Count
5022)
5023SELECT NEWID(),
5024 TTM.TranMainID,
5025 TLT.LeaveTypeID,
5026 TLT.LeaveTypeCode,
5027 TLT.LeaveTypeName,
5028 TTLC.Count
5029FROM trn.tbl_TranMain AS TTM
5030 INNER JOIN trn.tbl_TLeaveCredit AS TTLC
5031 ON TTLC.TranRefID = TTM.TranRefID
5032 LEFT JOIN dbo.tbl_LeaveType AS TLT
5033 ON TLT.LeaveTypeID = TTLC.LeaveTypeID
5034WHERE PayoutID = @payoutID
5035 AND TTM.TranRefID NOT IN (
5036 SELECT TranRefID
5037 FROM trn.tbl_TranMain AS TTM2
5038 INNER JOIN trn.tbl_FTLeaveCreditDetails AS TFLC
5039 ON TTM2.TranMainID = TFLC.TranMainID
5040 WHERE TTM2.PayoutID = @payoutID
5041 );
5042
5043DECLARE @rowCount INT = @@ROWCOUNT;
5044
5045--IF @rowCount = 0
5046-- RAISERROR (N'No record created on tbl_FTDedDetails', 15, -1 );
5047
5048PRINT CONCAT(@rowCount, ' item/s is added to trn.tbl_FTLeaveCreditDetails');
5049
5050
5051
5052
5053EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
5054 @payoutID,
5055 8,
5056 N'End Module - FTLeaveCredit',
5057 @rowCount,
5058 1,
5059 @tranModuleProgressCollID,
5060 @clientID;
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081GO
5082IF @@ERROR <> 0 SET NOEXEC ON
5083GO
5084PRINT N'Altering [tst].[usp_TranMain_Init]'
5085GO
5086ALTER PROCEDURE [tst].[usp_TranMain_Init]
5087 (
5088 @currentLoggedInID BIGINT,
5089 @payoutID BIGINT,
5090 @payoutTbl trn.PayoutTable READONLY,
5091 @tranRefIDs trn.TranRefIDTable READONLY,
5092 @PreviousSumTranMainByMonth trn.[PreviousSumTranMainByMonthTable] READONLY,
5093 @RemainingPayoutInAYearTbl trn.RemainingPayoutInAYear READONLY,
5094 @ActualAndRemainingEmpEarnTbl trn.[ActualAndRemainingEmpEarn] READONLY,
5095 @tBasicPay trn.[tBasicPayTable] READONLY,
5096 @tEarn trn.[tEarnTable] READONLY,
5097 @tBonus trn.[tBonusTable] READONLY,
5098 @tOvertime trn.[tOvertimeTable] READONLY,
5099 @tGovtDedComp trn.[tGovtDedCompTable] READONLY,
5100 @tranModuleProgressCollID BIGINT,
5101 @clientID BIGINT
5102 )
5103AS
5104 BEGIN
5105 SET NOCOUNT ON;
5106 EXEC dbo.ufn_CreatePayoutNotification
5107 @currentLoggedInID,
5108 @payoutID,
5109 3,
5110 N'Start Module',
5111 0,
5112 1,
5113 @tranModuleProgressCollID,
5114 @clientID;
5115
5116 DECLARE @tranMain TABLE
5117 (
5118 TranRefID BIGINT,
5119 ConfEmpGrpID BIGINT,
5120 IsZeroBasicPay BIT,
5121 IsComputeFinalPay BIT,
5122 IsHoldNext DATE,
5123 PayoutID BIGINT,
5124 PayoutFreqID BIGINT,
5125 PayoutYear INT,
5126 PayoutMonth TINYINT,
5127 ClientID BIGINT,
5128 ClientName NVARCHAR(255),
5129 TaxTableID BIGINT,
5130 TaxTableName NVARCHAR(100),
5131 TaxTableBasisID BIGINT,
5132 HasAnnualizedTaxTable BIT,
5133 TaxExemptionID BIGINT,
5134 EmployeeType NVARCHAR(100),
5135 EmployeeTypeID BIGINT,
5136 DepartmentID BIGINT,
5137 DepartmentCode NVARCHAR(15),
5138 Division NVARCHAR(100),
5139 SectionID BIGINT,
5140 SectionCode NVARCHAR(30),
5141 SectionName NVARCHAR(255),
5142 SiteID BIGINT,
5143 SiteName NVARCHAR(255),
5144 LocationID BIGINT,
5145 LocationCode NVARCHAR(30),
5146 LocationName NVARCHAR(255),
5147 JobLevelID BIGINT,
5148 JobLevelCode NVARCHAR(30),
5149 JobLevelName NVARCHAR(255),
5150 PositionID BIGINT,
5151 PositionCode NVARCHAR(15),
5152 Position NVARCHAR(255),
5153 PayType TINYINT,
5154 FullName NVARCHAR(303),
5155 FirstName NVARCHAR(100),
5156 MiddleName NVARCHAR(100),
5157 LastName NVARCHAR(100),
5158 ClientEmpID BIGINT,
5159 ClientEmpCode NVARCHAR(15),
5160 PayoutCutOffStart DATE,
5161 PayoutCutOffEnd DATE,
5162 PayoutPeriodStart DATE,
5163 PayoutPeriodEnd DATE,
5164 PymtModeID BIGINT,
5165 PayDate DATE,
5166 PymtModeName NVARCHAR(100),
5167 TaxExemptionCode NVARCHAR(15),
5168 TaxTypeID BIGINT,
5169 TaxType NVARCHAR(100),
5170 NumOfDaysInAYear DECIMAL(18, 2),
5171 NumOfHoursInADay DECIMAL(18, 2),
5172 TotalNumOfHours DECIMAL(18, 2),
5173 TotalNumOfDays DECIMAL(18, 2),
5174 PrevHourly DECIMAL(18, 2),
5175 PrevDaily DECIMAL(18, 2),
5176 PrevMonthly DECIMAL(18, 2),
5177 PrevBasicPay DECIMAL(29, 2),
5178 CurHourly DECIMAL(19, 2),
5179 CurDaily DECIMAL(19, 2),
5180 CurMonthly DECIMAL(19, 2),
5181 CurBasicPay DECIMAL(30, 2),
5182 IsMinimumWage BIT,
5183 BasicPay DECIMAL(30, 2),
5184 OtherTaxableIncome DECIMAL(38, 2),
5185 GrossTaxableIncome DECIMAL(38, 2),
5186 Overtime DECIMAL(38, 2),
5187 TaxableBonus DECIMAL(38, 2),
5188 OtherNonTaxableIncome DECIMAL(38, 2),
5189 NonTaxableBonus DECIMAL(38, 2),
5190 TotalNonTaxableIncome DECIMAL(38, 2),
5191 TotalTaxableEarning DECIMAL(38, 2),
5192 TotalTaxableComputedEarning DECIMAL(38, 2),
5193 TotalTaxablePartOfBasicEarning DECIMAL(38, 2),
5194 TotalNonTaxableEarning DECIMAL(38, 2),
5195 TotalNonTaxableComputedEarning DECIMAL(38, 2),
5196 TotalNonTaxableReceivableEarning DECIMAL(38, 2),
5197 TotalNonTaxableReceivablePartOfBasicEarning DECIMAL(38, 2),
5198 TotalNonTaxableDeminimisEarning DECIMAL(38, 2),
5199 TotalNonTaxableDeminimisPartOfBasicEarning DECIMAL(38, 2),
5200 WitholdingTax DECIMAL(38, 2),
5201 StatutoryDeduction DECIMAL(38, 2),
5202 FormulatedStatutoryDeduction DECIMAL(38, 2),
5203 GovernmentLoan DECIMAL(38, 2),
5204 CompanyLoan DECIMAL(38, 2),
5205 CompanyDeduction DECIMAL(38, 2),
5206 AdditionalAllowableDeduction DECIMAL(38, 2),
5207 TotalIncome DECIMAL(38, 2),
5208 TotalDeductions DECIMAL(38, 2),
5209 NetTaxableIncome DECIMAL(38, 2),
5210 NetPay DECIMAL(38, 2),
5211 TaxExemptionAmount DECIMAL(38, 2),
5212 TaxExemption NVARCHAR(MAX)
5213 );
5214 --INSERT INTO @tranMain
5215 -- (
5216 -- TranRefID,
5217 -- ConfEmpGrpID,
5218 -- IsZeroBasicPay,
5219 -- IsComputeFinalPay,
5220 -- IsHoldNext,
5221 -- PayoutID,
5222 -- PayoutFreqID,
5223 -- PayoutYear,
5224 -- PayoutMonth,
5225 -- ClientID,
5226 -- ClientName,
5227 -- TaxTableID,
5228 -- TaxTableName,
5229 -- TaxTableBasisID,
5230 -- HasAnnualizedTaxTable,
5231 -- TaxExemptionID,
5232 -- EmployeeType,
5233 -- EmployeeTypeID,
5234 -- DepartmentID,
5235 -- DepartmentCode,
5236 -- Division,
5237 -- SectionID,
5238 -- SectionCode,
5239 -- SectionName,
5240 -- SiteID,
5241 -- SiteName,
5242 -- LocationID,
5243 -- LocationCode,
5244 -- LocationName,
5245 -- JobLevelID,
5246 -- JobLevelCode,
5247 -- JobLevelName,
5248 -- PositionID,
5249 -- PositionCode,
5250 -- Position,
5251 -- PayType,
5252 -- FullName,
5253 -- FirstName,
5254 -- MiddleName,
5255 -- LastName,
5256 -- ClientEmpID,
5257 -- ClientEmpCode,
5258 -- PayoutCutOffStart,
5259 -- PayoutCutOffEnd,
5260 -- PayoutPeriodStart,
5261 -- PayoutPeriodEnd,
5262 -- PymtModeID,
5263 -- PayDate,
5264 -- PymtModeName,
5265 -- TaxExemptionCode,
5266 -- TaxTypeID,
5267 -- TaxType,
5268 -- NumOfDaysInAYear,
5269 -- NumOfHoursInADay,
5270 -- TotalNumOfHours,
5271 -- TotalNumOfDays,
5272 -- PrevHourly,
5273 -- PrevDaily,
5274 -- PrevMonthly,
5275 -- PrevBasicPay,
5276 -- CurHourly,
5277 -- CurDaily,
5278 -- CurMonthly,
5279 -- CurBasicPay,
5280 -- IsMinimumWage,
5281 -- BasicPay,
5282 -- OtherTaxableIncome,
5283 -- GrossTaxableIncome,
5284 -- Overtime,
5285 -- TaxableBonus,
5286 -- OtherNonTaxableIncome,
5287 -- NonTaxableBonus,
5288 -- TotalNonTaxableIncome,
5289 -- TotalTaxableEarning,
5290 -- TotalTaxableComputedEarning,
5291 -- TotalTaxablePartOfBasicEarning,
5292 -- TotalNonTaxableEarning,
5293 -- TotalNonTaxableComputedEarning,
5294 -- TotalNonTaxableReceivableEarning,
5295 -- TotalNonTaxableReceivablePartOfBasicEarning,
5296 -- TotalNonTaxableDeminimisEarning,
5297 -- TotalNonTaxableDeminimisPartOfBasicEarning,
5298 -- WitholdingTax,
5299 -- StatutoryDeduction,
5300 -- FormulatedStatutoryDeduction,
5301 -- GovernmentLoan,
5302 -- CompanyLoan,
5303 -- CompanyDeduction,
5304 -- AdditionalAllowableDeduction,
5305 -- TotalIncome,
5306 -- TotalDeductions,
5307 -- NetTaxableIncome,
5308 -- NetPay,
5309 -- TaxExemptionAmount,
5310 -- TaxExemption
5311 -- )
5312
5313 --DECLARE @delaredCount INT = 0;
5314 --SELECT
5315 -- @delaredCount = COUNT(*)
5316 --FROM
5317 -- @tranMain;
5318
5319 --DECLARE @t DATETIME = GETDATE();
5320 --EXEC dbo.ufn_ExecuteCreateTranModuleProgress
5321 -- @currentLoggedInID,
5322 -- @payoutID,
5323 -- 2,
5324 -- N'Reference Header - Declared',
5325 -- 0,
5326 -- @t,
5327 -- 0,
5328 -- @tranModuleProgressCollID;
5329
5330 INSERT INTO trn.tbl_TranMain
5331 SELECT
5332 NEWID(),
5333 [TranRefID],
5334 [ConfEmpGrpID],
5335 [IsZeroBasicPay],
5336 [IsComputeFinalPay],
5337 [IsHoldNext],
5338 [PayoutID],
5339 [PayoutFreqID],
5340 [PayoutYear],
5341 [PayoutMonth],
5342 [ClientID],
5343 [ClientName],
5344 [TaxTableID],
5345 [TaxTableName],
5346 [TaxTableBasisID],
5347 [HasAnnualizedTaxTable],
5348 [TaxExemptionID],
5349 [EmployeeType],
5350 [EmployeeTypeID],
5351 [DepartmentID],
5352 [DepartmentCode],
5353 [Division],
5354 [SectionID],
5355 [SectionCode],
5356 [SectionName],
5357 [SiteID],
5358 [SiteName],
5359 --LocationID,
5360 --LocationCode,
5361 --LocationName,
5362 --JobLevelID,
5363 --JobLevelCode,
5364 --JobLevelName,
5365 [PositionID],
5366 [PositionCode],
5367 [Position],
5368 [PayType],
5369 [FullName],
5370 [FirstName],
5371 [MiddleName],
5372 [LastName],
5373 [ClientEmpID],
5374 [ClientEmpCode],
5375 [PayoutCutOffStart],
5376 [PayoutCutOffEnd],
5377 [PayoutPeriodStart],
5378 [PayoutPeriodEnd],
5379 [PymtModeID],
5380 [PayDate],
5381 [PymtModeName],
5382 [TaxExemptionCode],
5383 [TaxTypeID],
5384 [TaxType],
5385 [NumOfDaysInAYear],
5386 [NumOfHoursInADay],
5387 [TotalNumOfHours],
5388 [TotalNumOfDays],
5389 [PrevHourly],
5390 [PrevDaily],
5391 [PrevMonthly],
5392 [PrevBasicPay],
5393 [CurHourly],
5394 [CurDaily],
5395 [CurMonthly],
5396 [CurBasicPay],
5397 [IsMinimumWage],
5398 [BasicPay],
5399 [OtherTaxableIncome],
5400 [GrossTaxableIncome],
5401 [Overtime],
5402 [TaxableBonus],
5403 [OtherNonTaxableIncome],
5404 [NonTaxableBonus],
5405 [TotalNonTaxableIncome],
5406 [TotalTaxableEarning],
5407 [TotalTaxableComputedEarning],
5408 [TotalTaxablePartOfBasicEarning],
5409 [TotalNonTaxableEarning],
5410 [TotalNonTaxableComputedEarning],
5411 [TotalNonTaxableReceivableEarning],
5412 [TotalNonTaxableReceivablePartOfBasicEarning],
5413 [TotalNonTaxableDeminimisEarning],
5414 [TotalNonTaxableDeminimisPartOfBasicEarning],
5415 [WitholdingTax],
5416 [StatutoryDeduction],
5417 [FormulatedStatutoryDeduction],
5418 [GovernmentLoan],
5419 [CompanyLoan],
5420 [CompanyDeduction],
5421 [AdditionalAllowableDeduction],
5422 [TotalIncome],
5423 [TotalDeductions],
5424 [NetTaxableIncome],
5425 [NetPay],
5426 [TaxExemptionAmount],
5427 [TaxExemption],
5428 GETDATE(),
5429 @currentLoggedInID,
5430 JobLevelID,
5431 JobLevelCode,
5432 JobLevelName,
5433 LocationID,
5434 LocationCode,
5435 LocationName
5436 FROM
5437 tst.ufn__TransactionMain(
5438 @payoutTbl, @tranRefIDs, @PreviousSumTranMainByMonth,
5439 @RemainingPayoutInAYearTbl, @ActualAndRemainingEmpEarnTbl,
5440 @tBasicPay, @tEarn, @tBonus, @tOvertime, @tGovtDedComp
5441 );
5442
5443 DECLARE @rowCount INT = @@ROWCOUNT;
5444
5445 IF @rowCount = 0
5446 RAISERROR(N'No record created on tbl_TranMain', 15, -1);
5447
5448 PRINT CONCAT(@rowCount, ' item/s is added to trn.tbl_TranMain');
5449
5450
5451
5452
5453 EXEC dbo.ufn_CreatePayoutNotification
5454 @currentLoggedInID,
5455 @payoutID,
5456 3,
5457 N'End Module',
5458 @rowCount,
5459 1,
5460 @tranModuleProgressCollID,
5461 @clientID;
5462 END;
5463GO
5464IF @@ERROR <> 0 SET NOEXEC ON
5465GO
5466PRINT N'Altering [tst].[usp_FTGovtDedDetails_Init]'
5467GO
5468ALTER PROCEDURE [tst].[usp_FTGovtDedDetails_Init]
5469 (
5470 @currentLoggedInID BIGINT
5471 , @payoutID BIGINT
5472 , @tGovtDedComp trn.[tGovtDedCompTable] READONLY
5473 , @tranModuleProgressCollID BIGINT
5474 , @clientID BIGINT
5475 )
5476AS
5477 SET NOCOUNT ON
5478 EXEC dbo.ufn_CreatePayoutNotification
5479 @currentLoggedInID
5480 , @payoutID
5481 , 11
5482 , N'Start Module'
5483 , 0
5484 , 1
5485 , @tranModuleProgressCollID
5486 , @clientID
5487
5488 INSERT INTO trn.tbl_FTGovtDedDetails
5489 (
5490 FTGovtDedDetailsUID
5491 , TranMainID
5492 , StatutoryTableKeyID
5493 , StatutoryTableKeyName
5494 , EYeeShare
5495 , EYerShare
5496 , ExtraValue
5497 , FormulatedEYeeShare
5498 , FormulatedEYerShare
5499 , FormulatedExtraValue
5500 )
5501 SELECT
5502 NEWID() FTGovtDedDetailsUID
5503 , TTM.TranMainID
5504 , VTGDCD.StatutoryTableKeyID
5505 , VTGDCD.StatutoryTableKeyName
5506 , VTGDCD.EYeeShare
5507 , VTGDCD.EYerShare
5508 , VTGDCD.ExtraValue
5509 , [VTGDCD].[FormulatedEYeeShare]
5510 , [VTGDCD].[FormulatedEYerShare]
5511 , [VTGDCD].[FormulatedExtraValue]
5512 FROM
5513 trn.tbl_TranMain AS TTM
5514 INNER JOIN trn.tbl_TranRef AS TTR
5515 ON TTR.TranRefID = TTM.TranRefID
5516 INNER JOIN dbo.tbl_Payout AS VP
5517 ON VP.PayoutID = TTM.PayoutID
5518 --CROSS APPLY (
5519 -- SELECT
5520 -- [MandDedTableID]
5521 -- , [StatutoryTableKeyName]
5522 -- , [StatutoryTableKeyID]
5523 -- , [Formula]
5524 -- , [FormulaData]
5525 -- , [EYeeShare]
5526 -- , [EYerShare]
5527 -- , [ExtraValue]
5528 -- , [FormulatedEYeeShare]
5529 -- , [FormulatedEYerShare]
5530 -- , [FormulatedExtraValue]
5531 -- , [PreviousEmployeeShare]
5532 -- , [IsComputeAllowableDed]
5533 -- , [TranRefID]
5534 -- , [TranRefUID]
5535 -- , [PayoutUID]
5536 -- , [ClientEmpUID]
5537 -- FROM
5538 -- tst.ufn__TGovtDedCompDetails(@payoutTbl ,
5539 -- @tranRefIDs ,
5540 -- @ActualAndRemainingEmpEarnTbl ,
5541 -- @PreviousSumTranMainByMonth ,
5542 -- @tBasicPay ,
5543 -- @tEarn ,
5544 -- @tOvertime ,
5545 -- @tBonus) AS UTGDCD
5546 -- WHERE
5547 -- TGovtDedCompID IS NOT NULL
5548 -- )
5549 INNER JOIN @tGovtDedComp AS VTGDCD
5550 ON VTGDCD.TranRefID = TTM.TranRefID
5551 --AND
5552 -- VTGDCD.TranRefID IN ( SELECT
5553 -- TranRefID
5554 -- FROM
5555 -- trn.tbl_TranMain AS TTM2
5556 -- WHERE
5557 -- TTM2.PayoutID = @payoutID )
5558 -- CROSS APPLY (
5559 -- SELECT
5560 -- (
5561 -- SELECT
5562 -- CurBasicPay
5563 ------------ C ---------
5564 -- , ISNULL(ISNULL(CurBasicPay , 0)
5565 -- ---------- D ---------
5566 -- + ISNULL(OtherTaxableIncome , 0)
5567 -- ---------- E ---------
5568 -- + ISNULL(Overtime , 0)
5569 -- ---------- F ---------
5570 -- + ISNULL(TaxableBonus , 0) , 0) GrossTaxableIncome
5571 -- FOR
5572 -- XML PATH('root')
5573 -- ) AS TempXML
5574 -- ) GovDedComp
5575 -- --INNER JOIN ceg.tbl_MandDedTableBasis AS MDTB ON MDTB.ConfEmpGrpID = TR.ConfEmpGrpID
5576 -- --INNER JOIN trn.vw__VariableExpression AS VVE ON VVE.VariableID = MDTB.VariableID
5577 -- --INNER JOIN cc.vw__CCMandDeductTable AS VCMDT
5578 -- -- ON VCMDT.ClientID = P.ClientID
5579 -- CROSS APPLY (
5580 -- SELECT
5581 -- ISNULL(TTGDC.OverrideEYeeShare , MD.EYeeShare) EYeeShare
5582 -- , ISNULL(TTGDC.OverrideEYerShare , MD.EYerShare) EYerShare
5583 -- , ISNULL(TTGDC.OverrideExtraValue , MD.EC) ExtraValue
5584 -- , TMDT.StatutoryTableKeyID
5585 -- , VSTK.StatutoryTableKeyName
5586 -- FROM
5587 -- ccg.tbl_MandDed AS MD --INNER JOIN cc.vw__CCMandDeductTable AS VCMDT ON MD.MandDedTableID = VCMDT.MandDedTableID
5588 -- -- AND VCMDT.ClientID = VP.ClientID
5589 -- INNER JOIN ceg.tbl_MandDedTableBasis AS TMDTB
5590 -- ON TMDTB.ConfEmpGrpID = TTR.ConfEmpGrpID
5591 -- AND TMDTB.MandDedTableID = MD.MandDedTableID
5592 -- AND TMDTB.FreqID = VP.FreqID
5593 -- INNER JOIN ccg.tbl_MandDedTable AS TMDT
5594 -- ON TMDT.MandDedTableID = TMDTB.MandDedTableID
5595 -- INNER JOIN trn.vw__VariableExpression AS VVE
5596 -- ON VVE.VariableID = TMDTB.VariableID
5597 -- LEFT JOIN trn.tbl_TGovtDedComp AS TTGDC
5598 -- ON TTGDC.TranRefID = TTM.TranRefID
5599 -- AND TTGDC.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
5600 -- INNER JOIN dbo.tbl_StatutoryTableKey AS VSTK
5601 -- ON VSTK.StatutoryTableKeyID = TMDT.StatutoryTableKeyID
5602 -- WHERE
5603 -- dbo.ufn_EvaluateFromXML(VVE.Expression ,
5604 -- VVE.Val ,
5605 -- GovDedComp.TempXML) BETWEEN MD.Min
5606 -- AND
5607 -- MD.Max
5608 -- ) MD
5609 WHERE
5610 TTM.PayoutID = @payoutID
5611 AND TTM.TranRefID NOT IN ( SELECT
5612 TranRefID
5613 FROM
5614 trn.tbl_TranMain AS TTM2
5615 INNER JOIN trn.tbl_FTGovtDedDetails AS TFTGDD
5616 ON TFTGDD.TranMainID = TTM2.TranMainID
5617 WHERE
5618 PayoutID = @payoutID )
5619
5620 DECLARE @rowCount INT = @@ROWCOUNT
5621
5622 --IF @rowCount = 0
5623 -- RAISERROR (N'No record created on tbl_FTGovtDedDetails', 15, -1 );
5624
5625 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTGovtDedDetails')
5626
5627
5628
5629
5630 EXEC dbo.ufn_CreatePayoutNotification
5631 @currentLoggedInID
5632 , @payoutID
5633 , 11
5634 , N'End Module'
5635 , @rowCount
5636 , 1
5637 , @tranModuleProgressCollID
5638 , @clientID
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662GO
5663IF @@ERROR <> 0 SET NOEXEC ON
5664GO
5665PRINT N'Altering [tmp].[usp_ExecuteEmployeeUpload]'
5666GO
5667ALTER PROCEDURE [tmp].[usp_ExecuteEmployeeUpload]
5668 (
5669 @batchUID UNIQUEIDENTIFIER,
5670 @currentLoggedInUID UNIQUEIDENTIFIER
5671 )
5672AS
5673 BEGIN
5674 BEGIN TRAN;
5675
5676 BEGIN TRY
5677 DECLARE @batchID BIGINT;
5678 DECLARE @clientID BIGINT;
5679 DECLARE @empID BIGINT;
5680
5681 SELECT
5682 @empID = EmpID
5683 FROM
5684 [dbo].[tbl_Emp] AS TE
5685 WHERE
5686 [EmpUID] = @currentLoggedInUID;
5687
5688 SELECT
5689 @clientID = [ClientID],
5690 @batchID = BatchID
5691 FROM
5692 [tmp].[tbl_Batch] AS TB
5693 WHERE
5694 BatchUID = @batchUID;
5695
5696 INSERT INTO [PayrollDB (Main)].[dbo].[tbl_Emp]
5697 (
5698 [EmpUID],
5699 [EmpCode],
5700 [CreatedOn],
5701 [CreatedByID],
5702 [BatchID]
5703 )
5704 SELECT
5705 [EmpUID],
5706 [Emp_EmpCode],
5707 GETDATE(),
5708 @empID,
5709 [Emp_BatchID]
5710 FROM
5711 [tmp].[tbl_EmployeeUpload] AS TEU
5712 WHERE
5713 [Emp_BatchID] = @batchID;
5714
5715 SET IDENTITY_INSERT dbo.tbl_Emp ON
5716
5717 INSERT INTO [dbo].[tbl_Emp]
5718 (
5719 [EmpID],
5720 [EmpUID],
5721 [EmpCode],
5722 [CreatedOn],
5723 [CreatedByID],
5724 [BatchID]
5725 )
5726 SELECT TE.EmpID,
5727 TE.EmpUID,
5728 TE.EmpCode,
5729 TE.CreatedOn,
5730 TE.CreatedByID,
5731 TE.BatchID FROM [PayrollDB (Main)].dbo.tbl_Emp AS TE
5732 WHERE TE.BatchID = @batchID
5733
5734 SET IDENTITY_INSERT dbo.tbl_Emp OFF
5735
5736 INSERT INTO [dbo].[tbl_ClientEmp]
5737 (
5738 [ClientID],
5739 [EmpID],
5740 [IsEpay],
5741 [ClientEmpCode],
5742 [EmailAddress],
5743 [ClientEmpUID],
5744 [HiredOn],
5745 [RehiredOn],
5746 [RegularizedOn],
5747 [SeparatedOn],
5748 [SeparatedRemark],
5749 [HoldOn],
5750 [IsAdmin],
5751 [CreatedOn],
5752 [CreatedByID],
5753 [BatchID],
5754 [HoldRemark]
5755 )
5756 SELECT
5757 @clientID,
5758 [EmpID],
5759 1,
5760 [TEU].[ClientEmp_EmployeeCode],
5761 [ClientEmp_EmailAddress],
5762 [ClientEmpUID],
5763 [ClientEmp_HiredOn],
5764 [ClientEmp_RehiredOn],
5765 [ClientEmp_RegularizedOn],
5766 [ClientEmp_SeparatedOn],
5767 [ClientEmp_SeparatedRemark],
5768 [ClientEmp_HoldOn],
5769 0,
5770 GETDATE(),
5771 @empID,
5772 @batchID,
5773 [ClientEmp_HoldRemark]
5774 FROM
5775 [dbo].[tbl_Emp] AS TE
5776 INNER JOIN
5777 [tmp].[tbl_EmployeeUpload] AS TEU
5778 ON [TEU].[EmpUID] = [TE].[EmpUID]
5779 WHERE
5780 [BatchID] = @batchID;
5781
5782 INSERT INTO [dbo].[tbl_KeyValueColl]
5783 (
5784 [CreatedOn],
5785 [CreatedByID],
5786 [KeyValueCollUID]
5787 )
5788 SELECT
5789 GETDATE(),
5790 @empID,
5791 KeyValueCollUID
5792 FROM
5793 [tmp].[tbl_EmployeeUpload] AS TEU
5794 WHERE
5795 [Emp_BatchID] = @batchID;
5796
5797 INSERT INTO [dbo].[tbl_EmpInfo]
5798 (
5799 [EmpID],
5800 [NickName],
5801 [FirstName],
5802 [MiddleName],
5803 [LastName],
5804 [Gender],
5805 [Birthdate],
5806 [CivilStatus],
5807 [PassportID],
5808 [NationalityID],
5809 [KeyValueCollID],
5810 [CreatedOn],
5811 [CreatedByID],
5812 [EmpInfoUID],
5813 [BatchID]
5814 )
5815 SELECT
5816 TE.[EmpID],
5817 [EmpInfo_NickName],
5818 [EmpInfo_FirstName],
5819 [EmpInfo_MiddleName],
5820 [EmpInfo_LastName],
5821 [EmpInfo_Gender],
5822 [EmpInfo_Birthdate],
5823 [EmpInfo_CivilStatus],
5824 [EmpInfo_PassportID],
5825 [EmpInfo_NationalityID],
5826 KVC.[KeyValueCollID],
5827 GETDATE(),
5828 @empID,
5829 [EmpInfoUID],
5830 @batchID
5831 FROM
5832 [tmp].[tbl_EmployeeUpload] AS TEU
5833 INNER JOIN
5834 [dbo].[tbl_Emp] AS TE
5835 ON [TE].[EmpUID] = [TEU].[EmpUID]
5836 INNER JOIN
5837 [dbo].[tbl_KeyValueColl] KVC
5838 ON [KVC].[KeyValueCollUID] = [TEU].[KeyValueCollUID]
5839 WHERE
5840 [TEU].[Emp_BatchID] = @batchID;
5841
5842
5843 INSERT INTO [dbo].[tbl_KeyValue]
5844 (
5845 [KeyValueUID],
5846 [KeyValueCollID],
5847 [KeyID],
5848 [Value],
5849 [CreatedOn],
5850 [CreatedByID]
5851 )
5852 SELECT
5853 NEWID(),
5854 [TKVC].[KeyValueCollID],
5855 TEUKV.[KeyVal_KeyID],
5856 TEUKV.[KeyVal_Value],
5857 GETDATE(),
5858 @empID
5859 FROM
5860 [tmp].[tbl_EmployeeUpload] AS TEU
5861 INNER JOIN
5862 [dbo].[tbl_KeyValueColl] AS TKVC
5863 ON [TKVC].[KeyValueCollUID] = [TEU].[KeyValueCollUID]
5864 INNER JOIN
5865 [tmp].[tbl_EmployeeUpload_KeyValue] AS TEUKV
5866 ON [TEUKV].[RecordUID] = [TEU].[RecordUID]
5867 WHERE
5868 [TEU].[Emp_BatchID] = @batchID;
5869
5870 INSERT INTO [dbo].[tbl_EmpInfoCont]
5871 (
5872 [EmpInfoContUID],
5873 [EmpID],
5874 [EmpInfoContName],
5875 [EmpInfoContactType],
5876 [Value],
5877 [IsPrimary],
5878 [CreatedOn],
5879 [CreatedByID],
5880 [BatchID],
5881 [ContactBaseID]
5882 )
5883 SELECT
5884 NEWID(),
5885 [EmpID],
5886 TEUC.[Cont_Name],
5887 TEUC.[Cont_Type],
5888 TEUC.[Cont_Value],
5889 0,
5890 GETDATE(),
5891 @empID,
5892 @batchID,
5893 TCB.ContactBaseID
5894 FROM
5895 [tmp].[tbl_EmployeeUpload] AS TEU
5896 INNER JOIN
5897 [tmp].[tbl_EmployeeUpload_Cont] AS TEUC
5898 ON [TEUC].[RecordUID] = [TEU].[RecordUID]
5899 INNER JOIN
5900 [dbo].[tbl_Emp] AS TE
5901 ON [TE].[EmpUID] = [TEU].[EmpUID]
5902 INNER JOIN
5903 dbo.tbl_ContactBase AS TCB
5904 ON TCB.ContactType = TEUC.Cont_Type
5905 WHERE
5906 [TEU].[Emp_BatchID] = @batchID;
5907
5908 INSERT INTO [dbo].[tbl_EmpInfoAddr]
5909 (
5910 [EmpInfoAddrName],
5911 [EmpID],
5912 [Address],
5913 [IsPrimary],
5914 [CreatedOn],
5915 [CreatedByID],
5916 [EmpInfoAddrUID],
5917 [BatchID],
5918 [AddressBaseID]
5919 )
5920 SELECT
5921 [TEUC].[Addr_Name],
5922 [EmpID],
5923 [TEUC].[Addr_Value],
5924 0,
5925 GETDATE(),
5926 @empID,
5927 NEWID(),
5928 @batchID,
5929 TAB.AddressBaseID
5930 FROM
5931 [tmp].[tbl_EmployeeUpload] AS TEU
5932 INNER JOIN
5933 [tmp].[tbl_EmployeeUpload_Addr] AS TEUC
5934 ON [TEUC].[RecordUID] = [TEU].[RecordUID]
5935 INNER JOIN
5936 [dbo].[tbl_Emp] AS TE
5937 ON [TE].[EmpUID] = [TEU].[EmpUID]
5938 INNER JOIN
5939 dbo.tbl_AddressBase AS TAB
5940 ON TAB.AddressBaseName = TEUC.Addr_Name
5941 WHERE
5942 [TEU].[Emp_BatchID] = @batchID;
5943
5944 INSERT INTO [c].[tbl_ConfEmp]
5945 (
5946 [ConfEmpUID],
5947 [ConfEmpGrpID],
5948 [PymtTypeID],
5949 [TaxExemptID],
5950 [TaxTypeID],
5951 [EmpTypeID],
5952 [ClientEmpID],
5953 [EmpStatusID],
5954 [DepartmentID],
5955 [SiteID],
5956 LocationID,
5957 JobLevelID,
5958 [SectionID],
5959 [PositionID],
5960 [CreatedOn],
5961 [CreatedByID],
5962 [BatchID]
5963 )
5964 SELECT
5965 [ConfEmpUID],
5966 [ConfEmp_EmployeeGroupID],
5967 [ConfEmp_PaymentTypeID],
5968 [ConfEmp_TaxExemptID],
5969 [ConfEmp_TaxTypeID],
5970 [ConfEmp_EmployeeTypeID],
5971 [ClientEmpID],
5972 [ConfEmp_EmployeeStatusID],
5973 [ConfEmp_DepartmentID],
5974 [ConfEmp_SiteID],
5975 ConfEmp_LocationID,
5976 ConfEmp_JobLevelID,
5977 [ConfEmp_SectionID],
5978 [ConfEmp_PositionID],
5979 GETDATE(),
5980 @empID,
5981 @batchID
5982 FROM
5983 [tmp].[tbl_EmployeeUpload] AS TEU
5984 INNER JOIN
5985 [dbo].[tbl_ClientEmp] AS TCE
5986 ON [TCE].[ClientEmpUID] = [TEU].[ClientEmpUID]
5987 WHERE
5988 [TEU].[Emp_BatchID] = @batchID;
5989
5990 --CLIENT EMP AllowDed Conf
5991 INSERT INTO dbo.tbl_ClientEmpAllowableDedConf
5992 (
5993 ClientEmpAllowableDedConfUID,
5994 ClientEmpID,
5995 StatutoryTableKeyID,
5996 IsCompute,
5997 CreatedOn,
5998 CreatedByID
5999 )
6000 SELECT
6001 NEWID() ClientEmpAllowableDedConfUID,
6002 TCE.ClientEmpID,
6003 StatutoryTableKeyID,
6004 1 IsCompute,
6005 GETDATE() CreatedOn,
6006 @empID CreatedByID
6007 FROM
6008 [tmp].[tbl_EmployeeUpload] AS TEU
6009 INNER JOIN
6010 [dbo].[tbl_ClientEmp] AS TCE
6011 ON [TCE].[ClientEmpUID] = [TEU].[ClientEmpUID]
6012 INNER JOIN
6013 dbo.tbl_StatutoryTableKey AS TSTK
6014 ON TSTK.SignatoryOnly = 0
6015 WHERE
6016 [TEU].[Emp_BatchID] = @batchID;
6017 --CLIENT EMP AllowDed Conf
6018
6019
6020
6021 INSERT INTO [dbo].[tbl_ClientEmpAuth]
6022 (
6023 [ClientEmpID],
6024 [Password],
6025 [IsLocked],
6026 [ClientEmpAuthUID],
6027 [CreatedOn],
6028 [CreatedByID],
6029 [PassExpireOn],
6030 [TempPassword],
6031 [TempPassExpireOn]
6032 )
6033 SELECT
6034 ClientEmpID,
6035 [ClientEmpAuthPass_Enc],
6036 0,
6037 NEWID(),
6038 GETDATE(),
6039 @empID,
6040 DATEADD(MONTH, 3, GETDATE()),
6041 [ClientEmpAuthPass_Temp],
6042 NULL
6043 --DATEADD(MINUTE, VR.ExpireTempPassMinutes,
6044 --GETDATE())
6045 FROM
6046 [tmp].[tbl_EmployeeUpload] AS TEU
6047 INNER JOIN
6048 [dbo].[tbl_ClientEmp] AS TCE
6049 ON [TCE].[ClientEmpUID] = [TEU].[ClientEmpUID]
6050 INNER JOIN
6051 dbo.vw__Requirement AS VR
6052 ON VR.ClientID = TCE.ClientID
6053 WHERE
6054 TEU.[Emp_BatchID] = @batchID;
6055
6056
6057 COMMIT;
6058 SELECT
6059 'Success';
6060 END TRY
6061 BEGIN CATCH
6062 SELECT
6063 ERROR_MESSAGE();
6064 ROLLBACK;
6065 END CATCH;
6066 END;
6067GO
6068IF @@ERROR <> 0 SET NOEXEC ON
6069GO
6070PRINT N'Altering [dbo].[usp_CreateWorkProgramProgress]'
6071GO
6072ALTER PROC [dbo].[usp_CreateWorkProgramProgress]
6073 (
6074 @payoutType TINYINT,
6075 @isComputeFinalPay BIT,
6076 @payoutID BIGINT,
6077 @currentLoggedInID BIGINT
6078 )
6079AS
6080BEGIN
6081
6082 --DECLARE @payoutType INT = 2;
6083 --DECLARE @isComputeFinalPay BIT = 1;
6084 --DECLARE @payoutID BIGINT = 96007;
6085 --DECLARE @currentLoggedInID BIGINT = 638298;
6086
6087
6088 DECLARE @tblTemp TABLE
6089 (
6090 WorkProgramProgressUID UNIQUEIDENTIFIER,
6091 WorkProgramTemplateID BIGINT,
6092 PayoutID BIGINT,
6093 TaskID BIGINT
6094 );
6095
6096 IF NOT EXISTS (SELECT TWPP.WorkProgramProgressID FROM dbo.tbl_WorkProgramProgress AS TWPP WHERE TWPP.PayoutID = @payoutID )
6097 BEGIN
6098 INSERT INTO @tblTemp
6099 (
6100 WorkProgramTemplateID,
6101 PayoutID,
6102 TaskID
6103 )
6104 SELECT TWP.WorkProgramTemplateID,
6105 @payoutID PayoutID,
6106 TWP.TaskID
6107 FROM dbo.tbl_WorkProgram AS TWP
6108 INNER JOIN dbo.tbl_WorkProgramTemplate AS TWPT
6109 ON TWPT.WorkProgramTemplateID = TWP.WorkProgramTemplateID
6110 WHERE (
6111 @payoutType = 1
6112 AND TWP.WorkProgramTemplateID = 1
6113 )
6114 OR
6115 (
6116 @payoutType = 2
6117 AND @isComputeFinalPay = 1
6118 AND TWP.WorkProgramTemplateID = 4
6119 );
6120
6121 INSERT INTO dbo.tbl_WorkProgramProgress
6122 (
6123 WorkProgramProgressUID,
6124 WorkProgramTemplateID,
6125 PayoutID,
6126 TaskID,
6127 Status,
6128 IsNotApplicable,
6129 CreatedOn,
6130 CreatedByID
6131 )
6132 SELECT NEWID(),
6133 TT.WorkProgramTemplateID,
6134 TT.PayoutID,
6135 TT.TaskID,
6136 0,
6137 0,
6138 GETDATE(),
6139 @currentLoggedInID
6140 FROM @tblTemp AS TT;
6141 END;
6142END;
6143GO
6144IF @@ERROR <> 0 SET NOEXEC ON
6145GO
6146PRINT N'Altering [cc].[vw__CCSite]'
6147GO
6148ALTER VIEW [cc].[vw__CCSite]
6149AS
6150 SELECT
6151 [SiteID]
6152 , [SiteName]
6153 , [SiteCode]
6154 , [SiteUID]
6155 , [SiteCollID]
6156 , [Source]
6157 , [ClientID]
6158 , [ClientUID]
6159 , [B].[AcctChart]
6160 FROM
6161 (
6162 SELECT
6163 [SiteID]
6164 , [SiteName]
6165 , [SiteCode]
6166 , [SiteUID]
6167 , [SiteCollID]
6168 , ROW_NUMBER() OVER ( PARTITION BY [ClientID], [SiteCode] ORDER BY [Source] DESC ) RowN
6169 , [Source]
6170 , [ClientID]
6171 , [ClientUID]
6172 , [A].[AcctChart]
6173 FROM
6174 (
6175 SELECT
6176 VS.[SiteID]
6177 , VS.[SiteName]
6178 , VS.[SiteCode]
6179 , VS.[SiteUID]
6180 , VS.[SiteCollID]
6181 , CASE WHEN VS.[SiteCollID] = VCC.[SiteCollID] THEN 3
6182 WHEN VS.[SiteCollID] = VCCG.[SiteCollID] THEN 2
6183 WHEN VS.[SiteCollID] = VCG.[SiteCollID] THEN 1
6184 ELSE 0
6185 END [Source]
6186 , VC.[ClientID]
6187 , VC.[ClientUID]
6188 , VS.[AcctChart]
6189 FROM
6190 [c].[tbl_ConfGlobal] AS VCG
6191 INNER JOIN [c].[tbl_ConfClientGrp] AS VCCG
6192 ON [VCCG].[ConfGlobalID] = [VCG].[ConfGlobalID]
6193 INNER JOIN [c].[tbl_ConfClient] AS VCC
6194 ON [VCC].[ConfClientGrpID] = [VCCG].[ConfClientGrpID]
6195 INNER JOIN [dbo].[tbl_Client] AS VC
6196 ON [VC].[ClientID] = [VCC].[ClientID]
6197 INNER JOIN [cc].[tbl_Site] AS VS
6198 ON VS.[SiteCollID] IN ( VCG.[SiteCollID], VCCG.[SiteCollID],
6199 VCC.[SiteCollID] )
6200 ) A
6201 ) B
6202 WHERE
6203 B.[RowN] = 1
6204
6205GO
6206IF @@ERROR <> 0 SET NOEXEC ON
6207GO
6208PRINT N'Altering [cc].[vw__CCSection]'
6209GO
6210ALTER VIEW [cc].[vw__CCSection]
6211AS
6212 SELECT
6213 [SectionID]
6214 , [SectionCode]
6215 , [SectionName]
6216 , [SectionUID]
6217 , [SectionCollID]
6218 , [Source]
6219 , [ClientID]
6220 , [ClientUID]
6221 , [B].[AcctChart]
6222 FROM
6223 (
6224 SELECT
6225 [SectionID]
6226 , [SectionCode]
6227 , [SectionName]
6228 , [SectionUID]
6229 , [SectionCollID]
6230 , ROW_NUMBER() OVER ( PARTITION BY [ClientID], [SectionCode] ORDER BY [Source] DESC ) RowN
6231 , [Source]
6232 , [ClientID]
6233 , [ClientUID]
6234 , [A].[AcctChart]
6235 FROM
6236 (
6237 SELECT
6238 VS.[SectionID]
6239 , VS.[SectionCode]
6240 , VS.[SectionName]
6241 , VS.[SectionUID]
6242 , VS.[SectionCollID]
6243 , CASE WHEN VS.[SectionCollID] = VCC.[SectionCollID] THEN 3
6244 WHEN VS.[SectionCollID] = VCCG.[SectionCollID] THEN 2
6245 WHEN VS.[SectionCollID] = VCG.[SectionCollID] THEN 1
6246 ELSE 0
6247 END [Source]
6248 , VC.[ClientID]
6249 , VC.[ClientUID]
6250 , VS.[AcctChart]
6251 FROM
6252 [c].[tbl_ConfGlobal] AS VCG
6253 INNER JOIN [c].[tbl_ConfClientGrp] AS VCCG
6254 ON [VCCG].[ConfGlobalID] = [VCG].[ConfGlobalID]
6255 INNER JOIN [c].[tbl_ConfClient] AS VCC
6256 ON [VCC].[ConfClientGrpID] = [VCCG].[ConfClientGrpID]
6257 INNER JOIN [dbo].[tbl_Client] AS VC
6258 ON [VC].[ClientID] = [VCC].[ClientID]
6259 INNER JOIN [cc].[tbl_Section] AS VS
6260 ON VS.[SectionCollID] IN ( VCG.[SectionCollID],
6261 VCCG.[SectionCollID],
6262 VCC.[SectionCollID])
6263 ) A
6264 ) B
6265 --WHERE
6266 -- [RowN] = 1
6267GO
6268IF @@ERROR <> 0 SET NOEXEC ON
6269GO
6270PRINT N'Altering [trn].[usp_TranVariableExpression]'
6271GO
6272ALTER PROCEDURE [trn].[usp_TranVariableExpression]
6273 (
6274 @currentLoggedInID BIGINT
6275 , @payoutID BIGINT
6276 , @tranModuleProgressCollID BIGINT
6277 , @clientID BIGINT
6278 )
6279AS
6280 SET NOCOUNT ON
6281
6282 EXEC dbo.ufn_CreatePayoutNotification
6283 @currentLoggedInID
6284 , @payoutID
6285 , 18
6286 , N'Start Module'
6287 , 0
6288 , 1
6289 , @tranModuleProgressCollID
6290 , @clientID
6291
6292 DELETE FROM
6293 trn.tbl_TVariableExpression
6294 WHERE
6295 PayoutID = @payoutID
6296
6297 INSERT INTO trn.tbl_TVariableExpression
6298 (
6299 TVariableExpressionUID
6300 , PayoutID
6301 , VariableID
6302 , Expression
6303 , Val
6304 )
6305 SELECT
6306 NEWID() TVariableExpressionUID
6307 , P.PayoutID
6308 , VVE.VariableID
6309 , VVE.Expression
6310 , VVE.Val
6311 FROM
6312 cg.tbl_Variable AS TV
6313 CROSS APPLY (
6314 SELECT
6315 UVE.VariableID
6316 , UVE.Expression
6317 , UVE.Val
6318 FROM
6319 trn.ufn__VariableExpression(TV.VariableUID) AS UVE
6320 ) AS VVE
6321 INNER JOIN dbo.tbl_Payout AS P
6322 ON P.PayoutID = @payoutID
6323 INNER JOIN c.tbl_ConfClient AS TCC
6324 ON TCC.ClientID = P.ClientID
6325 INNER JOIN c.tbl_ConfEmpGrp AS VCEG
6326 ON VCEG.PymtModeID = P.PymtModeID
6327 AND VCEG.ConfClientID = TCC.ConfClientID
6328 INNER JOIN trn.tbl_TransactionInfo AS TTI
6329 ON TTI.PayoutID = P.PayoutID
6330 LEFT JOIN ceg.vw__CEGTaxTableBasis AS VCTTB
6331 ON VCTTB.ClientID = P.ClientID
6332 AND VCTTB.ConfEmpGrpID = VCEG.ConfEmpGrpID
6333 AND (
6334 ( VCTTB.FreqID = P.FreqID )
6335 OR (
6336 VCTTB.FreqID != P.FreqID
6337 AND VCTTB.IsEveryPayroll = 1
6338 )
6339 )
6340 AND VCTTB.VariableID = VVE.VariableID
6341 LEFT JOIN ceg.vw__CEGBonusBasis AS VCBB
6342 ON VCBB.ConfEmpGrpID = VCEG.ConfEmpGrpID
6343 LEFT JOIN ceg.tbl_BonusBasis AS VBB
6344 ON VBB.BonusBasisID = VCBB.BonusBasisID
6345 AND VBB.VariableID = VVE.VariableID
6346 --OUTER APPLY (
6347 -- SELECT
6348 -- IIF (EXISTS ( SELECT
6349 -- *
6350 -- FROM
6351 -- trn.tbl_TranRef AS TTR_temp
6352 -- WHERE
6353 -- TTR_temp.PayoutID = P.PayoutID
6354 -- AND TTR_temp.IsComputeFinalPay = 1
6355 -- GROUP BY
6356 -- TTR_temp.PayoutID ) , 1 , 0 ) HasComputeFinalPay
6357 -- ) AS TTR_ComputeFinalPay
6358 --OUTER APPLY (
6359 -- SELECT
6360 -- VCMDTB_temp.*
6361 -- FROM
6362 -- ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp
6363 -- LEFT JOIN ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp2
6364 -- ON VCMDTB_temp2.ConfEmpGrpID = VCMDTB_temp.ConfEmpGrpID
6365 -- AND VCMDTB_temp2.MandDedTableID = VCMDTB_temp.MandDedTableID
6366 -- AND (
6367 -- ( VCMDTB_temp2.FreqID = VCMDTB_temp.FreqID )
6368 -- OR (
6369 -- VCMDTB_temp2.FreqID != VCMDTB_temp.FreqID
6370 -- AND VCMDTB_temp2.IsEveryPayroll = 1
6371 -- )
6372 -- )
6373 -- AND VCMDTB_temp2.ForComputeFinalPay = 1
6374 -- WHERE
6375 -- VCMDTB_temp.ClientID = P.ClientID
6376 -- AND VCMDTB_temp.ConfEmpGrpID = VCEG.ConfEmpGrpID
6377 -- AND (
6378 -- ( VCMDTB_temp.FreqID = P.FreqID )
6379 -- OR (
6380 -- VCMDTB_temp.FreqID != P.FreqID
6381 -- AND VCMDTB_temp.IsEveryPayroll = 1
6382 -- )
6383 -- )
6384 -- AND (
6385 -- VCMDTB_temp2.MandDedTableBasisID IS NULL
6386 -- OR VCMDTB_temp.ForComputeFinalPay = TTR_ComputeFinalPay.HasComputeFinalPay
6387 -- )
6388 -- ) AS VCTTB
6389 OUTER APPLY (
6390 SELECT
6391 VCMDTB_temp.VariableID
6392 FROM
6393 ceg.vw__CEGMandDedTableBasis AS VCMDTB_temp
6394 INNER JOIN ccg.tbl_MandDedTable AS TMDT_temp
6395 ON TMDT_temp.MandDedTableID = VCMDTB_temp.MandDedTableID
6396 CROSS APPLY (
6397 SELECT
6398 TMDT_yearBasisTemp.StatutoryTableKeyID
6399 , MAX(TMDT_yearBasisTemp.YearValidity) YearValidity
6400 , VCMDTB_yearBasisTemp.ForComputeFinalPay
6401 FROM
6402 ceg.vw__CEGMandDedTableBasis AS VCMDTB_yearBasisTemp
6403 INNER JOIN ccg.tbl_MandDedTable AS TMDT_yearBasisTemp
6404 ON TMDT_yearBasisTemp.MandDedTableID = VCMDTB_yearBasisTemp.MandDedTableID
6405 WHERE
6406 VCMDTB_yearBasisTemp.ConfEmpGrpID = VCMDTB_temp.ConfEmpGrpID
6407 AND (
6408 ( VCMDTB_yearBasisTemp.FreqID = VCMDTB_temp.FreqID )
6409 OR (
6410 VCMDTB_yearBasisTemp.FreqID != VCMDTB_temp.FreqID
6411 AND VCMDTB_yearBasisTemp.IsEveryPayroll = 1
6412 )
6413 )
6414 AND TMDT_yearBasisTemp.YearValidity <= P.Year
6415 GROUP BY
6416 TMDT_yearBasisTemp.StatutoryTableKeyID
6417 , VCMDTB_yearBasisTemp.ForComputeFinalPay
6418 ) VCMDTB_yearBasis
6419 WHERE
6420 VCMDTB_temp.ConfEmpGrpID = VCEG.ConfEmpGrpID
6421 AND VCMDTB_temp.ClientID = P.ClientID
6422 AND (
6423 ( VCMDTB_temp.FreqID = P.FreqID )
6424 OR (
6425 VCMDTB_temp.FreqID != P.FreqID
6426 AND VCMDTB_temp.IsEveryPayroll = 1
6427 )
6428 )
6429 --AND (
6430 -- VCMDTB.ForComputeFinalPay = 0
6431 -- OR VCMDTB.ForComputeFinalPay = TTR_ComputeFinalPay.HasComputeFinalPay
6432 -- )
6433 --Year validity
6434 AND (
6435 TMDT_temp.StatutoryTableKeyID = VCMDTB_yearBasis.StatutoryTableKeyID
6436 AND TMDT_temp.YearValidity = VCMDTB_yearBasis.YearValidity
6437 AND VCMDTB_temp.ForComputeFinalPay = VCMDTB_yearBasis.ForComputeFinalPay
6438 )
6439 AND VCMDTB_temp.VariableID = VVE.VariableID
6440 ) AS VCMDTB
6441 WHERE
6442 VCTTB.VariableID IS NOT NULL
6443 OR VBB.VariableID IS NOT NULL
6444 OR VCMDTB.VariableID IS NOT NULL
6445 GROUP BY
6446 P.PayoutID
6447 , VVE.VariableID
6448 , VVE.Expression
6449 , VVE.Val
6450
6451 DECLARE @rowCount INT = @@ROWCOUNT
6452 IF @rowCount = 0
6453 RAISERROR (N'No record created on tbl_TVariableExpression', 15, -1 );
6454
6455 EXEC dbo.ufn_CreatePayoutNotification
6456 @currentLoggedInID
6457 , @payoutID
6458 , 18
6459 , N'End Module'
6460 , @rowCount
6461 , 1
6462 , @tranModuleProgressCollID
6463 , @clientID
6464GO
6465IF @@ERROR <> 0 SET NOEXEC ON
6466GO
6467PRINT N'Altering [tst].[usp_FTBasicPayDetails_Init]'
6468GO
6469ALTER PROCEDURE [tst].[usp_FTBasicPayDetails_Init]
6470 (
6471 @currentLoggedInID BIGINT
6472 , @payoutID BIGINT
6473 , @tBasicPay trn.[tBasicPayTable] READONLY
6474 , @tranModuleProgressCollID BIGINT
6475 , @clientID BIGINT
6476 )
6477AS
6478 SET NOCOUNT ON
6479 EXEC dbo.ufn_CreatePayoutNotification
6480 @currentLoggedInID
6481 , @payoutID
6482 , 6
6483 , N'Start Module'
6484 , 0
6485 , 1
6486 , @tranModuleProgressCollID
6487 , @clientID
6488
6489 INSERT INTO trn.tbl_FTBasicPayDetails
6490 (
6491 FTBasicPayDetailsUID
6492 , TranMainID
6493 , PreviousBasicPayID
6494 , PreviousBasicPay_Amount
6495 , PreviousBasicPay_Daily
6496 , PreviousBasicPay_Hourly
6497 , PreviousBasicPay_Monthly
6498 , PreviousBasicPay_EffectiveDate
6499 , PreviousBasicPay_EffectiveMonth
6500 , PreviousBasicPay_EffectiveYear
6501 , PreviousBasicPay_PayType
6502 , PreviousBasicPay_FreqName
6503 , PreviousBasicPay_FreqOrder
6504 , PreviousBasicPay_Remarks
6505 , CurrentBasicPayID
6506 , CurrentBasicPay_Amount
6507 , CurrentBasicPay_Daily
6508 , CurrentBasicPay_Hourly
6509 , CurrentBasicPay_Monthly
6510 , CurrentBasicPay_EffectiveDate
6511 , CurrentBasicPay_EffectiveMonth
6512 , CurrentBasicPay_EffectiveYear
6513 , CurrentBasicPay_PayType
6514 , CurrentBasicPay_IsMinimumWage
6515 , CurrentBasicPay_FreqName
6516 , CurrentBasicPay_FreqOrder
6517 , CurrentBasicPay_Remarks
6518 , NumHours
6519 , NumDays
6520 )
6521 SELECT
6522 NEWID() FTBasicPayDetailsUID
6523 , TTM.TranMainID
6524 , TTBP.PrevBasicPayID
6525 , TTBP.PrevBasicPay PreviousBasicPay_Amount
6526 , TTBP.PrevDaily PreviousBasicPay_Daily
6527 , TTBP.PrevHourly PreviousBasicPay_Hourly
6528 , TTBP.PrevMonthly PreviousBasicPay_Monthly
6529 , VBP_prev.EffectiveDate PreviousBasicPay_EffectiveDate
6530 , VBP_prev.EffectiveMonth PreviousBasicPay_EffectiveMonth
6531 , VBP_prev.EffectiveYear PreviousBasicPay_EffectiveYear
6532 , TTBP.PrevPayType PreviousBasicPay_PayType
6533 , TF_prev.FreqName PreviousBasicPay_FreqName
6534 , TF_prev.FreqOrder PreviousBasicPay_FreqOrder
6535 , VBP_prev.Remarks PreviousBasicPay_Remarks
6536 , TTBP.CurBasicPayID
6537 ,
6538 --CASE WHEN TTR.IsZeroBasicPay = 1 THEN 0
6539 -- ELSE VBP2.Amount
6540 --END
6541 TTBP.CurBasicPay CurrentBasicPay_Amount
6542 , TTBP.CurDaily CurrentBasicPay_Daily
6543 , TTBP.CurHourly CurrentBasicPay_Hourly
6544 , TTBP.CurMonthly CurrentBasicPay_Monthly
6545 , VBP_cur.EffectiveDate CurrentBasicPay_EffectiveDate
6546 , VBP_cur.EffectiveMonth CurrentBasicPay_EffectiveMonth
6547 , VBP_cur.EffectiveYear CurrentBasicPay_EffectiveYear
6548 , TTBP.CurPayType CurrentBasicPay_PayType
6549 , TTBP.CurIsMinimumWage CurrentBasicPay_IsMinimumWage
6550 , TF_cur.FreqName CurrentBasicPay_FreqName
6551 , TF_cur.FreqOrder CurrentBasicPay_FreqOrder
6552 , VBP_cur.Remarks CurrentBasicPay_Remarks
6553 , TTBP.EditedNumHours NumHours
6554 , TTBP.EditedNumDays NumDays
6555 FROM
6556 trn.tbl_TranMain AS TTM
6557 INNER JOIN trn.tbl_TranRef AS TTR
6558 ON TTR.TranRefID = TTM.TranRefID
6559 --INNER JOIN trn.tbl_TBasicPay AS TTBP ON TTBP.TranRefID = TTM.TranRefID
6560 INNER JOIN @tBasicPay AS TTBP
6561 ON TTBP.TranRefID = TTM.TranRefID
6562 INNER JOIN ce.tbl_BasicPay AS VBP_prev
6563 ON VBP_prev.BasicPayID = TTBP.PrevBasicPayID
6564 INNER JOIN dbo.tbl_Freq AS TF_prev
6565 ON TF_prev.FreqID = VBP_prev.PeriodStartID
6566 INNER JOIN ce.tbl_BasicPay AS VBP_cur
6567 ON VBP_cur.BasicPayID = TTBP.CurBasicPayID
6568 INNER JOIN dbo.tbl_Freq AS TF_cur
6569 ON TF_cur.FreqID = VBP_cur.PeriodStartID
6570 WHERE
6571 TTM.PayoutID = @payoutID
6572 AND TTM.TranRefID NOT IN ( SELECT
6573 TranRefID
6574 FROM
6575 trn.tbl_TranMain AS TTM2
6576 INNER JOIN trn.tbl_FTBasicPayDetails AS TFTBPD
6577 ON TFTBPD.TranMainID = TTM2.TranMainID
6578 WHERE
6579 PayoutID = @payoutID )
6580
6581 DECLARE @rowCount INT = @@ROWCOUNT
6582
6583 IF @rowCount = 0
6584 RAISERROR (N'No record created on tbl_FTBasicPayDetails', 15, -1 );
6585
6586 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_FTBasicPayDetails')
6587
6588
6589
6590
6591 EXEC dbo.ufn_CreatePayoutNotification
6592 @currentLoggedInID
6593 , @payoutID
6594 , 6
6595 , N'End Module'
6596 , @rowCount
6597 , 1
6598 , @tranModuleProgressCollID
6599 , @clientID
6600
6601
6602
6603
6604
6605
6606
6607
6608GO
6609IF @@ERROR <> 0 SET NOEXEC ON
6610GO
6611PRINT N'Altering [trn].[usp_CreateFinalTransaction]'
6612GO
6613ALTER PROCEDURE [trn].[usp_CreateFinalTransaction]
6614 (
6615 @currentLoggedInUID UNIQUEIDENTIFIER,
6616 @payoutUID UNIQUEIDENTIFIER,
6617 @tranModuleProgressCollID BIGINT -- NULL:Generate TranModuleProgressCollID
6618
6619 )
6620AS
6621 BEGIN
6622 SET NOCOUNT ON;
6623
6624 DECLARE @payoutID BIGINT;
6625 DECLARE @currentLoggedInID BIGINT;
6626 DECLARE @clientID BIGINT;
6627
6628
6629 SELECT
6630 @payoutID = PayoutID,
6631 @currentLoggedInID = E.EmpID,
6632 @clientID = P.ClientID
6633 FROM
6634 dbo.tbl_Payout AS P
6635 INNER JOIN
6636 dbo.tbl_Emp AS E
6637 ON E.EmpUID = @currentLoggedInUID
6638 WHERE
6639 PayoutUID = @payoutUID;
6640
6641
6642 --delete tran module progress
6643 --BEGIN TRAN
6644 --DELETE
6645 -- TMP2
6646 --FROM
6647 -- trn.tbl_TranModuleProgress AS TMP2
6648 -- INNER JOIN dbo.tbl_Payout AS P
6649 -- ON P.PayoutID = TMP2.PID
6650 --WHERE
6651 -- PayoutUID = @payoutUID
6652 --COMMIT
6653
6654 --DECLARE @tranModuleProgressCollID BIGINT
6655 IF @tranModuleProgressCollID IS NULL
6656 BEGIN
6657 INSERT INTO trn.tbl_TranModuleProgressColl
6658 (
6659 PayoutID,
6660 TransactionMethodType,
6661 CreatedOn,
6662 CreatedByID
6663 )
6664 VALUES
6665 (
6666 @payoutID, 2, --Draft
6667 -- PayoutID - bigint
6668 GETDATE(),
6669 -- CreatedOn - datetime
6670 @currentLoggedInID -- CreatedByID - bigint
6671 );
6672 SET @tranModuleProgressCollID = SCOPE_IDENTITY();
6673 END;
6674
6675 DECLARE @isSuccess BIT = 0;
6676 DECLARE @err NVARCHAR(MAX);
6677
6678 EXEC dbo.ufn_CreatePayoutNotification
6679 @currentLoggedInID,
6680 @payoutID,
6681 1,
6682 N'Post Transaction Initialized',
6683 0,
6684 1,
6685 @tranModuleProgressCollID,
6686 @clientID;
6687
6688
6689 EXEC dbo.ufn_CreatePayoutNotification
6690 @currentLoggedInID,
6691 @payoutID,
6692 1,
6693 N'Checking if payout is locked',
6694 0,
6695 0,
6696 @tranModuleProgressCollID,
6697 @clientID;
6698 IF EXISTS
6699 (
6700 SELECT
6701 1
6702 FROM
6703 dbo.tbl_Payout AS VP
6704 WHERE
6705 PayoutUID = @payoutUID
6706 AND IsLocked = 1
6707 )
6708 BEGIN
6709 EXEC dbo.ufn_CreatePayoutNotification
6710 @currentLoggedInID,
6711 @payoutID,
6712 15,
6713 N'Payout is locked',
6714 0,
6715 1,
6716 @tranModuleProgressCollID,
6717 @clientID;
6718
6719 SELECT
6720 @isSuccess;
6721 RETURN;
6722 END;
6723
6724
6725 EXEC dbo.ufn_CreatePayoutNotification
6726 @currentLoggedInID,
6727 @payoutID,
6728 1,
6729 N'Update payout lock',
6730 0,
6731 0,
6732 @tranModuleProgressCollID,
6733 @clientID;
6734 UPDATE
6735 dbo.tbl_Payout
6736 SET
6737 IsLocked = 1
6738 WHERE
6739 PayoutUID = @payoutUID;
6740 EXEC dbo.ufn_CreatePayoutNotification
6741 @currentLoggedInID,
6742 @payoutID,
6743 1,
6744 N'Payout Locked',
6745 0,
6746 0,
6747 @tranModuleProgressCollID,
6748 @clientID;
6749
6750
6751
6752 EXEC dbo.ufn_CreatePayoutNotification
6753 @currentLoggedInID,
6754 @payoutID,
6755 1,
6756 N'Checking if payout status is queuing',
6757 --, N'Checking if payout status is open'
6758 0,
6759 0,
6760 @tranModuleProgressCollID,
6761 @clientID;
6762 IF EXISTS
6763 (
6764 SELECT
6765 1
6766 FROM
6767 dbo.tbl_Payout AS VP
6768 WHERE
6769 PayoutUID = @payoutUID
6770 AND Status != 1
6771 )
6772 BEGIN
6773 EXEC dbo.ufn_CreatePayoutNotification
6774 @currentLoggedInID,
6775 @payoutID,
6776 15,
6777 N'Payout status is not queuing',
6778 0,
6779 1,
6780 @tranModuleProgressCollID,
6781 @clientID;
6782
6783 SELECT
6784 @isSuccess;
6785 RETURN;
6786 END;
6787
6788
6789
6790 EXEC dbo.ufn_CreatePayoutNotification
6791 @currentLoggedInID,
6792 @payoutID,
6793 1,
6794 N'Update payout status',
6795 0,
6796 0,
6797 @tranModuleProgressCollID,
6798 @clientID;
6799 UPDATE
6800 dbo.tbl_Payout
6801 SET
6802 Status = 2 -- Processing
6803 WHERE
6804 PayoutID = @payoutID;
6805
6806 EXEC dbo.ufn_CreatePayoutNotification
6807 @currentLoggedInID,
6808 @payoutID,
6809 1,
6810 N'Setting payout to "Processing status"',
6811 0,
6812 0,
6813 @tranModuleProgressCollID,
6814 @clientID;
6815
6816
6817
6818 EXEC dbo.ufn_CreatePayoutNotification
6819 @currentLoggedInID,
6820 @payoutID,
6821 2,
6822 N'Begin Post Transaction',
6823 0,
6824 0,
6825 @tranModuleProgressCollID,
6826 @clientID;
6827
6828 DECLARE @payoutIsUsed BIT;
6829
6830 ---------------------------------
6831 --- Parameters Validation -------
6832 ---------------------------------
6833 BEGIN TRY
6834 IF @currentLoggedInUID IS NULL
6835 BEGIN
6836 RAISERROR(N'Current Logged in is required', 15, -1);
6837 END;
6838
6839 IF @payoutUID IS NULL
6840 BEGIN
6841 RAISERROR(N'Payout is required', 15, -1);
6842 END;
6843
6844
6845 EXEC dbo.ufn_CreatePayoutNotification
6846 @currentLoggedInID,
6847 @payoutID,
6848 1,
6849 N'Checking Payout Object',
6850 0,
6851 0,
6852 @tranModuleProgressCollID,
6853 @clientID;
6854
6855 IF @payoutID IS NULL
6856 BEGIN
6857 RAISERROR(N'Payout Not Found', 15, -1);
6858 END;
6859
6860 EXEC dbo.ufn_CreatePayoutNotification
6861 @currentLoggedInID,
6862 @payoutID,
6863 1,
6864 N'Checking Payout if not used',
6865 0,
6866 0,
6867 @tranModuleProgressCollID,
6868 @clientID;
6869
6870 SELECT
6871 @payoutIsUsed =
6872 (
6873 SELECT DISTINCT
6874 1
6875 FROM
6876 dbo.tbl_Payout AS P
6877 INNER JOIN
6878 trn.tbl_TranRef AS TR
6879 ON TR.PayoutID = P.PayoutID
6880 WHERE
6881 P.PayoutID = @payoutID
6882 );
6883 IF @payoutIsUsed IS NULL
6884 BEGIN
6885 RAISERROR(N'Payout has no transaction', 15, -1);
6886 END;
6887
6888 EXEC dbo.ufn_CreatePayoutNotification
6889 @currentLoggedInID,
6890 @payoutID,
6891 1,
6892 N'Checking Current Logged in Object',
6893 0,
6894 0,
6895 @tranModuleProgressCollID,
6896 @clientID;
6897
6898 IF @currentLoggedInID IS NULL
6899 BEGIN
6900 RAISERROR(N'Current Logged in user not found', 15, -1);
6901 END;
6902 END TRY
6903 BEGIN CATCH
6904
6905 SET @err = 'Error: ' + REPLACE(ERROR_MESSAGE(), '''', '"');
6906
6907 --RAISERROR (@err, 15, -1 );
6908
6909 EXEC dbo.ufn_CreatePayoutNotification
6910 @currentLoggedInID,
6911 @payoutID,
6912 15,
6913 @err,
6914 0,
6915 1,
6916 @tranModuleProgressCollID,
6917 @clientID;
6918
6919 UPDATE
6920 dbo.tbl_Payout
6921 SET
6922 IsLocked = 0,
6923 Status = 3
6924 WHERE
6925 PayoutUID = @payoutUID;
6926
6927 SELECT
6928 @isSuccess;
6929 RETURN;
6930 END CATCH;
6931 ---------------------------------
6932 --- Parameters Validation -------
6933 ---------------------------------
6934
6935
6936 BEGIN TRAN;
6937 BEGIN TRY
6938 -----------------------------------------
6939 --- Initialize Transaction Procedures ---
6940 -----------------------------------------
6941 EXEC dbo.ufn_CreatePayoutNotification
6942 @currentLoggedInID,
6943 @payoutID,
6944 2,
6945 N'Initializing Post Transaction Procedures',
6946 0,
6947 0,
6948 @tranModuleProgressCollID,
6949 @clientID;
6950
6951 --------------------------------------------------------------------------------------------------
6952 -------START-----------------NEW TRANSACTION------------------------------------------------------
6953 --------------------------------------------------------------------------------------------------
6954
6955 DECLARE @t1 DATETIME;
6956 DECLARE @diff AS BIGINT;
6957 DECLARE @rowC AS BIGINT;
6958
6959 BEGIN -- @Payout
6960 SET @t1 = GETDATE();
6961 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
6962 @currentLoggedInID,
6963 @payoutID,
6964 2,
6965 N'Payout - Start Module',
6966 0,
6967 @t1,
6968 0,
6969 @tranModuleProgressCollID,
6970 @clientID;
6971 DECLARE @payoutTbl trn.PayoutTable;
6972 INSERT INTO @payoutTbl
6973 SELECT
6974 [PayoutID],
6975 [PayoutUID],
6976 [ClientID],
6977 [PymtModeID],
6978 [FreqID],
6979 [Month],
6980 [Year],
6981 [Status],
6982 [PayoutType],
6983 utl.ufn_GetDateByFreq([Year], [Month], [FreqID], 0) [PayoutFreqDateStart],
6984 utl.ufn_GetDateByFreq([Year], [Month], [FreqID], 1) [PayoutFreqDateEnd],
6985 PayDate,
6986 CutOffStart,
6987 CutOffEnd,
6988 PeriodStart,
6989 PeriodEnd,
6990 ComputeAnnualize
6991 FROM
6992 dbo.tbl_Payout AS TP
6993 WHERE
6994 TP.PayoutID = @payoutID;
6995
6996 SET @rowC = @@ROWCOUNT;
6997 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
6998 EXEC tst.PrintLog
6999 'Payout',
7000 @rowC,
7001 @diff;
7002 SET @t1 = GETDATE();
7003 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7004 @currentLoggedInID,
7005 @payoutID,
7006 2,
7007 N'Payout - End Module',
7008 @rowC,
7009 @t1,
7010 0,
7011 @tranModuleProgressCollID,
7012 @clientID;
7013 END;
7014
7015 BEGIN -- @TranRef
7016 SET @t1 = GETDATE();
7017 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7018 @currentLoggedInID,
7019 @payoutID,
7020 2,
7021 N'TranRef - Start Module',
7022 0,
7023 @t1,
7024 0,
7025 @tranModuleProgressCollID,
7026 @clientID;
7027 DECLARE @tranRefIDs trn.TranRefIDTable;
7028 INSERT INTO @tranRefIDs
7029 SELECT
7030 TranRefID
7031 FROM
7032 trn.tbl_TranRef AS TTR
7033 INNER JOIN
7034 @payoutTbl AS PT
7035 ON TTR.PayoutID = PT.PayoutID;
7036
7037 SET @rowC = @@ROWCOUNT;
7038 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7039 EXEC tst.PrintLog
7040 'TranRef',
7041 @rowC,
7042 @diff;
7043 SET @t1 = GETDATE();
7044 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7045 @currentLoggedInID,
7046 @payoutID,
7047 2,
7048 N'TranRef - End Module',
7049 @rowC,
7050 @t1,
7051 0,
7052 @tranModuleProgressCollID,
7053 @clientID;
7054 END;
7055
7056 BEGIN -- @RemainingPayoutInAYear
7057 SET @t1 = GETDATE();
7058 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7059 @currentLoggedInID,
7060 @payoutID,
7061 2,
7062 N'RemainingPayoutInAYear - Start Module',
7063 0,
7064 @t1,
7065 0,
7066 @tranModuleProgressCollID,
7067 @clientID;
7068 DECLARE @RemainingPayoutInAYearTbl trn.RemainingPayoutInAYear;
7069 INSERT INTO @RemainingPayoutInAYearTbl
7070 SELECT
7071 VP.[PayoutID],
7072 VP.[ClientID],
7073 VP.[PymtModeID],
7074 VP.[FreqID],
7075 VP.[Month],
7076 VP.[Year],
7077 VP.[PayoutType],
7078 VP.[CutOffStart],
7079 VP.[CutOffEnd],
7080 utl.ufn_GetDateByFreq(VP.[Year], VP.[Month], VP.[FreqID], 0) [PayoutFreqDateStart],
7081 utl.ufn_GetDateByFreq(VP.[Year], VP.[Month], VP.[FreqID], 1) [PayoutFreqDateEnd],
7082 VP.[PayDate]
7083 FROM
7084 dbo.tbl_Payout AS VP
7085 INNER JOIN
7086 @payoutTbl AS PT
7087 ON VP.ClientID = PT.ClientID
7088 AND VP.Year = PT.Year
7089 AND VP.PymtModeID = PT.PymtModeID
7090 AND VP.PayDate > PT.PayDate
7091 AND VP.PayoutType = 1
7092 ORDER BY
7093 VP.Year,
7094 VP.Month,
7095 VP.PayDate;
7096
7097 SET @rowC = @@ROWCOUNT;
7098 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7099 EXEC tst.PrintLog
7100 'RemainingPayoutInAYear',
7101 @rowC,
7102 @diff;
7103 SET @t1 = GETDATE();
7104 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7105 @currentLoggedInID,
7106 @payoutID,
7107 2,
7108 N'RemainingPayoutInAYear - End Module',
7109 @rowC,
7110 @t1,
7111 0,
7112 @tranModuleProgressCollID,
7113 @clientID;
7114 END;
7115
7116 BEGIN -- @ActualAndRemainingEmpEarn
7117 SET @t1 = GETDATE();
7118 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7119 @currentLoggedInID,
7120 @payoutID,
7121 2,
7122 N'ActualAndRemainingEmpEarn - Start Module',
7123 0,
7124 @t1,
7125 0,
7126 @tranModuleProgressCollID,
7127 @clientID;
7128 DECLARE @ActualAndRemainingEmpEarnTbl trn.[ActualAndRemainingEmpEarn];
7129 INSERT INTO @ActualAndRemainingEmpEarnTbl
7130 SELECT
7131 ClientEmpID,
7132 PayoutID,
7133 Month,
7134 Year,
7135 Amount,
7136 CategoryID,
7137 EmpEarnID,
7138 EarnID,
7139 FreqID,
7140 FreqIsEveryPayroll
7141 FROM
7142 tst.ufn__EmpEarn_ActualAndRemainingInAPayout(
7143 @payoutTbl, @tranRefIDs,
7144 @RemainingPayoutInAYearTbl
7145 ) AS UEEAARIAP;
7146
7147 SET @rowC = @@ROWCOUNT;
7148 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7149 EXEC tst.PrintLog
7150 'ActualAndRemainingEmpEarn',
7151 @rowC,
7152 @diff;
7153 SET @t1 = GETDATE();
7154 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7155 @currentLoggedInID,
7156 @payoutID,
7157 2,
7158 N'ActualAndRemainingEmpEarn - End Module',
7159 @rowC,
7160 @t1,
7161 0,
7162 @tranModuleProgressCollID,
7163 @clientID;
7164 END;
7165
7166 BEGIN -- @EmpEarnBasicPayPart
7167 SET @t1 = GETDATE();
7168 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7169 @currentLoggedInID,
7170 @payoutID,
7171 2,
7172 N'EmpEarnBasicPayPart - Start Module',
7173 0,
7174 @t1,
7175 0,
7176 @tranModuleProgressCollID,
7177 @clientID;
7178 DECLARE @tEmpEarnBasicPayPart trn.EmpEarnBasicPayPartTable;
7179 INSERT INTO @tEmpEarnBasicPayPart
7180 SELECT
7181 TranRefID,
7182 TranRefUID,
7183 BasicPayAmount,
7184 MonthlyRate,
7185 DailyRate,
7186 HourlyRate
7187 FROM
7188 tst.ufn__EmpEarnBasicPayPart(@payoutTbl, @tranRefIDs, @ActualAndRemainingEmpEarnTbl) AS UEEBPP;
7189
7190 SET @rowC = @@ROWCOUNT;
7191 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7192 EXEC tst.PrintLog
7193 'EmpEarnBasicPayPart',
7194 @rowC,
7195 @diff;
7196 SET @t1 = GETDATE();
7197 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7198 @currentLoggedInID,
7199 @payoutID,
7200 2,
7201 N'EmpEarnBasicPayPart - End Module',
7202 @rowC,
7203 @t1,
7204 0,
7205 @tranModuleProgressCollID,
7206 @clientID;
7207 END;
7208
7209 BEGIN -- @PreviousSumTranMainByMonth
7210 SET @t1 = GETDATE();
7211 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7212 @currentLoggedInID,
7213 @payoutID,
7214 2,
7215 N'PreviousSumTranMainByMonth - Start Module',
7216 0,
7217 @t1,
7218 0,
7219 @tranModuleProgressCollID,
7220 @clientID;
7221 DECLARE @PreviousSumTranMainByMonth trn.[PreviousSumTranMainByMonthTable];
7222 INSERT INTO @PreviousSumTranMainByMonth
7223 SELECT
7224 TranRefID,
7225 Year,
7226 Month,
7227 MPayoutRegCount,
7228 MTotalPreviousBasicPay,
7229 MTotalPreviousGrossTaxableIncome,
7230 MTotalPreviousTotalNonTaxableIncome,
7231 MTotalPreviousGrossTaxableIncomeWithoutMininimumWage,
7232 MTotalPreviousCompanyDeduction,
7233 MTotalPreviousAdditionalAllowableDeduction,
7234 MTotalPreviousCompanyLoan,
7235 MTotalPreviousDaily,
7236 MTotalPreviousHourly,
7237 MTotalPreviousMonthly,
7238 MTotalPreviousCurBasicPay,
7239 MTotalPreviousGovernmentLoan,
7240 MTotalPreviousNonTaxableBonus,
7241 MTotalPreviousOtherNonTaxableIncome,
7242 MTotalPreviousOtherTaxableIncome,
7243 MTotalPreviousOvertime,
7244 MTotalPreviousStatutoryDeduction,
7245 MTotalPreviousFormulatedStatutoryDeduction,
7246 MTotalPreviousTaxableBonus,
7247 MTotalPreviousTotalTaxableEarnings,
7248 MTotalPreviousTotalTaxableComputedEarnings,
7249 MTotalPreviousTotalTaxablePartOfBasicEarnings,
7250 MTotalPreviousTotalNonTaxableEarnings,
7251 MTotalPreviousTotalNonTaxableComputedEarnings,
7252 MTotalPreviousTotalNonTaxableReceivableEarnings,
7253 MTotalPreviousTotalNonTaxableReceivablePartOfBasicEarnings,
7254 MTotalPreviousTotalNonTaxableDeminimisEarnings,
7255 MTotalPreviousTotalNonTaxableDeminimisPartOfBasicEarnings,
7256 MTotalPreviousTotalAllowanceEarnings,
7257 MTotalPreviousTotalBasicPayAdjEarnings,
7258 MTotalPreviousTotalPartOfBasicPayEarnings,
7259 MTotalPreviousWitholdingTax
7260 FROM
7261 trn.ufn__PreviousSumTranMainByMonth(@payoutTbl, @tranRefIDs) AS UPSTMBM;
7262
7263 SET @rowC = @@ROWCOUNT;
7264 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7265 EXEC tst.PrintLog
7266 'PreviousSumTranMainByMonth',
7267 @rowC,
7268 @diff;
7269 SET @t1 = GETDATE();
7270 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7271 @currentLoggedInID,
7272 @payoutID,
7273 2,
7274 N'PreviousSumTranMainByMonth - End Module',
7275 @rowC,
7276 @t1,
7277 0,
7278 @tranModuleProgressCollID,
7279 @clientID;
7280 END;
7281
7282 BEGIN -- @tBasicPay
7283 SET @t1 = GETDATE();
7284 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7285 @currentLoggedInID,
7286 @payoutID,
7287 6,
7288 N'tBasicPay - Start Module',
7289 0,
7290 @t1,
7291 0,
7292 @tranModuleProgressCollID,
7293 @clientID;
7294 DECLARE @tBasicPay trn.[tBasicPayTable];
7295 INSERT INTO @tBasicPay
7296 SELECT
7297 TranRefID,
7298 EditedNumHours,
7299 EditedNumDays,
7300 CurBasicPayUID,
7301 CurBasicPayID,
7302 CurPayType,
7303 CurIsMinimumWage,
7304 CurHourly,
7305 CurDaily,
7306 CurMonthly,
7307 CurBasicPay,
7308 BasicPay,
7309 PrevBasicPayUID,
7310 PrevBasicPayID,
7311 PrevPayType,
7312 PrevIsMinimumWage,
7313 PrevHourly,
7314 PrevDaily,
7315 PrevMonthly,
7316 PrevBasicPay
7317 FROM
7318 tst.ufn__BasicPay(@payoutTbl, @tranRefIDs, @tEmpEarnBasicPayPart) AS UBP;
7319
7320 SET @rowC = @@ROWCOUNT;
7321 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7322 EXEC tst.PrintLog
7323 'tBasicPay',
7324 @rowC,
7325 @diff;
7326 SET @t1 = GETDATE();
7327 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7328 @currentLoggedInID,
7329 @payoutID,
7330 6,
7331 N'tBasicPay - End Module',
7332 @rowC,
7333 @t1,
7334 0,
7335 @tranModuleProgressCollID,
7336 @clientID;
7337 END;
7338
7339
7340 BEGIN -- @tEarn
7341 SET @t1 = GETDATE();
7342 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7343 @currentLoggedInID,
7344 @payoutID,
7345 7,
7346 N'tEarn - Start Module',
7347 0,
7348 @t1,
7349 0,
7350 @tranModuleProgressCollID,
7351 @clientID;
7352 DECLARE @tEarn trn.[tEarnTable];
7353 INSERT INTO @tEarn
7354 SELECT
7355 TranRefID,
7356 TranRefUID,
7357 PayoutID,
7358 PayoutUID,
7359 ClientEmpID,
7360 ClientEmpCode,
7361 ClientEmpUID,
7362 TEarnUID,
7363 TEarnID,
7364 EmpEarnID,
7365 BatchID,
7366 OrigEntryTS,
7367 EarnID,
7368 EarnUID,
7369 EarnCode,
7370 EarnName,
7371 EarnTypeID,
7372 AbsentAdjustmentEarnID,
7373 IsBasicPayPart,
7374 IsComputed,
7375 IsComputedBy,
7376 IsDeMinimis,
7377 IsReceivable,
7378 IsTaxable,
7379 IsNegativeComputation,
7380 CategoryID,
7381 OriginalNumOfHours,
7382 EditedNumOfHours,
7383 OriginalNumOfDays,
7384 EditedNumOfDays,
7385 Amount,
7386 Dailyrate
7387 FROM
7388 tst.ufn__TEarnDetails(@payoutTbl, @tranRefIDs, @tBasicPay) AS UTED;
7389
7390 SET @rowC = @@ROWCOUNT;
7391 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7392 EXEC tst.PrintLog
7393 'tEarn',
7394 @rowC,
7395 @diff;
7396 SET @t1 = GETDATE();
7397 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7398 @currentLoggedInID,
7399 @payoutID,
7400 7,
7401 N'tEarn - End Module',
7402 @rowC,
7403 @t1,
7404 0,
7405 @tranModuleProgressCollID,
7406 @clientID;
7407 END;
7408
7409
7410 BEGIN -- @tOvertime
7411 SET @t1 = GETDATE();
7412 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7413 @currentLoggedInID,
7414 @payoutID,
7415 16,
7416 N'tOvertime - Start Module',
7417 0,
7418 @t1,
7419 0,
7420 @tranModuleProgressCollID,
7421 @clientID;
7422 DECLARE @tOvertime trn.[tOvertimeTable];
7423 INSERT INTO @tOvertime
7424 SELECT
7425 TranRefID,
7426 TranRefUID,
7427 PayoutID,
7428 PayoutUID,
7429 ClientEmpID,
7430 ClientEmpUID,
7431 TOvertimeID,
7432 TOvertimeUID,
7433 OriginalRate,
7434 EditedRate,
7435 OriginalNumOfHours,
7436 EditedNumOfHours,
7437 OriginalNumOfDays,
7438 EditedNumOfDays,
7439 BatchID,
7440 ModifiedOn,
7441 ModifiedByID,
7442 OTRateID,
7443 OTRateUID,
7444 OTRateBasis,
7445 OTRateCode,
7446 OTRateCollID,
7447 OTRateName,
7448 OTRateTypeID,
7449 OTRateTypeName,
7450 OTRateTypeUID,
7451 CurBasicPayUID,
7452 CurHourly,
7453 CurDaily,
7454 CurMonthly,
7455 PrevBasicPayUID,
7456 PrevHourly,
7457 PrevDaily,
7458 PrevMonthly,
7459 OverrideAmount,
7460 Amount
7461 FROM
7462 tst.ufn__TOvertimeDetails(@payoutTbl, @tranRefIDs, @tBasicPay) AS UTOD;
7463
7464 SET @rowC = @@ROWCOUNT;
7465 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7466 EXEC tst.PrintLog
7467 'tOvertime',
7468 @rowC,
7469 @diff;
7470 SET @t1 = GETDATE();
7471 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7472 @currentLoggedInID,
7473 @payoutID,
7474 16,
7475 N'tOvertime - End Module',
7476 @rowC,
7477 @t1,
7478 0,
7479 @tranModuleProgressCollID,
7480 @clientID;
7481 END;
7482
7483
7484 BEGIN -- @tBonus
7485 SET @t1 = GETDATE();
7486 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7487 @currentLoggedInID,
7488 @payoutID,
7489 10,
7490 N'tBonus - Start Module',
7491 0,
7492 @t1,
7493 0,
7494 @tranModuleProgressCollID,
7495 @clientID;
7496 DECLARE @tBonus trn.[tBonusTable];
7497 INSERT INTO @tBonus
7498 SELECT
7499 TranRefID,
7500 TranRefUID,
7501 PayoutID,
7502 PayoutUID,
7503 ClientEmpID,
7504 ClientEmpUID,
7505 ClientEmpCode,
7506 TBonusID,
7507 TBonusUID,
7508 TaxableAmount,
7509 ToBeComputeNonTaxableAmount,
7510 FormulatedAmount,
7511 AvailableBonusThresholdBalance,
7512 BonusThresholdBalance,
7513 FinalBonusThresholdBalance,
7514 BonusThreshold,
7515 BonusBasisID,
7516 BonusBasisUID,
7517 BonusID,
7518 BonusUID,
7519 BonusName,
7520 IsTaxable,
7521 BonusTypeID,
7522 BonusTypeName,
7523 BonusTypeUID,
7524 BonusTypeSource,
7525 TaxableBonus,
7526 NonTaxableBonus
7527 FROM
7528 tst.ufn__TBonusDetails(
7529 @payoutTbl, @tranRefIDs, @ActualAndRemainingEmpEarnTbl,
7530 @tBasicPay, @tEarn, @PreviousSumTranMainByMonth
7531 ) AS UTBD;
7532
7533 SET @rowC = @@ROWCOUNT;
7534 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7535 EXEC tst.PrintLog
7536 'tBonus',
7537 @rowC,
7538 @diff;
7539 SET @t1 = GETDATE();
7540 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7541 @currentLoggedInID,
7542 @payoutID,
7543 10,
7544 N'tBonus - End Module',
7545 @rowC,
7546 @t1,
7547 0,
7548 @tranModuleProgressCollID,
7549 @clientID;
7550 END;
7551
7552
7553 BEGIN -- @tGovtDedComp
7554 SET @t1 = GETDATE();
7555 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7556 @currentLoggedInID,
7557 @payoutID,
7558 11,
7559 N'tGovtDedComp - Start Module',
7560 0,
7561 @t1,
7562 0,
7563 @tranModuleProgressCollID,
7564 @clientID;
7565 DECLARE @tGovtDedComp trn.[tGovtDedCompTable];
7566 INSERT INTO @tGovtDedComp
7567 SELECT
7568 TGovtDedCompID,
7569 TGovtDedCompUID,
7570 MandDedTableID,
7571 StatutoryTableKeyName,
7572 StatutoryTableKeyID,
7573 Formula,
7574 FormulaData,
7575 EvaluatedAmt,
7576 EYeeShare,
7577 EYerShare,
7578 ExtraValue,
7579 FormulatedEYeeShare,
7580 FormulatedEYerShare,
7581 FormulatedExtraValue,
7582 PreviousEmployeeShare,
7583 IsCompute,
7584 TranRefID,
7585 TranRefUID,
7586 PayoutUID,
7587 ClientEmpUID
7588 FROM
7589 tst.ufn__TGovtDedCompDetails(
7590 @payoutTbl, @tranRefIDs, @ActualAndRemainingEmpEarnTbl,
7591 @PreviousSumTranMainByMonth, @tBasicPay, @tEarn,
7592 @tOvertime, @tBonus
7593 ) AS UTGDCD;
7594
7595 SET @rowC = @@ROWCOUNT;
7596 SET @diff = DATEDIFF(MILLISECOND, @t1, GETDATE());
7597 EXEC tst.PrintLog
7598 'tGovtDedComp',
7599 @rowC,
7600 @diff;
7601 SET @t1 = GETDATE();
7602 EXEC dbo.ufn_ExecuteCreateTranModuleProgress
7603 @currentLoggedInID,
7604 @payoutID,
7605 11,
7606 N'tGovtDedComp - End Module',
7607 @rowC,
7608 @t1,
7609 0,
7610 @tranModuleProgressCollID,
7611 @clientID;
7612 END;
7613
7614 --------------------------------------------------------------------------------------------------
7615 -------END-------------------NEW TRANSACTION------------------------------------------------------
7616 --------------------------------------------------------------------------------------------------
7617
7618
7619
7620 ---------------------------------------------------
7621 --- Creation of Transaction Main (tbl_TranMain) ---
7622 ---------------------------------------------------
7623 --EXEC trn.usp_TranMain_Init @currentLoggedInID , @payoutID ,
7624 -- @payoutUID
7625
7626 EXEC tst.usp_TranMain_Init
7627 @currentLoggedInID,
7628 @payoutID,
7629 @payoutTbl,
7630 @tranRefIDs,
7631 @PreviousSumTranMainByMonth,
7632 @RemainingPayoutInAYearTbl,
7633 @ActualAndRemainingEmpEarnTbl,
7634 @tBasicPay,
7635 @tEarn,
7636 @tBonus,
7637 @tOvertime,
7638 @tGovtDedComp,
7639 @tranModuleProgressCollID,
7640 @clientID;
7641
7642
7643 --------------------------------------------------------------------
7644 --- Copying of Configuration Employee Details (FTConfEmpDetails) ---
7645 --------------------------------------------------------------------
7646 EXEC trn.usp_FTConfEmpDetails_Init
7647 @currentLoggedInID,
7648 @payoutID,
7649 @tranModuleProgressCollID,
7650 @clientID;
7651
7652 ---------------------------------------------------------------
7653 --- Copying of Client Employee Details (FTClientEmpDetails) ---
7654 ---------------------------------------------------------------
7655 EXEC trn.usp_FTClientEmpDetails_Init
7656 @currentLoggedInID,
7657 @payoutID,
7658 @tranModuleProgressCollID,
7659 @clientID;
7660
7661 ----------------------------------------------------------------------------------------
7662 --- Copying of Configuration Employee Details KeyValue (FTClientEmpDetails_KeyValue) ---
7663 ----------------------------------------------------------------------------------------
7664 EXEC trn.usp_FTClientEmpDetails_KeyValue_Init
7665 @currentLoggedInID,
7666 @payoutID,
7667 @tranModuleProgressCollID,
7668 @clientID;
7669
7670 ------------------------------------------------------------------
7671 --- Copying of Employee Basic Pays Details (FTBasicPayDetails) ---
7672 ------------------------------------------------------------------
7673 --EXEC trn.usp_FTBasicPayDetails_Init @currentLoggedInID , @payoutID
7674 EXEC tst.usp_FTBasicPayDetails_Init
7675 @currentLoggedInID,
7676 @payoutID,
7677 @tBasicPay,
7678 @tranModuleProgressCollID,
7679 @clientID;
7680
7681
7682 ------------------------------------------------------------
7683 --- Copying of Employee Earnings Details (FTEarnDetails) ---
7684 ------------------------------------------------------------
7685 --EXEC trn.usp_FTEarnDetails_Init @currentLoggedInID , @payoutID
7686 EXEC tst.usp_FTEarnDetails_Init
7687 @currentLoggedInID,
7688 @payoutID,
7689 @tEarn,
7690 @tranModuleProgressCollID,
7691 @clientID;
7692
7693
7694 ----------------------------------------------------------------
7695 --- Copying of Employee Overtime Details (FTOvertimeDetails) ---
7696 ----------------------------------------------------------------
7697 --EXEC trn.usp_FTOvertimeDetails_Init @currentLoggedInID , @payoutID
7698 EXEC tst.usp_FTOvertimeDetails_Init
7699 @currentLoggedInID,
7700 @payoutID,
7701 @tOvertime,
7702 @tranModuleProgressCollID,
7703 @clientID;
7704
7705
7706 -------------------------------------------------------------
7707 --- Copying of Employee Deductions Details (FTDedDetails) ---
7708 -------------------------------------------------------------
7709 EXEC trn.usp_FTDedDetails_Init
7710 @currentLoggedInID,
7711 @payoutID,
7712 @tranModuleProgressCollID,
7713 @clientID;
7714
7715 ---------------------------------------------------------
7716 --- Copying of Employee Loans Details (FTLoanDetails) ---
7717 ---------------------------------------------------------
7718 EXEC trn.usp_FTLoanDetails_Init
7719 @currentLoggedInID,
7720 @payoutID,
7721 @tranModuleProgressCollID,
7722 @clientID;
7723
7724 ----------------------------------------------------------
7725 --- Copying of Employee Bonus Details (FTBonusDetails) ---
7726 ----------------------------------------------------------
7727 --EXEC trn.usp_FTBonusDetails_Init @currentLoggedInID , @payoutID
7728 EXEC tst.usp_FTBonusDetails_Init
7729 @currentLoggedInID,
7730 @payoutID,
7731 @tBonus,
7732 @tranModuleProgressCollID,
7733 @clientID;
7734
7735
7736 ------------------------------------------------------------
7737 --- Copying of Employee Bonus Details (FTGovtDedDetails) ---
7738 ------------------------------------------------------------
7739 --EXEC trn.usp_FTGovtDedDetails_Init @currentLoggedInID , @payoutID
7740 EXEC tst.usp_FTGovtDedDetails_Init
7741 @currentLoggedInID,
7742 @payoutID,
7743 @tGovtDedComp,
7744 @tranModuleProgressCollID,
7745 @clientID;
7746
7747
7748
7749 ----------------------------------------------------------------
7750 ----- Copying of Leave Credit Details (FTLeaveCreditDetails) ---
7751 --------------------------------------------------------------
7752 EXEC tst.usp_FTLeaveCreditDetails_Init
7753 @currentLoggedInID, -- bigint
7754 @payoutID, -- bigint
7755 @tranModuleProgressCollID,
7756 @clientID; -- bigint
7757
7758
7759
7760
7761
7762
7763 EXEC dbo.ufn_CreatePayoutNotification
7764 @currentLoggedInID,
7765 @payoutID,
7766 13,
7767 N'Creating Post transactions Success',
7768 0,
7769 0,
7770 @tranModuleProgressCollID,
7771 @clientID;
7772
7773
7774
7775
7776
7777 --------------------------------------
7778 --- Update Payout Status ---
7779 --------------------------------------
7780 UPDATE
7781 dbo.tbl_Payout
7782 SET
7783 Status = 4 -- Draft
7784 WHERE
7785 PayoutID = @payoutID;
7786
7787 SET @isSuccess = 1;
7788
7789 PRINT 'Success';
7790
7791 COMMIT;
7792 END TRY
7793 BEGIN CATCH
7794
7795 SET @err = 'Error: ' + REPLACE(ERROR_MESSAGE(), '''', '"');
7796
7797 --RAISERROR (@err, 15, -1 );
7798
7799 EXEC dbo.ufn_CreatePayoutNotification
7800 @currentLoggedInID,
7801 @payoutID,
7802 15,
7803 @err,
7804 0,
7805 1,
7806 @tranModuleProgressCollID,
7807 @clientID;
7808
7809 ROLLBACK;
7810
7811 UPDATE
7812 dbo.tbl_Payout
7813 SET
7814 IsLocked = 0,
7815 Status = 3 -- Open
7816 WHERE
7817 PayoutID = @payoutID;
7818
7819 SELECT
7820 @isSuccess;
7821 RETURN;
7822 END CATCH;
7823
7824 EXEC dbo.ufn_CreatePayoutNotification
7825 @currentLoggedInID,
7826 @payoutID,
7827 14,
7828 N'Creating Post transactions Completed',
7829 0,
7830 1,
7831 @tranModuleProgressCollID,
7832 @clientID;
7833
7834
7835
7836 SELECT
7837 @isSuccess;
7838 END;
7839
7840
7841--SELECT * FROM dbo.tbl_Payout WHERE PayoutUID = '29490915-71d0-41d9-b687-5d5b876b3dfb'
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862GO
7863IF @@ERROR <> 0 SET NOEXEC ON
7864GO
7865PRINT N'Altering [trn].[usp_TranEmpBankInfo_Init]'
7866GO
7867ALTER PROCEDURE [trn].[usp_TranEmpBankInfo_Init]
7868 (
7869 @currentLoggedInID BIGINT
7870 , @payoutID BIGINT
7871 , @isForUpdate BIT
7872 , @clientEmpUIDList NVARCHAR(MAX)
7873 , @tranModuleProgressCollID BIGINT
7874 , @clientID BIGINT
7875 )
7876AS
7877 SET NOCOUNT ON
7878
7879 EXEC dbo.ufn_CreatePayoutNotification
7880 @currentLoggedInID
7881 , @payoutID
7882 , 17
7883 , N'Start Module'
7884 , 0
7885 , 1
7886 , @tranModuleProgressCollID
7887 , @clientID
7888
7889 --DECLARE @@currentLoggedInUID UNIQUEIDENTIFIER = '808b3fdc-003e-428c-b950-58ba3ab453a3'
7890 --DECLARE @@payoutUID UNIQUEIDENTIFIER = 'd3f7c629-2c6d-48ae-b8b7-3545ae0281f6'
7891
7892 DECLARE @tblClientEmpID TABLE ( ClientEmpID BIGINT )
7893 INSERT INTO @tblClientEmpID
7894 SELECT
7895 TCE.ClientEmpID
7896 FROM
7897 utl.SplitString(@clientEmpUIDList , ',') tmp
7898 INNER JOIN dbo.tbl_ClientEmp AS TCE
7899 ON TCE.ClientEmpUID = tmp.Data
7900 WHERE
7901 tmp.Data IS NOT NULL
7902 AND RTRIM(LTRIM(tmp.Data)) != ''
7903
7904 DELETE
7905 TTBI
7906 FROM
7907 trn.tbl_TBankInfo AS TTBI
7908 INNER JOIN trn.tbl_TranRef AS TR
7909 ON TR.TranRefID = TTBI.TranRefID
7910 INNER JOIN dbo.tbl_ClientEmp AS VCE
7911 ON VCE.ClientEmpID = TR.ClientEmpID
7912 INNER JOIN dbo.tbl_Payout AS P
7913 ON P.PayoutID = TR.PayoutID
7914 WHERE
7915 P.PayoutID = @payoutID
7916 AND TTBI.DataSource = 1
7917 AND (
7918 @clientEmpUIDList IS NULL
7919 OR VCE.ClientEmpID IN ( SELECT
7920 ClientEmpID
7921 FROM
7922 @tblClientEmpID )
7923 )
7924
7925 DECLARE @rowCount INT = @@ROWCOUNT
7926 PRINT CONCAT(@rowCount , ' item/s with modification in Emp Info is deleted to trn.tbl_TBankInfo')
7927
7928 INSERT INTO trn.tbl_TBankInfo
7929 (
7930 TBankInfoUID
7931 , TranRefID
7932 , BankID
7933 , AccountNo
7934 , BranchID
7935 , LocationID
7936 , AccountType
7937 , [Percent]
7938 , CreatedOn
7939 , CreatedByID
7940 )
7941 SELECT
7942 NEWID()
7943 , TR.TranRefID
7944 , BankID
7945 , AccountNo
7946 , BranchID
7947 , TEBI.LocationID
7948 , AccountType
7949 , [Percent]
7950 , GETDATE()
7951 , E.EmpID
7952 FROM
7953 trn.tbl_TranRef AS TR
7954 INNER JOIN dbo.tbl_Payout AS P
7955 ON P.PayoutID = TR.PayoutID
7956 INNER JOIN dbo.tbl_ClientEmp AS TCE
7957 ON TCE.ClientEmpID = TR.ClientEmpID
7958 INNER JOIN ce.tbl_EmpBankInfo AS TEBI
7959 ON TEBI.ClientEmpID = TR.ClientEmpID
7960 AND TEBI.IsDefault = 1
7961 INNER JOIN dbo.tbl_Emp AS E
7962 ON E.EmpID = @currentLoggedInID
7963 INNER JOIN c.tbl_ConfEmp AS TCE2
7964 ON TCE2.ClientEmpID = TCE.ClientEmpID
7965 AND TCE2.PymtTypeID IN ( 8 , 9 )
7966 WHERE
7967 P.PayoutID = @payoutID
7968 AND (
7969 @clientEmpUIDList IS NULL
7970 OR TCE.ClientEmpID IN ( SELECT
7971 ClientEmpID
7972 FROM
7973 @tblClientEmpID )
7974 )
7975 AND TR.ClientEmpID NOT IN ( SELECT
7976 ClientEmpID
7977 FROM
7978 trn.tbl_TBankInfo AS TEI
7979 INNER JOIN trn.tbl_TranRef TRi
7980 ON TRi.TranRefID = TEI.TranRefID
7981 INNER JOIN dbo.tbl_Payout POi
7982 ON POi.PayoutID = TRi.PayoutID
7983 WHERE
7984 POi.PayoutID = @payoutID )
7985 SET @rowCount = @@ROWCOUNT
7986
7987 --IF @isForUpdate = 0
7988 -- AND @rowCount = 0
7989 -- RAISERROR (N'No record created on tbl_TBankInfo', 15, -1 );
7990
7991 PRINT CONCAT(@rowCount , ' item/s is added to trn.tbl_TBankInfo')
7992
7993 EXEC dbo.ufn_CreatePayoutNotification
7994 @currentLoggedInID
7995 , @payoutID
7996 , 17
7997 , N'End Module'
7998 , @rowCount
7999 , 1
8000 , @tranModuleProgressCollID
8001 , @clientID
8002
8003
8004
8005
8006
8007
8008
8009
8010GO
8011IF @@ERROR <> 0 SET NOEXEC ON
8012GO
8013PRINT N'Altering [trn].[usp_CreateTransaction]'
8014GO
8015ALTER PROCEDURE [trn].[usp_CreateTransaction]
8016 (
8017 @currentLoggedInUID UNIQUEIDENTIFIER
8018 , @payoutUID UNIQUEIDENTIFIER
8019 , @numHours DECIMAL(18 , 4)
8020 , @numDays DECIMAL(18 , 4)
8021 , @isZeroBasicPay BIT
8022 , @computeStatutoryTableKeyUIDList NVARCHAR(MAX) -- StatutoryTableKey UIDs separated with comma for Computed
8023 , @isComputeFinalPay BIT
8024 , @includeEmpEarn BIT
8025 , @includeEmpDed BIT
8026 , @includeEmpLoan BIT
8027 , @taxTableUID UNIQUEIDENTIFIER
8028 , @bonusFormulasUIDList NVARCHAR(MAX) -- Bonus Formula UIDs separated with comma
8029 , @payoutType TINYINT -- Regular 1, Special 2 Override 3
8030 , @isForUpdate BIT
8031 , @clientEmpUIDList NVARCHAR(MAX)
8032 , @tranModuleProgressCollID BIGINT -- NULL:Generate TranModuleProgressCollID
8033 )
8034AS
8035 BEGIN
8036
8037 SET NOCOUNT ON
8038
8039 DECLARE @payoutID BIGINT
8040 DECLARE @payoutStatus TINYINT
8041 DECLARE @currentLoggedInID BIGINT
8042 DECLARE @taxTableID BIGINT
8043
8044 DECLARE @clientUID UNIQUEIDENTIFIER
8045 DECLARE @clientID BIGINT
8046 DECLARE @NotificationMessage NVARCHAR(100)
8047 DECLARE @err NVARCHAR(MAX)
8048
8049 IF @isForUpdate = 1
8050 BEGIN
8051 SET @payoutStatus = 3
8052 END
8053 ELSE
8054 BEGIN
8055 SET @payoutStatus = 0
8056 END
8057
8058 SELECT
8059 @payoutID = PayoutID
8060 , @currentLoggedInID = E.EmpID
8061 , @taxTableID = TT.TaxTableID
8062 --, @payoutStatus = P.Status
8063 , @clientUID = TC.ClientUID
8064 , @clientID = TC.ClientID
8065 FROM
8066 dbo.tbl_Payout AS P
8067 INNER JOIN dbo.tbl_Emp AS E
8068 ON E.EmpUID = @currentLoggedInUID
8069 INNER JOIN ccg.tbl_TaxTable AS TT
8070 ON TT.TaxTableUID = @taxTableUID
8071 INNER JOIN dbo.tbl_Client AS TC
8072 ON TC.ClientID = P.ClientID
8073 WHERE
8074 PayoutUID = @payoutUID
8075
8076
8077
8078 DECLARE @isSuccess BIT = 0
8079
8080 --ilagay sa begin tran end tran
8081 --BEGIN TRAN
8082 --DELETE
8083 -- TMP2
8084 --FROM
8085 -- trn.tbl_TranModuleProgress AS TMP2
8086 -- INNER JOIN dbo.tbl_Payout AS P
8087 -- ON P.PayoutID = TMP2.PID
8088 --WHERE
8089 -- PayoutUID = @payoutUID
8090 --COMMIT
8091 --DECLARE @tranModuleProgressCollID BIGINT
8092 IF @tranModuleProgressCollID IS NULL
8093 BEGIN
8094 INSERT INTO trn.tbl_TranModuleProgressColl
8095 (
8096 PayoutID
8097 , TransactionMethodType
8098 , CreatedOn
8099 , CreatedByID
8100 )
8101 VALUES
8102 (
8103 @payoutID
8104 , IIF (@isForUpdate = 1 , 1 , 0 )--0:Create, 1:Update
8105 , -- PayoutID - bigint
8106 GETDATE()
8107 , -- CreatedOn - datetime
8108 @currentLoggedInID -- CreatedByID - bigint
8109 )
8110 SET @tranModuleProgressCollID = SCOPE_IDENTITY()
8111 END
8112
8113 SET @NotificationMessage = IIF (@isForUpdate = 0 , N'Create Transaction Initialized' , N'Update Transaction Initialized' )
8114 EXEC dbo.ufn_CreatePayoutNotification
8115 @currentLoggedInID
8116 , @payoutID
8117 , 1
8118 , @NotificationMessage
8119 , 0
8120 , 1
8121 , @tranModuleProgressCollID
8122 , @clientID
8123
8124 EXEC dbo.ufn_CreatePayoutNotification
8125 @currentLoggedInID
8126 , @payoutID
8127 , 1
8128 , N'Checking if payout is locked'
8129 , 0
8130 , 0
8131 , @tranModuleProgressCollID
8132 , @clientID
8133 IF EXISTS ( SELECT
8134 1
8135 FROM
8136 dbo.tbl_Payout AS VP
8137 WHERE
8138 PayoutID = @payoutID
8139 AND IsLocked = 1 )
8140 BEGIN
8141 EXEC dbo.ufn_CreatePayoutNotification
8142 @currentLoggedInID
8143 , @payoutID
8144 , 15
8145 , N'Payout is locked'
8146 , 0
8147 , 1
8148 , @tranModuleProgressCollID
8149 , @clientID
8150
8151 SELECT
8152 @isSuccess
8153 RETURN;
8154 END
8155
8156
8157 EXEC dbo.ufn_CreatePayoutNotification
8158 @currentLoggedInID
8159 , @payoutID
8160 , 1
8161 , N'Update payout lock'
8162 , 0
8163 , 0
8164 , @tranModuleProgressCollID
8165 , @clientID
8166 UPDATE
8167 dbo.tbl_Payout
8168 SET
8169 IsLocked = 1
8170 WHERE
8171 PayoutID = @payoutID
8172 EXEC dbo.ufn_CreatePayoutNotification
8173 @currentLoggedInID
8174 , @payoutID
8175 , 1
8176 , N'Payout locked'
8177 , 0
8178 , 0
8179 , @tranModuleProgressCollID
8180 , @clientID
8181
8182--DECLARE @payoutUID UNIQUEIDENTIFIER = 'd3f7c629-2c6d-48ae-b8b7-3545ae0281f6'
8183--DECLARE @currentLoggedInUID UNIQUEIDENTIFIER = '808b3fdc-003e-428c-b950-58ba3ab453a3'
8184--DECLARE @numHours INT = 33
8185--DECLARE @numDays INT = 44
8186--DECLARE @taxTableUID UNIQUEIDENTIFIER = '834e00c2-ff79-43ff-8c90-b9a9b8b7a8ce'
8187--DECLARE @bonusFormulasUID NVARCHAR(MAX)
8188
8189 DECLARE @remarks NVARCHAR(MAX)=
8190 --CONCAT(
8191 N'Checking if payout status is queuing'
8192 --, IIF (@isForUpdate = 0 , N'new' , N'open' )
8193 --)
8194 EXEC dbo.ufn_CreatePayoutNotification
8195 @currentLoggedInID
8196 , @payoutID
8197 , 1
8198 , @remarks
8199 , 0
8200 , 0
8201 , @tranModuleProgressCollID
8202 , @clientID
8203
8204 --IF @isForUpdate = 0
8205 -- AND EXISTS ( SELECT
8206 -- 1
8207 -- FROM
8208 -- dbo.tbl_Payout AS VP
8209 -- WHERE
8210 -- PayoutID = @payoutID
8211 -- AND Status != 0 )
8212 -- BEGIN
8213 -- SET @remarks = N'Payout status is not new'
8214 -- EXEC dbo.ufn_CreatePayoutNotification
8215 -- @currentLoggedInID
8216 -- , @payoutID
8217 -- , 14
8218 -- , @remarks
8219 -- , 0
8220 --, 1
8221
8222 -- SELECT
8223 -- @isSuccess
8224 -- RETURN;
8225 -- END
8226 --IF @isForUpdate = 1
8227 -- AND EXISTS ( SELECT
8228 -- 1
8229 -- FROM
8230 -- dbo.tbl_Payout AS VP
8231 -- WHERE
8232 -- PayoutID = @payoutID
8233 -- AND Status != 3 )
8234 -- BEGIN
8235 -- SET @remarks = N'Payout status is not open'
8236 -- EXEC dbo.ufn_CreatePayoutNotification
8237 -- @currentLoggedInID
8238 -- , @payoutID
8239 -- , 14
8240 -- , @remarks
8241 -- , 0
8242 --, 1
8243
8244 -- SELECT
8245 -- @isSuccess
8246 -- RETURN;
8247 -- END
8248 IF EXISTS ( SELECT
8249 1
8250 FROM
8251 dbo.tbl_Payout AS VP
8252 WHERE
8253 PayoutID = @payoutID
8254 AND Status != 1 )
8255 BEGIN
8256 SET @remarks = N'Payout status is not queuing'
8257 EXEC dbo.ufn_CreatePayoutNotification
8258 @currentLoggedInID
8259 , @payoutID
8260 , 14
8261 , @remarks
8262 , 0
8263 , 1
8264 , @tranModuleProgressCollID
8265 , @clientID
8266
8267 SELECT
8268 @isSuccess
8269 RETURN;
8270 END
8271
8272
8273
8274 EXEC dbo.ufn_CreatePayoutNotification
8275 @currentLoggedInID
8276 , @payoutID
8277 , 1
8278 , N'Update payout status'
8279 , 0
8280 , 0
8281 , @tranModuleProgressCollID
8282 , @clientID
8283 UPDATE
8284 dbo.tbl_Payout
8285 SET
8286 Status = 2 -- Processing
8287 WHERE
8288 PayoutID = @payoutID
8289 EXEC dbo.ufn_CreatePayoutNotification
8290 @currentLoggedInID
8291 , @payoutID
8292 , 1
8293 , N'Setting payout to "Processing status"'
8294 , 0
8295 , 0
8296 , @tranModuleProgressCollID
8297 , @clientID
8298
8299 EXEC dbo.ufn_CreatePayoutNotification
8300 @currentLoggedInID
8301 , @payoutID
8302 , 1
8303 , N'Begin Transaction'
8304 , 0
8305 , 0
8306 , @tranModuleProgressCollID
8307 , @clientID
8308
8309 DECLARE @payoutIsUsed BIT
8310
8311---------------------------------
8312--- Parameters Validation -------
8313---------------------------------
8314 BEGIN TRY
8315 IF @currentLoggedInUID IS NULL
8316 BEGIN
8317 RAISERROR (N'Current Logged in is required', 15, -1 );
8318 END
8319
8320 IF @payoutUID IS NULL
8321 BEGIN
8322 RAISERROR (N'Payout is required', 15, -1 );
8323 END
8324
8325 IF @payoutType != 3
8326 AND @taxTableUID IS NULL
8327 BEGIN
8328 RAISERROR (N'Tax table is required', 15, -1 );
8329 END
8330
8331 EXEC dbo.ufn_CreatePayoutNotification
8332 @currentLoggedInID
8333 , @payoutID
8334 , 1
8335 , N'Checking Payout Object'
8336 , 0
8337 , 0
8338 , @tranModuleProgressCollID
8339 , @clientID
8340
8341 IF @payoutID IS NULL
8342 BEGIN
8343 RAISERROR (N'Payout Not Found', 15, -1);
8344 END
8345
8346
8347
8348 SET @NotificationMessage = IIF (@isForUpdate = 0 , N'Checking Payout if in used' , N'Checking Payout if not in used' )
8349 EXEC dbo.ufn_CreatePayoutNotification
8350 @currentLoggedInID
8351 , @payoutID
8352 , 1
8353 , @NotificationMessage
8354 , 0
8355 , 0
8356 , @tranModuleProgressCollID
8357 , @clientID
8358 SELECT
8359 @payoutIsUsed = (
8360 SELECT DISTINCT
8361 1
8362 FROM
8363 dbo.tbl_Payout AS P
8364 INNER JOIN trn.tbl_TranRef AS TR
8365 ON TR.PayoutID = P.PayoutID
8366 WHERE
8367 P.PayoutID = @payoutID
8368 )
8369 IF @isForUpdate = 0
8370 BEGIN
8371 IF @payoutIsUsed = 1
8372 BEGIN
8373 RAISERROR (N'Payout Is In Used', 15, -1 );
8374 END
8375 END
8376 ELSE
8377 BEGIN
8378 IF @payoutIsUsed IS NULL
8379 AND (
8380 --@payoutType = 1
8381 --OR (
8382 @payoutType != 1
8383 AND (
8384 @clientEmpUIDList = ''
8385 OR @clientEmpUIDList IS NULL
8386 )
8387 --)
8388 )
8389 BEGIN
8390 RAISERROR (N'Payout Is Not In Used', 15, -1 );
8391 END
8392 END
8393
8394
8395
8396
8397 EXEC dbo.ufn_CreatePayoutNotification
8398 @currentLoggedInID
8399 , @payoutID
8400 , 1
8401 , N'Checking Current Logged in Object'
8402 , 0
8403 , 0
8404 , @tranModuleProgressCollID
8405 , @clientID
8406
8407 IF @currentLoggedInID IS NULL
8408 BEGIN
8409 RAISERROR (N'Current Logged in user not found', 15, -1 );
8410 END
8411
8412
8413
8414 EXEC dbo.ufn_CreatePayoutNotification
8415 @currentLoggedInID
8416 , @payoutID
8417 , 1
8418 , N'Checking Number of Hours/Days requirements'
8419 , 0
8420 , 0
8421 , @tranModuleProgressCollID
8422 , @clientID
8423 IF @payoutType IN ( 1 , 2 )
8424 BEGIN
8425 DECLARE @ReqNumDays BIT = NULL
8426 DECLARE @ReqNumHours BIT = NULL
8427
8428 --IF @payoutType = 1
8429 -- BEGIN
8430 -- SELECT
8431 -- @ReqNumDays = ReqNumDays
8432 -- , @ReqNumHours = ReqNumHours
8433 -- FROM
8434 -- trn.ufn__ClientAvailablePayout(@clientUID) AS UCAP
8435 -- WHERE
8436 -- PayoutID = @payoutID
8437 -- AND [EmployeeCount] > 0
8438
8439 -- END
8440 --ELSE
8441 -- BEGIN
8442 --DECLARE @tblClientEmpUID TABLE
8443 -- (
8444 -- ClientEmpUID UNIQUEIDENTIFIER
8445 -- )
8446 --INSERT INTO @tblClientEmpUID
8447 -- SELECT
8448 -- Data
8449 -- FROM
8450 -- utl.SplitString(@clientEmpUIDList , ',') tmp
8451 -- WHERE
8452 -- tmp.Data IS NOT NULL
8453 -- AND RTRIM(LTRIM(tmp.Data)) != ''
8454
8455 SELECT
8456 @ReqNumDays = ReqNumDays
8457 , @ReqNumHours = ReqNumHours
8458 FROM
8459 (
8460 SELECT
8461 MAX(IIF (possibleEmp.CurrentPayType = 2 , 1 , 0 )) ReqNumDays
8462 , MAX(IIF (possibleEmp.CurrentPayType = 3 , 1 , 0 )) ReqNumHours
8463 FROM
8464 dbo.tbl_ClientEmp AS TCE
8465 CROSS APPLY (
8466 SELECT
8467 EmpID
8468 , EmpUID
8469 , ClientEmpCode
8470 , ClientEmpUID
8471 , EmpInfoUID
8472 , FirstName
8473 , MiddleName
8474 , LastName
8475 , Gender
8476 , CivilStatus
8477 , Birthdate
8478 , FullName
8479 , PayoutUID
8480 , PayoutID
8481 , CurrentPayType
8482 FROM
8483 trn.ufn__PayoutEmployee(@payoutUID , @clientEmpUIDList) AS UPE
8484 WHERE
8485 UPE.EmpID = TCE.EmpID
8486 ) AS possibleEmp
8487 --WHERE
8488 -- TCE.ClientEmpUID IN ( SELECT
8489 -- ClientEmpUID
8490 -- FROM
8491 -- @tblClientEmpUID AS TCEU )
8492 ) tblResult
8493 --END
8494
8495 IF @ReqNumHours = 1
8496 AND @numHours IS NULL
8497 BEGIN
8498 RAISERROR (N'Number of hours is required', 15, -1 );
8499 END
8500
8501 IF @ReqNumDays = 1
8502 AND @numDays IS NULL
8503 BEGIN
8504 RAISERROR (N'Number of days is required', 15, -1 );
8505 END
8506 END
8507 END TRY
8508 BEGIN CATCH
8509
8510 UPDATE
8511 dbo.tbl_Payout
8512 SET
8513 IsLocked = 0
8514 , Status = IIF (@isForUpdate = 0
8515 AND @payoutIsUsed = 0 , 0 , 3 )
8516 WHERE
8517 PayoutID = @payoutID
8518
8519 SET @err = 'Error: ' + REPLACE(ERROR_MESSAGE() , '''' , '"')
8520
8521 --RAISERROR (@err, 15, -1 );
8522
8523 EXEC dbo.ufn_CreatePayoutNotification
8524 @currentLoggedInID
8525 , @payoutID
8526 , 15
8527 , @err
8528 , 0
8529 , 1
8530 , @tranModuleProgressCollID
8531 , @clientID
8532
8533 SELECT
8534 @isSuccess
8535 RETURN;
8536 END CATCH
8537---------------------------------
8538--- Parameters Validation -------
8539---------------------------------
8540
8541-------------------------------
8542--- Transaction Information ---
8543-------------------------------
8544 BEGIN TRAN
8545 BEGIN TRY
8546 IF EXISTS ( SELECT
8547 1
8548 FROM
8549 trn.tbl_TransactionInfo AS TTI
8550 WHERE
8551 PayoutID = @payoutID )
8552 BEGIN
8553 EXEC dbo.ufn_CreatePayoutNotification
8554 @currentLoggedInID
8555 , @payoutID
8556 , 1
8557 , N'Updating Transaction Information'
8558 , 0
8559 , 0
8560 , @tranModuleProgressCollID
8561 , @clientID
8562
8563 UPDATE
8564 trn.tbl_TransactionInfo
8565 SET
8566 NumOfHours = @numHours
8567 , NumOfDays = @numDays
8568 , IsZeroBasicPay = @isZeroBasicPay
8569 , IsComputeFinalPay = @isComputeFinalPay
8570 , IncludeEmpEarn = @includeEmpEarn
8571 , IncludeEmpDed = @includeEmpDed
8572 , IncludeEmpLoan = @includeEmpLoan
8573 , TaxTableID = @taxTableID
8574 , ModifiedOn = GETDATE()
8575 , ModifiedByID = @currentLoggedInID
8576 WHERE
8577 PayoutID = @payoutID
8578 AND (
8579 NumOfHours != @numHours
8580 OR NumOfDays != @numDays
8581 OR IsZeroBasicPay != @isZeroBasicPay
8582 OR IsComputeFinalPay != @isComputeFinalPay
8583 OR IncludeEmpEarn != @includeEmpEarn
8584 OR IncludeEmpDed != @includeEmpDed
8585 OR IncludeEmpLoan != @includeEmpLoan
8586 OR TaxTableID != @taxTableID
8587 )
8588 END
8589 ELSE
8590 BEGIN
8591 EXEC dbo.ufn_CreatePayoutNotification
8592 @currentLoggedInID
8593 , @payoutID
8594 , 1
8595 , N'Inserting Transaction Information'
8596 , 0
8597 , 0
8598 , @tranModuleProgressCollID
8599 , @clientID
8600
8601 INSERT INTO trn.tbl_TransactionInfo
8602 (
8603 PayoutID
8604 , TransactionInfoUID
8605 , NumOfHours
8606 , NumOfDays
8607 , IsZeroBasicPay
8608 , IsComputeFinalPay
8609 , IncludeEmpEarn
8610 , IncludeEmpDed
8611 , IncludeEmpLoan
8612 , TaxTableID
8613 , CreatedOn
8614 , CreatedByID
8615 )
8616 VALUES
8617 (
8618 @payoutID
8619 , NEWID()
8620 , @numHours
8621 , @numDays
8622 , @isZeroBasicPay
8623 , @isComputeFinalPay
8624 , @includeEmpEarn
8625 , @includeEmpDed
8626 , @includeEmpLoan
8627 , @taxTableID
8628 , GETDATE()
8629 , @currentLoggedInID
8630 )
8631 END
8632
8633-------------------------------------
8634--- Transaction Information Bonus ---
8635-------------------------------------
8636 EXEC dbo.ufn_CreatePayoutNotification
8637 @currentLoggedInID
8638 , @payoutID
8639 , 1
8640 , N'Deleting and Inserting Transaction Information Bonus'
8641 , 0
8642 , 0
8643 , @tranModuleProgressCollID
8644 , @clientID
8645 DELETE
8646 TTIB
8647 FROM
8648 trn.tbl_TransactionInfoBonus AS TTIB
8649 WHERE
8650 PayoutID = @payoutID
8651
8652
8653 BEGIN TRY
8654 INSERT INTO trn.tbl_TransactionInfoBonus
8655 (
8656 TransactionInfoBonusUID
8657 , PayoutID
8658 , BonusBasisID
8659 )
8660 SELECT
8661 NEWID()
8662 , @payoutID
8663 , BB.BonusBasisID
8664 FROM
8665 ceg.tbl_BonusBasis AS BB
8666 WHERE
8667 BB.BonusBasisUID IN ( SELECT
8668 Data
8669 FROM
8670 utl.SplitString(@bonusFormulasUIDList , ',') SS
8671 WHERE
8672 SS.Data IS NOT NULL
8673 AND RTRIM(LTRIM(SS.Data)) != '' )
8674 END TRY
8675 BEGIN CATCH
8676 DECLARE @bonusParseErr NVARCHAR(MAX)
8677
8678 SET @bonusParseErr = CONCAT(N'Error Parsing Bonus Formula UIDs: ' , @bonusFormulasUIDList)
8679
8680 EXEC dbo.ufn_CreatePayoutNotification
8681 @currentLoggedInID
8682 , @payoutID
8683 , 1
8684 , @bonusParseErr
8685 , 0
8686 , 1
8687 , @tranModuleProgressCollID
8688 , @clientID
8689 END CATCH
8690
8691-------------------------------------------------
8692--- Transaction Information Allowable Ded Comp---
8693-------------------------------------------------
8694 EXEC dbo.ufn_CreatePayoutNotification
8695 @currentLoggedInID
8696 , @payoutID
8697 , 1
8698 , N'Updating and Inserting Transaction Information Allowable Ded Comp'
8699 , 0
8700 , 0
8701 , @tranModuleProgressCollID
8702 , @clientID
8703
8704 DECLARE @computeStatutoryTableKeyIDs TABLE
8705 (
8706 StatutoryTableKeyID BIGINT
8707 )
8708 INSERT INTO @computeStatutoryTableKeyIDs
8709 (
8710 StatutoryTableKeyID
8711 )
8712 SELECT
8713 TSTK.StatutoryTableKeyID
8714 FROM
8715 utl.SplitString(@computeStatutoryTableKeyUIDList , ',') SS
8716 INNER JOIN dbo.tbl_StatutoryTableKey AS TSTK
8717 ON TSTK.StatutoryTableKeyUID = CAST(SS.Data AS UNIQUEIDENTIFIER)
8718 WHERE
8719 SS.Data IS NOT NULL
8720 AND RTRIM(LTRIM(SS.Data)) != ''
8721
8722 BEGIN TRY
8723 UPDATE
8724 TTIADC
8725 SET
8726 IsCompute = IIF (CSTKID.StatutoryTableKeyID IS NULL , 0 , 1 )
8727 , ModifiedByID = @currentLoggedInID
8728 , ModifiedOn = GETDATE()
8729 FROM
8730 trn.tbl_TranInfoAllowableDedConf AS TTIADC
8731 LEFT JOIN @computeStatutoryTableKeyIDs AS CSTKID
8732 ON CSTKID.StatutoryTableKeyID = TTIADC.StatutoryTableKeyID
8733 WHERE
8734 TTIADC.PayoutID = @payoutID
8735 AND TTIADC.IsCompute != IIF (CSTKID.StatutoryTableKeyID IS NULL , 0 , 1 )
8736 INSERT INTO trn.tbl_TranInfoAllowableDedConf
8737 (
8738 TranInfoAllowableDedConfUID
8739 , PayoutID
8740 , StatutoryTableKeyID
8741 , IsCompute
8742 , CreatedOn
8743 , CreatedByID
8744 )
8745 SELECT
8746 NEWID() TranInfoAllowableDedConfUID
8747 , @payoutID PayoutID
8748 , TSTK.StatutoryTableKeyID
8749 , IIF (CSTKUD.StatutoryTableKeyID IS NOT NULL , 1 , 0 ) IsCompute
8750 , GETDATE() CreatedOn
8751 , @currentLoggedInID CreatedByID
8752 FROM
8753 dbo.tbl_StatutoryTableKey AS TSTK
8754 LEFT JOIN @computeStatutoryTableKeyIDs AS CSTKUD
8755 ON CSTKUD.StatutoryTableKeyID = TSTK.StatutoryTableKeyID
8756 WHERE
8757 TSTK.SignatoryOnly != 1
8758 AND TSTK.StatutoryTableKeyID NOT IN ( SELECT
8759 TTIADC.StatutoryTableKeyID
8760 FROM
8761 trn.tbl_TranInfoAllowableDedConf AS TTIADC
8762 WHERE
8763 TTIADC.PayoutID = @payoutID )
8764
8765 END TRY
8766 BEGIN CATCH
8767 DECLARE @statutoryTableKeyParseErr NVARCHAR(MAX)
8768
8769 SET @statutoryTableKeyParseErr = CONCAT(N'Error Parsing Bonus Formula UIDs: ' ,
8770 @computeStatutoryTableKeyUIDList)
8771
8772 EXEC dbo.ufn_CreatePayoutNotification
8773 @currentLoggedInID
8774 , @payoutID
8775 , 1
8776 , @statutoryTableKeyParseErr
8777 , 0
8778 , 1
8779 , @tranModuleProgressCollID
8780 , @clientID
8781 END CATCH
8782
8783-----------------------------------------
8784--- Initialize Transaction Procedures ---
8785-----------------------------------------
8786 EXEC dbo.ufn_CreatePayoutNotification
8787 @currentLoggedInID
8788 , @payoutID
8789 , 2
8790 , N'Initializing Transaction Procedures'
8791 , 0
8792 , 0
8793 , @tranModuleProgressCollID
8794 , @clientID
8795
8796--------------------------------------------------------------------------------
8797--- Creation of Transaction Variable Expression (tbl_TranVariableExpression) ---
8798--------------------------------------------------------------------------------
8799 EXEC trn.usp_TranVariableExpression
8800 @currentLoggedInID
8801 , @payoutID
8802 , @tranModuleProgressCollID
8803 , @clientID
8804
8805
8806
8807 IF RTRIM(LTRIM(@clientEmpUIDList)) = ''
8808 SET @clientEmpUIDList = NULL
8809
8810--------------------------------------------------------
8811--- Creation of Transaction References (tbl_TranRef) ---
8812--------------------------------------------------------
8813 EXEC trn.usp_TranRef_Init
8814 @currentLoggedInID
8815 , @payoutID
8816 , @isZeroBasicPay
8817 , @isComputeFinalPay
8818 , @isForUpdate
8819 , @clientEmpUIDList
8820 , @tranModuleProgressCollID
8821
8822----------------------------------------
8823--- Copying of Employee Informations ---
8824----------------------------------------
8825 EXEC trn.usp_TranEmpInfo_Init
8826 @currentLoggedInID
8827 , @payoutID
8828 , @isForUpdate
8829 , @clientEmpUIDList
8830 , @tranModuleProgressCollID
8831 , @clientID
8832
8833---------------------------------------------
8834--- Copying of Employee Bank Informations ---
8835---------------------------------------------
8836 EXEC trn.usp_TranEmpBankInfo_Init
8837 @currentLoggedInID
8838 , @payoutID
8839 , @isForUpdate
8840 , @clientEmpUIDList
8841 , @tranModuleProgressCollID
8842 , @clientID
8843
8844--------------------------------------
8845--- Copying of Employee Basic Pays ---
8846--------------------------------------
8847 EXEC trn.usp_TranBasicPay_Init
8848 @currentLoggedInID
8849 , @payoutID
8850 , @numHours
8851 , @numDays
8852 , @isForUpdate
8853 , @clientEmpUIDList
8854 , @tranModuleProgressCollID
8855
8856------------------------------------
8857--- Copying of Employee Earnings ---
8858------------------------------------
8859 EXEC trn.usp_TranEarning_Init
8860 @currentLoggedInID
8861 , @payoutID
8862 , @includeEmpEarn
8863 , @clientEmpUIDList
8864 , @tranModuleProgressCollID
8865
8866--------------------------------------
8867--- Copying of Employee Deductions ---
8868--------------------------------------
8869 EXEC trn.usp_TranDeduction_Init
8870 @currentLoggedInID
8871 , @payoutID
8872 , @includeEmpDed
8873 , @clientEmpUIDList
8874 , @tranModuleProgressCollID
8875
8876--------------------------------
8877--- Copying of Employee Loan ---
8878--------------------------------
8879 EXEC trn.usp_TranLoan_Init
8880 @currentLoggedInID
8881 , @payoutID
8882 , @includeEmpLoan
8883 , @clientEmpUIDList
8884 , @tranModuleProgressCollID
8885
8886-------------------------------------
8887--- Computation of Employee Bonus ---
8888-------------------------------------
8889 EXEC trn.usp_TranBonus_Init
8890 @currentLoggedInID
8891 , @payoutID
8892 , @bonusFormulasUIDList
8893 , @clientEmpUIDList
8894 , @tranModuleProgressCollID
8895 , @clientID
8896
8897----------------------------------------------------
8898--- Computation of Employee Statutory Deductions ---
8899----------------------------------------------------
8900 EXEC trn.usp_TranGovtDedComputation_Init
8901 @currentLoggedInID
8902 , @payoutID
8903 , @clientEmpUIDList
8904 , @tranModuleProgressCollID
8905
8906-------------------------------------
8907--- Computation of Employee Taxes ---
8908-------------------------------------
8909 EXEC trn.usp_TranTaxComputation_Init
8910 @currentLoggedInID
8911 , @payoutID
8912 , @taxTableUID
8913 , @clientEmpUIDList
8914 , @tranModuleProgressCollID
8915 , @clientID
8916
8917
8918
8919
8920
8921
8922
8923 SET @NotificationMessage = IIF (@isForUpdate = 0 , N'Creating transactions Success' , N'Updating transactions Success' )
8924 EXEC dbo.ufn_CreatePayoutNotification
8925 @currentLoggedInID
8926 , @payoutID
8927 , 13
8928 , @NotificationMessage
8929 , 0
8930 , 0
8931 , @tranModuleProgressCollID
8932 , @clientID
8933
8934
8935
8936
8937--------------------------------------
8938--- Update Payout Status ---
8939--------------------------------------
8940 UPDATE
8941 dbo.tbl_Payout
8942 SET
8943 Status = 3 -- Open
8944 WHERE
8945 PayoutID = @payoutID
8946
8947 SET @isSuccess = 1
8948
8949 COMMIT
8950 END TRY
8951 BEGIN CATCH
8952
8953 ROLLBACK
8954
8955 UPDATE
8956 dbo.tbl_Payout
8957 SET
8958 IsLocked = 0
8959 , Status = @payoutStatus
8960 WHERE
8961 PayoutID = @payoutID
8962
8963 SET @err = 'Error: ' + REPLACE(ERROR_MESSAGE() , '''' , '"')
8964
8965 --RAISERROR (@err, 15, -1 );
8966
8967 EXEC dbo.ufn_CreatePayoutNotification
8968 @currentLoggedInID
8969 , @payoutID
8970 , 15
8971 , @err
8972 , 0
8973 , 1
8974 , @tranModuleProgressCollID
8975 , @clientID
8976
8977 SELECT
8978 @isSuccess
8979 RETURN;
8980 END CATCH
8981
8982 SET @NotificationMessage = IIF (@isForUpdate = 0 , N'Creating transactions Completed' , N'Updating transactions Completed' )
8983 EXEC dbo.ufn_CreatePayoutNotification
8984 @currentLoggedInID
8985 , @payoutID
8986 , 14
8987 , @NotificationMessage
8988 , 0
8989 , 1
8990 , @tranModuleProgressCollID
8991 , @clientID
8992
8993 UPDATE
8994 dbo.tbl_Payout
8995 SET
8996 IsLocked = 0
8997 WHERE
8998 PayoutID = @payoutID
8999
9000 SELECT
9001 @isSuccess
9002 END
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027GO
9028IF @@ERROR <> 0 SET NOEXEC ON
9029GO
9030PRINT N'Altering [trn].[usp_DeleteFinalTransaction]'
9031GO
9032ALTER PROCEDURE [trn].[usp_DeleteFinalTransaction]
9033 (
9034 @payoutUID UNIQUEIDENTIFIER
9035 , @currentLoggedInUID UNIQUEIDENTIFIER
9036 , @isSystemValidated BIT
9037 , @tranModuleProgressCollID BIGINT -- NULL:Generate TranModuleProgressCollID
9038 )
9039AS --DECLARE @payoutUID UNIQUEIDENTIFIER= 'FFF741D0-312F-4AF3-A669-1C3DCE624C68'
9040-- , @currentLoggedInUID UNIQUEIDENTIFIER = '51A3DDB2-01E0-4A38-8896-876E0CAC9EDE'
9041-- , @isSystemValidated BIT = 1
9042-- , @tranModuleProgressCollID BIGINT = 95999
9043
9044 DECLARE
9045 @payoutID BIGINT
9046 , @clientID BIGINT
9047 , @year INT
9048 , @currentLoggedInID BIGINT
9049 , @islocked bit
9050
9051 -- insert error if posted here
9052
9053 -- -----------------
9054 SELECT
9055 @payoutID = PayoutID
9056 , @currentLoggedInID = E.EmpID
9057 , @clientID = P.ClientID
9058 , @year = P.Year
9059 , @islocked=IsLocked
9060 FROM
9061 dbo.tbl_Payout AS P
9062 INNER JOIN dbo.tbl_Emp AS E
9063 ON E.EmpUID = @currentLoggedInUID
9064 WHERE
9065 PayoutUID = @payoutUID
9066
9067 --IF EXISTS (SELECT MAX(BasicPay) FROM trn.tbl_TranMain WHERE PAYOUTID = @payoutID) AND @islocked=0
9068 --BEGIN
9069 -- UPDATE dbo.tbl_Payout set IsLocked=1 where PayoutID=@payoutID
9070 --END
9071
9072
9073 --DECLARE @tranModuleProgressCollID BIGINT
9074 IF @tranModuleProgressCollID IS NULL
9075 BEGIN
9076 INSERT INTO trn.tbl_TranModuleProgressColl
9077 (
9078 PayoutID
9079 , TransactionMethodType
9080 , CreatedOn
9081 , CreatedByID
9082 )
9083 VALUES
9084 (
9085 @payoutID
9086 , -- PayoutID - bigint
9087 5 -- ReOpen
9088 , GETDATE()
9089 , -- CreatedOn - datetime
9090 @currentLoggedInID -- CreatedByID - bigint
9091 )
9092 SET @tranModuleProgressCollID = SCOPE_IDENTITY()
9093 END
9094
9095 EXEC dbo.ufn_CreatePayoutNotification
9096 @currentLoggedInID
9097 , @payoutID
9098 , 1
9099 , N'Deleting Posted Transaction Initialized'
9100 , 0
9101 , 1
9102 , @tranModuleProgressCollID
9103 , @clientID
9104
9105 DECLARE @tempStr AS NVARCHAR(500) = CONCAT('puid=' , @payoutUID , ' cuid=' , @currentLoggedInUID , ' s=' ,
9106 @isSystemValidated , ' t=' , @tranModuleProgressCollID , ' pid=' ,
9107 @payoutID , ' cid=' , @currentLoggedInID)
9108 EXEC dbo.ufn_CreatePayoutNotification
9109 @currentLoggedInID
9110 , @payoutID
9111 , 1
9112 , @tempStr
9113 , 0
9114 , 1
9115 , @tranModuleProgressCollID
9116 , @clientID
9117
9118 BEGIN TRAN
9119 BEGIN TRY
9120
9121 IF @isSystemValidated = 0
9122 BEGIN
9123 EXEC dbo.ufn_CreatePayoutNotification
9124 @currentLoggedInID
9125 , @payoutID
9126 , 1
9127 , N'Checking if payout is locked'
9128 , 0
9129 , 0
9130 , @tranModuleProgressCollID
9131 , @clientID
9132 ---- Check if payout is not locked ----
9133 IF EXISTS ( SELECT
9134 1
9135 FROM
9136 dbo.tbl_Payout AS VP
9137 WHERE
9138 PayoutID = @payoutID
9139 AND IsLocked != 1 )
9140 BEGIN
9141 RAISERROR (N'Payout is not locked', 15, -1 );
9142 --EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
9143 -- @payoutID, 15, N'Payout is not locked', 0
9144 --EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
9145 -- @payoutID, 14, N'Completed', 0
9146
9147 --SELECT
9148 -- 'Payout is not locked'
9149 RETURN
9150 END
9151
9152 EXEC dbo.ufn_CreatePayoutNotification
9153 @currentLoggedInID
9154 , @payoutID
9155 , 1
9156 , N'Checking if payout is "Draft", "For Approval" or "Approved" status'
9157 , 0
9158 , 0
9159 , @tranModuleProgressCollID
9160 , @clientID
9161 ---- Check if Payout Status is "Draft", "For Approval", "Approved" or "Posted" status ----
9162 IF EXISTS ( SELECT
9163 1
9164 FROM
9165 dbo.tbl_Payout AS VP
9166 WHERE
9167 PayoutID = @payoutID
9168 AND Status NOT IN ( 4 , 5 , 6 , 7 ) )
9169 BEGIN
9170 RAISERROR (N'Payout is not in "Draft", "For Approval" or "Approved" status', 15, -1 );
9171 --EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
9172 -- @payoutID, 15,
9173 -- N'Payout is not in "Draft", "For Approval", "Approved" or "Posted" status',
9174 -- 0
9175 --EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
9176 -- @payoutID, 14, N'Completed', 0
9177
9178 --SELECT
9179 -- 'Payout is not in "Draft", "For Approval", "Approved" or "Posted" status'
9180 RETURN
9181 END
9182 END
9183 ELSE
9184 BEGIN
9185 EXEC dbo.ufn_CreatePayoutNotification
9186 @currentLoggedInID
9187 , @payoutID
9188 , 1
9189 , N'Checking if payout is queuing'
9190 , 0
9191 , 0
9192 , @tranModuleProgressCollID
9193 , @clientID
9194 IF EXISTS ( SELECT
9195 1
9196 FROM
9197 dbo.tbl_Payout AS VP
9198 WHERE
9199 PayoutID = @payoutID
9200 AND Status != 1 )
9201 BEGIN
9202 RAISERROR (N'Payout is not in "Queuing" status', 15, -1 );
9203 RETURN
9204 END
9205
9206
9207 EXEC dbo.ufn_CreatePayoutNotification
9208 @currentLoggedInID
9209 , @payoutID
9210 , 1
9211 , N'Update payout status'
9212 , 0
9213 , 0
9214 , @tranModuleProgressCollID
9215 , @clientID
9216 UPDATE
9217 dbo.tbl_Payout
9218 SET
9219 Status = 2 -- Processing
9220 WHERE
9221 PayoutUID = @payoutUID
9222
9223 EXEC dbo.ufn_CreatePayoutNotification
9224 @currentLoggedInID
9225 , @payoutID
9226 , 1
9227 , N'Setting payout to "Processing status"'
9228 , 0
9229 , 0
9230 , @tranModuleProgressCollID
9231 , @clientID
9232 END
9233
9234 DECLARE @executeAnnualTran BIT= 0
9235
9236 IF EXISTS ( SELECT TOP 1
9237 TranMainID
9238 FROM
9239 trn.tbl_TranMain AS TTM
9240 INNER JOIN ccg.tbl_TaxTable AS TTT
9241 ON TTT.TaxTableID = TTM.TaxTableID
9242 WHERE
9243 PayoutID = @payoutID
9244 AND TTT.TaxTableType = 1
9245 AND TTT.TaxTableID = 28 )
9246 BEGIN
9247 SET @executeAnnualTran = 1
9248 END
9249
9250
9251 EXEC dbo.ufn_CreatePayoutNotification
9252 @currentLoggedInID
9253 , @payoutID
9254 , 2
9255 , N'Deleting TranMain'
9256 , 0
9257 , 0
9258 , @tranModuleProgressCollID
9259 , @clientID
9260
9261 DECLARE @rowCount INT
9262
9263 DELETE
9264 TM
9265 FROM
9266 trn.tbl_TranMain AS TM
9267 INNER JOIN dbo.tbl_Payout AS TP
9268 ON TM.PayoutID = TP.PayoutID
9269 WHERE
9270 PayoutUID = @payoutUID
9271
9272 SET @rowCount = @@ROWCOUNT
9273
9274 IF @rowCount = 0
9275 BEGIN
9276 RAISERROR (N'No record deleted on tbl_TranMain', 15, -1 );
9277 END
9278
9279
9280
9281 EXEC dbo.ufn_CreatePayoutNotification
9282 @currentLoggedInID
9283 , @payoutID
9284 , 2
9285 , N'Updating Payout'
9286 , 0
9287 , 0
9288 , @tranModuleProgressCollID
9289 , @clientID
9290 UPDATE
9291 dbo.tbl_Payout
9292 SET
9293 Status = 3 -- Open
9294 , IsLocked = 0
9295 , CanViewPayslip = 0
9296 WHERE
9297 PayoutUID = @payoutUID
9298
9299
9300 IF EXISTS ( SELECT
9301 1
9302 FROM
9303 dbo.tbl_Payout
9304 WHERE
9305 PayoutUID = @payoutUID
9306 AND (
9307 Status != 3 -- Open
9308 OR IsLocked != 0
9309 ) )
9310 BEGIN
9311 RAISERROR (N'Error in Updating Payout', 15, -1 );
9312 END
9313
9314----------ANNUAL TRANSACTION-----------------------
9315
9316 --IF @executeAnnualTran = 1
9317 -- BEGIN
9318
9319 -- EXEC dbo.ufn_CreatePayoutNotification
9320 -- @currentLoggedInID
9321 -- , @payoutID
9322 -- , 2
9323 -- , N'Executing Update Annual Transaction'
9324 -- , 0
9325 -- , 0
9326 -- , @tranModuleProgressCollID
9327
9328 -- EXEC tmp.usp_UpdateEmployeeTransactionByYearTable
9329 -- @ClientID = @clientID
9330 -- , -- bigint
9331 -- @Year = @year
9332 -- , -- int
9333 -- @CreatedByID = @currentLoggedInID -- bigint
9334
9335 -- EXEC dbo.ufn_CreatePayoutNotification
9336 -- @currentLoggedInID
9337 -- , @payoutID
9338 -- , 2
9339 -- , N'Update Annual Transaction Completed'
9340 -- , 0
9341 -- , 0
9342 -- , @tranModuleProgressCollID
9343 -- END
9344----------------------------------------------------
9345
9346
9347
9348 EXEC dbo.ufn_CreatePayoutNotification
9349 @currentLoggedInID
9350 , @payoutID
9351 , 14
9352 , N'Deleting Posted Transaction Completed'
9353 , 0
9354 , 1
9355 , @tranModuleProgressCollID
9356 , @clientID
9357 SELECT
9358 'Deleted'
9359 COMMIT
9360 END TRY
9361 BEGIN CATCH
9362
9363 SELECT
9364 ERROR_MESSAGE()
9365 DECLARE @err NVARCHAR(MAX) = 'Error: ' + REPLACE(ERROR_MESSAGE() , '''' , '"')
9366 DECLARE @tranModuleProgressCollID_val BIGINT = ISNULL(@tranModuleProgressCollID , 0)
9367 SELECT
9368 @tranModuleProgressCollID
9369 , 'error' err
9370 EXEC dbo.ufn_CreatePayoutNotification
9371 @currentLoggedInID
9372 , @payoutID
9373 , 15
9374 , @err
9375 , 0
9376 , @tranModuleProgressCollID_val
9377 , @clientID
9378 ROLLBACK
9379 END CATCH
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396GO
9397IF @@ERROR <> 0 SET NOEXEC ON
9398GO
9399PRINT N'Creating [rpt].[usp_ComputationAnnualizedTax_clientEmp2018_report_MWE]'
9400GO
9401CREATE PROC [rpt].[usp_ComputationAnnualizedTax_clientEmp2018_report_MWE]
9402 (
9403 @clientUID VARCHAR(MAX)
9404 , @clientEmpUIDs_client NVARCHAR(MAX)
9405 , @Year INT
9406 )
9407AS
9408 BEGIN
9409
9410 --REPORT SAME AS
9411 --Annualized Tax Computation (Payout)
9412 --Annualized Tax Computation (Employee)
9413 --Annualized Tax Computation (Active/Resigned)
9414
9415
9416
9417 --DECLARE @clientUID VARCHAR(MAX) = '1D103BCB-5D75-4438-9641-56A595251805' ;
9418 --DECLARE @clientEmpUIDs_client NVARCHAR(MAX) = N'8D3D410B-1DBF-460C-A156-1CD07C7BF382' ;
9419 --DECLARE @Year INT = 2020 ;
9420
9421 --DECLARE @clientUID VARCHAR(MAX) = '3d292e43-0d9b-4e48-ae17-10fc56f9e9e2'
9422 --DECLARE @clientEmpUIDs_client NVARCHAR(MAX) ='858abc14-d4b9-45f7-8b55-cc71f339c9b7'
9423 --DECLARE @Year INT = 2018 ;
9424
9425
9426
9427 DECLARE @clientEmpUIDList TABLE
9428 (
9429 clientEmpUID UNIQUEIDENTIFIER
9430 ) ;
9431 INSERT INTO @clientEmpUIDList
9432 SELECT [Data]
9433 FROM [dbo].[SplitByComma](@clientEmpUIDs_client) AS SBC ;
9434
9435
9436
9437 DECLARE @clientName VARCHAR(100) ;
9438 DECLARE @clientID INT ;
9439
9440 SET @clientID =
9441 (
9442 SELECT ClientID FROM dbo.tbl_Client WHERE ClientUID = @clientUID
9443 ) ;
9444 SET @clientName =
9445 (
9446 SELECT DISTINCT ClientName FROM dbo.tbl_Client WHERE ClientID = @clientID
9447 ) ;
9448
9449 IF
9450 (
9451 SELECT COUNT(*) FROM @clientEmpUIDList WHERE clientEmpUID IS NOT NULL
9452 ) = 0
9453 BEGIN
9454 INSERT INTO @clientEmpUIDList
9455 SELECT CAST(ClientEmpUID AS VARCHAR(50))
9456 FROM dbo.tbl_ClientEmp AS TCE
9457 WHERE TCE.ClientID = @clientID ;
9458 END ;
9459 DECLARE @annualizedTable TABLE
9460 (
9461 clientName VARCHAR(MAX)
9462 , clientEmpid BIGINT
9463 , ClientEmpUID NVARCHAR(36)
9464 , [Employee Number] VARCHAR(36)
9465 , [Employee Name] VARCHAR(MAX)
9466 , [TC] VARCHAR(10)
9467 , TaxExemptAmount DECIMAL(20, 2)
9468 , PayoutID BIGINT
9469 , [Basic Pay] DECIMAL(20, 2)
9470 , Overtime DECIMAL(20, 2)
9471 , [Other Taxable Income] DECIMAL(20, 2)
9472 , [Taxable Bonus] DECIMAL(20, 2)
9473 , [Gross Taxable Income] DECIMAL(20, 2)
9474 , [Witholding Tax] DECIMAL(20, 2)
9475 , [StatutoryDeduction] DECIMAL(20, 2)
9476 , [NonTaxable Income] DECIMAL(20, 2)
9477 , [Non Taxable Bonus] DECIMAL(20, 2)
9478 , [Receivables] DECIMAL(20, 2)
9479 , [DateHired] DATETIME
9480 , [DateSeparated] DATETIME
9481 , [TIN] NVARCHAR(255)
9482 , [Department] VARCHAR(MAX)
9483 , [year] INT
9484 , [month] INT
9485 , [freq] INT
9486 , [Previous Data Gross Taxable Income] DECIMAL(20, 2)
9487 , [Previous Data Statutory Deductions] DECIMAL(20, 2)
9488 , [Previous Data Withholding Tax] DECIMAL(20, 2)
9489 , [Previous Employer Gross Taxable Income] DECIMAL(20, 2)
9490 , [Previous Employer Statutory Deductions] DECIMAL(20, 2)
9491 , [Previous Employer Withholding Tax] DECIMAL(20, 2)
9492 , [Total Gross Pay] DECIMAL(20, 2)
9493 , [Total Statutory Deductions] DECIMAL(20, 2)
9494 , [Total Non Taxable Bonus] DECIMAL(20, 2)
9495 , [Total Other Non Taxable Income] DECIMAL(20, 2)
9496 , [Total Non Taxable Income] DECIMAL(20, 2)
9497 , [Total Taxable Income] DECIMAL(20, 2)
9498 , [Net Taxable income] DECIMAL(20, 2)
9499 , [DeductWith] DECIMAL(20, 2)
9500 , [Net Taxable income - DeductWith] DECIMAL(20, 2)
9501 , [Rate] DECIMAL(5, 2)
9502 , [Net Taxable income - DeductWith x Rate] DECIMAL(20, 2)
9503 , [AddWith] DECIMAL(20, 2)
9504 , [Tax due] DECIMAL(20, 2)
9505 , [Total Tax Withheld] DECIMAL(20, 2)
9506 , [Tax still due] DECIMAL(20, 2)
9507 , IsMWE TINYINT
9508 ) ;
9509
9510 INSERT INTO @annualizedTable
9511 SELECT @clientName ClientName
9512 , VED.ClientEmpID
9513 , VED.ClientEmpUID
9514 , M.ClientEmpCode [Employee Number]
9515 , M.FullName [Employee Name]
9516 , TTM_last.TaxExemptionCode [TC]
9517 , TTM_last.TaxExemptionAmount TaxExemptAmount
9518 , M.PayoutID
9519 , M.BasicPay [Basic Pay]
9520 , M.Overtime
9521 , M.OtherTaxableIncome [Other Taxable Income]
9522 , M.TaxableBonus [Taxable Bonus]
9523 , M.GrossTaxableIncome [Gross Taxable Income]
9524 , M.WitholdingTax [Witholding Tax]
9525 , IIF(FormulatedStatutoryDed.IsUsed = 1, M.FormulatedStatutoryDeduction, M.StatutoryDeduction)
9526 + M.AdditionalAllowableDeduction StatutoryDeduction
9527 , M.OtherNonTaxableIncome [NonTaxable Income]
9528 , M.NonTaxableBonus [Non Taxable Bonus]
9529 , M.TotalNonTaxableReceivableEarning [Receivables]
9530 , VED.HiredOn [DateHired]
9531 , ISNULL(VED.SeparatedOn, VED.HoldOn) [DateSeparated]
9532 , VED.TIN [TIN]
9533 , VED.DepartmentName [Department]
9534 , P.Year [year]
9535 , P.Month [month]
9536 , P.FreqID [freq]
9537 , 0 [Previous Data Gross Taxable Income]
9538 , 0 [Previous Data Statutory Deductions]
9539 , 0 [Previous Data Withholding Tax]
9540 , 0 [Previous Employer Gross Taxable Income]
9541 , 0 [Previous Employer Statutory Deductions]
9542 , 0 [Previous Employer Withholding Tax]
9543 , 0
9544 , 0
9545 , 0
9546 , 0
9547 , 0
9548 , 0
9549 , 0
9550 , 0
9551 , 0
9552 , 0
9553 , 0
9554 , 0
9555 , 0
9556 , 0
9557 , 0
9558 , M.IsMinimumWage
9559 FROM
9560 (
9561 SELECT TM_temp.TranMainID
9562 , TM_temp.ClientID
9563 , TM_temp.PayoutID
9564 , TM_temp.ClientEmpID
9565 , TM_temp.ClientEmpCode
9566 , TM_temp.FullName
9567 , TM_temp.TaxExemptionCode
9568 , TM_temp.TaxExemptionAmount
9569 , TM_temp.TaxTableBasisID
9570 , TM_temp.IsMinimumWage
9571 , TM_temp.FormulatedStatutoryDeduction
9572 , TM_temp.StatutoryDeduction
9573 , TM_temp.AdditionalAllowableDeduction
9574 , TM_temp.NonTaxableBonus
9575 , TM_temp.BasicPay
9576 , TM_temp.Overtime
9577 , TM_temp.OtherTaxableIncome
9578 , TM_temp.TaxableBonus
9579 , TM_temp.GrossTaxableIncome
9580 , TM_temp.WitholdingTax
9581 , TM_temp.OtherNonTaxableIncome
9582 , TM_temp.TotalNonTaxableReceivableEarning
9583 , FIRST_VALUE(TM_temp.TranMainID) OVER (PARTITION BY TM_temp.ClientID
9584 , TM_temp.ClientEmpID
9585 , TM_temp.PayoutYear
9586 ORDER BY TM_temp.CreatedOn DESC
9587 ) TranMainIDLast
9588 FROM trn.tbl_TranMain TM_temp
9589 WHERE TM_temp.ClientID = @clientID
9590 AND TM_temp.ClientEmpID IN (
9591 SELECT ClientEmpID
9592 FROM @clientEmpUIDList a
9593 INNER JOIN dbo.tbl_ClientEmp b
9594 ON b.ClientEmpUID = a.clientEmpUID
9595 )
9596 --AND TaxType = 'Compensation'
9597 AND TM_temp.TaxTypeID = 1
9598 AND TM_temp.PayoutYear = @Year
9599 --AND TM_temp.IsMinimumWage = 0
9600 ) AS M
9601 INNER JOIN dbo.tbl_Payout P
9602 ON P.PayoutID = M.PayoutID
9603 INNER JOIN ce.vw_EmpDetails AS VED
9604 ON VED.ClientEmpID = M.ClientEmpID
9605 CROSS APPLY
9606 (
9607 SELECT IIF(
9608 EXISTS
9609 (
9610 SELECT *
9611 FROM trn.tbl_TVariableExpression AS TVE
9612 INNER JOIN ceg.tbl_TaxTableBasis AS TTB
9613 ON TTB.VariableID = TVE.VariableID
9614 WHERE PayoutID = p.PayoutID
9615 AND TTB.TaxTableBasisID = M.TaxTableBasisID
9616 AND TVE.VariableID IN ( 20016 --Current - Net Taxable Income
9617 , 20064 --Basis - Annualized Tax
9618 ,30198 --Basis - Annualized Tax without Tax Exemption
9619 )
9620 )
9621 AND P.PayoutType != 3
9622 , 1
9623 , 0) IsUsed
9624 ) AS FormulatedStatutoryDed
9625
9626 --CROSS APPLY (
9627 -- SELECT
9628 -- IIF(EXISTS ( SELECT
9629 -- *
9630 -- FROM
9631 -- trn.tbl_TVariableExpression
9632 -- AS TVE
9633 -- WHERE
9634 -- PayoutID = P.PayoutID
9635 -- AND VariableID = 20016 )
9636 -- AND P.PayoutType ! = 3, 1, 0) IsUsed
9637 -- ) AS FormulatedStatutoryDed
9638 INNER JOIN trn.tbl_FTConfEmpDetails AS TFCED
9639 ON TFCED.TranMainID = M.TranMainID
9640 INNER JOIN trn.tbl_TranMain AS TTM_last
9641 ON TTM_last.TranMainID = M.TranMainIDLast
9642 WHERE M.ClientID = @clientID
9643 AND M.ClientEmpID IN (
9644 SELECT ClientEmpID
9645 FROM @clientEmpUIDList a
9646 INNER JOIN dbo.tbl_ClientEmp b
9647 ON b.ClientEmpUID = a.clientEmpUID
9648 )
9649 --AND TaxType = 'Compensation'
9650 AND TFCED.TaxTypeID = 1
9651 AND P.Year = @Year
9652 --AND M.IsMinimumWage = 0
9653 UNION
9654 SELECT @clientName
9655 , VED.ClientEmpID
9656 , ClientEmpUID
9657 , VED.ClientEmpCode [Employee Number]
9658 , VED.Fullname [Employee Name]
9659 , ISNULL(TTM_last.TaxExemptionCode, VED.TaxExemptCode) TaxExemptCode
9660 , ISNULL(TTM_last.TaxExemptionAmount, VED.TaxExemptAmount) TaxExemptAmount
9661 , NULL PayoutID
9662 , VPE.BasicPay
9663 , 0 Overtime
9664 , VPE.OtherTaxableIncome
9665 , VPE.TaxableBonus
9666 , VPE.GrossTaxableIncome
9667 , VPE.TaxWithheld
9668 , VPE.AllowableDeductions
9669 , VPE.OtherNonTaxableIncome + VPE.DeMinimis
9670 , VPE.NonTaxableBonus
9671 , NULL
9672 , VED.HiredOn [DateHired]
9673 , VED.SeparatedOn
9674 , VED.TIN
9675 , VED.DepartmentName
9676 , VPE.Year
9677 , 13
9678 , 1
9679 , VPE.GrossTaxableIncome
9680 , VPE.AllowableDeductions
9681 , VPE.TaxWithheld
9682 , NULL
9683 , NULL
9684 , NULL
9685 , 0
9686 , 0
9687 , 0
9688 , 0
9689 , 0
9690 , 0
9691 , 0
9692 , 0
9693 , 0
9694 , 0
9695 , 0
9696 , 0
9697 , 0
9698 , 0
9699 , 0
9700 , VPE.IsMinimumWage
9701 FROM ce.vw_EmpDetails AS VED
9702 INNER JOIN ce.tbl_PrevEmployment AS VPE
9703 ON VPE.ClientEmpID = VED.ClientEmpID
9704 CROSS APPLY
9705 (
9706 SELECT FIRST_VALUE(TTM.TranMainID) OVER (PARTITION BY TTM.ClientID
9707 , TTM.ClientEmpID
9708 , TTM.PayoutYear
9709 ORDER BY TTM.CreatedOn DESC
9710 ) TranMainIDLast
9711 FROM trn.tbl_TranMain AS TTM
9712 WHERE TTM.ClientEmpID = VPE.ClientEmpID
9713 AND TTM.TaxTypeID = 1
9714 AND TTM.PayoutYear = @Year
9715 --AND TTM.IsMinimumWage = 0
9716 ) tblTM_lastID
9717 INNER JOIN trn.tbl_TranMain AS TTM_last
9718 ON TTM_last.TranMainID = tblTM_lastID.TranMainIDLast
9719 WHERE VED.ClientEmpID IN (
9720 SELECT ClientEmpID
9721 FROM @clientEmpUIDList a
9722 INNER JOIN dbo.tbl_ClientEmp b
9723 ON b.ClientEmpUID = a.clientEmpUID
9724 )
9725 AND VPE.Year = @Year
9726 AND VPE.IsPrevBalances = 1
9727 AND VPE.TaxTypeID = 1
9728 --AND VPE.IsMinimumWage = 0
9729 UNION
9730 SELECT @clientName
9731 , VED.ClientEmpID
9732 , ClientEmpUID
9733 , VED.ClientEmpCode [Employee Number]
9734 , VED.Fullname [Employee Name]
9735 , ISNULL(TTM_last.TaxExemptionCode, VED.TaxExemptCode) TaxExemptCode
9736 , ISNULL(TTM_last.TaxExemptionAmount, VED.TaxExemptAmount) TaxExemptAmount
9737 , NULL PayoutID
9738 , VPE.BasicPay
9739 , 0 Overtime
9740 , VPE.OtherTaxableIncome
9741 , VPE.TaxableBonus
9742 , VPE.GrossTaxableIncome
9743 , VPE.TaxWithheld
9744 , VPE.AllowableDeductions
9745 , VPE.OtherNonTaxableIncome + VPE.DeMinimis
9746 , VPE.NonTaxableBonus
9747 , NULL
9748 , VED.HiredOn [DateHired]
9749 , VED.SeparatedOn
9750 , VED.TIN
9751 , VED.DepartmentName
9752 , VPE.Year
9753 , 14
9754 , 1
9755 , VPE.GrossTaxableIncome
9756 , VPE.AllowableDeductions
9757 , VPE.TaxWithheld
9758 , NULL
9759 , NULL
9760 , NULL
9761 , 0
9762 , 0
9763 , 0
9764 , 0
9765 , 0
9766 , 0
9767 , 0
9768 , 0
9769 , 0
9770 , 0
9771 , 0
9772 , 0
9773 , 0
9774 , 0
9775 , 0
9776 , VPE.IsMinimumWage
9777 FROM ce.vw_EmpDetails AS VED
9778 INNER JOIN ce.tbl_PrevEmployment AS VPE
9779 ON VPE.ClientEmpID = VED.ClientEmpID
9780 CROSS APPLY
9781 (
9782 SELECT FIRST_VALUE(TTM.TranMainID) OVER (PARTITION BY TTM.ClientID
9783 , TTM.ClientEmpID
9784 , TTM.PayoutYear
9785 ORDER BY TTM.CreatedOn DESC
9786 ) TranMainIDLast
9787 FROM trn.tbl_TranMain AS TTM
9788 WHERE TTM.ClientEmpID = VPE.ClientEmpID
9789 AND TTM.TaxTypeID = 1
9790 AND TTM.PayoutYear = @Year
9791 --AND TTM.IsMinimumWage = 0
9792 ) tblTM_lastID
9793 INNER JOIN trn.tbl_TranMain AS TTM_last
9794 ON TTM_last.TranMainID = tblTM_lastID.TranMainIDLast
9795 WHERE VED.ClientEmpID IN (
9796 SELECT ClientEmpID
9797 FROM @clientEmpUIDList a
9798 INNER JOIN dbo.tbl_ClientEmp b
9799 ON b.ClientEmpUID = a.clientEmpUID
9800 )
9801 AND VPE.Year = @Year
9802 AND VPE.IsPrevBalances = 0
9803 AND VPE.TaxTypeID = 1
9804 --AND VPE.IsMinimumWage = 0
9805 ORDER BY [month]
9806 , FreqID ;
9807
9808
9809 DECLARE @temp TABLE
9810 (
9811 ClientEmpID BIGINT
9812 , [Total Gross Pay] DECIMAL(20, 2)
9813 , [Total Statutory Deductions] DECIMAL(20, 2)
9814 , [Total Non Taxable Bonus] DECIMAL(20, 2)
9815 , [Total Other Non Taxable Income] DECIMAL(20, 2)
9816 , [Total Non Taxable Income] DECIMAL(20, 2)
9817 , [Total Taxable Income] DECIMAL(20, 2)
9818 , [Net Taxable income] DECIMAL(20, 2)
9819 , [Total Tax Withheld] DECIMAL(20, 2)
9820 ) ;
9821
9822 INSERT INTO @temp
9823 SELECT clientEmpid
9824 , SUM([Gross Taxable Income] + [NonTaxable Income] + [Non Taxable Bonus]) [Total Gross Pay]
9825 , SUM([StatutoryDeduction]) [Total Statutory Deductions]
9826 , SUM([Non Taxable Bonus]) [Total Non Taxable Bonus]
9827 , SUM([NonTaxable Income]) [Total Other Non Taxable Income]
9828 , SUM([StatutoryDeduction] + [Non Taxable Bonus] + [NonTaxable Income]) [Total Non Taxable Income]
9829 , SUM(([Gross Taxable Income] + [NonTaxable Income] + [Non Taxable Bonus])
9830 - ([StatutoryDeduction] + [Non Taxable Bonus] + [NonTaxable Income])
9831 ) [Total Taxable Income]
9832 --, SUM(( [Gross Taxable Income] + ISNULL([Previous Data Gross Taxable Income],0)
9833 -- + ISNULL([Previous Employer Gross Taxable Income],0) ) - ( StatutoryDeduction
9834 -- + ISNULL([Previous Data Statutory Deductions],0)
9835 -- + ISNULL([Previous Employer Statutory Deductions],0)
9836 , SUM(([Gross Taxable Income] - StatutoryDeduction)) - ba.TaxExemptAmount [Net Taxable income]
9837 , SUM([Witholding Tax]) [Total Tax Withheld]
9838 FROM @annualizedTable AS ba
9839 GROUP BY ba.clientEmpid
9840 , ba.TaxExemptAmount ;
9841
9842 UPDATE a
9843 SET a.[Total Gross Pay] = B.[Total Gross Pay]
9844 , a.[Total Statutory Deductions] = B.[Total Statutory Deductions]
9845 , a.[Total Non Taxable Bonus] = B.[Total Non Taxable Bonus]
9846 , a.[Total Other Non Taxable Income] = B.[Total Other Non Taxable Income]
9847 , a.[Total Non Taxable Income] = B.[Total Non Taxable Income]
9848 , a.[Total Taxable Income] = B.[Total Taxable Income]
9849 , a.[Net Taxable income] = B.[Net Taxable income]
9850 , a.[Total Tax Withheld] = B.[Total Tax Withheld]
9851
9852
9853 --SELECT *
9854 FROM
9855 (
9856 SELECT clientEmpid
9857 , [Total Gross Pay]
9858 , [Total Statutory Deductions]
9859 , [Total Non Taxable Bonus]
9860 , [Total Other Non Taxable Income]
9861 , [Total Non Taxable Income]
9862 , [Total Taxable Income]
9863 , [Net Taxable income]
9864 , [Total Tax Withheld]
9865 FROM @annualizedTable
9866 ) a
9867 INNER JOIN @temp B
9868 ON a.clientEmpid = B.ClientEmpID ;
9869
9870
9871 IF @Year < 2018
9872 BEGIN
9873 UPDATE @annualizedTable
9874 SET [DeductWith] = CASE
9875 WHEN [Net Taxable income] >= 500000 THEN
9876 500000
9877 WHEN [Net Taxable income] >= 250000 THEN
9878 250000
9879 WHEN [Net Taxable income] >= 140000 THEN
9880 140000
9881 WHEN [Net Taxable income] >= 70000 THEN
9882 70000
9883 WHEN [Net Taxable income] >= 30000 THEN
9884 30000
9885 WHEN [Net Taxable income] >= 10000 THEN
9886 10000
9887 ELSE
9888 0
9889 END
9890 , [Rate] = CASE
9891 WHEN [Net Taxable income] >= 500000 THEN
9892 .32
9893 WHEN [Net Taxable income] >= 250000 THEN
9894 .3
9895 WHEN [Net Taxable income] >= 140000 THEN
9896 .25
9897 WHEN [Net Taxable income] >= 70000 THEN
9898 .2
9899 WHEN [Net Taxable income] >= 30000 THEN
9900 .15
9901 WHEN [Net Taxable income] >= 10000 THEN
9902 .1
9903 WHEN [Net Taxable income] <= 0 THEN
9904 0
9905 ELSE
9906 .05
9907 END
9908 , [AddWith] = CASE
9909 WHEN [Net Taxable income] >= 500000 THEN
9910 125000
9911 WHEN [Net Taxable income] >= 250000 THEN
9912 50000
9913 WHEN [Net Taxable income] >= 140000 THEN
9914 22500
9915 WHEN [Net Taxable income] >= 70000 THEN
9916 8500
9917 WHEN [Net Taxable income] >= 30000 THEN
9918 2500
9919 WHEN [Net Taxable income] >= 10000 THEN
9920 500
9921 ELSE
9922 .0
9923 END
9924 , [Net Taxable income - DeductWith] = ([Net Taxable income] - [DeductWith]) ;
9925
9926 END ;
9927 ELSE IF @Year >= 2018
9928 BEGIN
9929 UPDATE @annualizedTable
9930 SET [DeductWith] = CASE
9931 WHEN [Net Taxable income] >= 8000000 THEN
9932 8000000
9933 WHEN [Net Taxable income] >= 2000000 THEN
9934 2000000
9935 WHEN [Net Taxable income] >= 800000 THEN
9936 800000
9937 WHEN [Net Taxable income] >= 400000 THEN
9938 400000
9939 WHEN [Net Taxable income] >= 250000 THEN
9940 250000
9941 ELSE
9942 0
9943 END
9944 , [Rate] = CASE
9945 WHEN [Net Taxable income] >= 8000000 THEN
9946 .35
9947 WHEN [Net Taxable income] >= 2000000 THEN
9948 .32
9949 WHEN [Net Taxable income] >= 800000 THEN
9950 .30
9951 WHEN [Net Taxable income] >= 400000 THEN
9952 .25
9953 WHEN [Net Taxable income] >= 250000 THEN
9954 .20
9955 ELSE
9956 0
9957 END
9958 , [AddWith] = CASE
9959 WHEN [Net Taxable income] >= 8000000 THEN
9960 2410000
9961 WHEN [Net Taxable income] >= 2000000 THEN
9962 490000
9963 WHEN [Net Taxable income] >= 800000 THEN
9964 130000
9965 WHEN [Net Taxable income] >= 400000 THEN
9966 30000
9967 ELSE
9968 0
9969 END
9970 , [Net Taxable income - DeductWith] = ([Net Taxable income] - [DeductWith]) ;
9971
9972 END ;
9973 UPDATE @annualizedTable
9974 SET [Net Taxable income - DeductWith x Rate] = CAST((([Net Taxable income] - [DeductWith]) * [Rate]) AS DECIMAL(20, 2)) ;
9975 UPDATE @annualizedTable
9976 SET [Tax due] = (CAST((([Net Taxable income] - [DeductWith]) * [Rate]) AS DECIMAL(20, 2)) + [AddWith]) ;
9977 UPDATE @annualizedTable
9978 SET [Tax still due] = ((CAST((([Net Taxable income] - [DeductWith]) * [Rate]) AS DECIMAL(20, 2)) + [AddWith])
9979 - [Total Tax Withheld]
9980 ) ;
9981
9982
9983
9984 SELECT *
9985 FROM @annualizedTable ;
9986
9987
9988
9989
9990 END ;
9991
9992
9993
9994--SELECT * FROM ce.vw__CEEarning VCE
9995GO
9996IF @@ERROR <> 0 SET NOEXEC ON
9997GO
9998PRINT N'Altering [trn].[usp_DeleteTransaction]'
9999GO
10000ALTER PROCEDURE [trn].[usp_DeleteTransaction]
10001(
10002 @payoutUID UNIQUEIDENTIFIER,
10003 @currentLoggedInUID UNIQUEIDENTIFIER,
10004 @tranModuleProgressCollID BIGINT -- NULL:Generate TranModuleProgressCollID
10005)
10006AS --DECLARE @payoutUID UNIQUEIDENTIFIER = '4e62fe7f-b2cb-4fec-8af0-86a01efd7e70'
10007
10008DECLARE @Devs TABLE
10009(
10010 EmpUID UNIQUEIDENTIFIER
10011);
10012
10013INSERT INTO @Devs
10014SELECT TE.EmpUID
10015FROM ar.tbl__GTAdmin AS TGA
10016 INNER JOIN dbo.tbl_Emp AS TE
10017 ON TE.EmpID = TGA.EmpID
10018WHERE TGA.EmpID NOT IN ( 133581, 135181, 499525, 502287, 192012, 499525 );
10019
10020-------- Comment this area to allow deletion of transaction ------
10021IF @currentLoggedInUID NOT IN (
10022 SELECT * FROM @Devs AS D
10023 )
10024BEGIN
10025 UPDATE dbo.tbl_Payout
10026 SET Status = 3,
10027 IsLocked = 0
10028 WHERE PayoutUID = @payoutUID
10029 AND Status = 1;
10030 SELECT 'Not Allowed';
10031 RETURN;
10032END;
10033
10034
10035-------- Comment this area to allow deletion of transaction ------
10036
10037ELSE
10038BEGIN
10039
10040
10041 DECLARE @currentLoggedInID BIGINT; -----TODO-----
10042 --SET @currentLoggedInID = 1
10043
10044
10045
10046 DECLARE @payoutID BIGINT;
10047 DECLARE @payoutType TINYINT;
10048 DECLARE @clientID BIGINT;
10049
10050 -- insert error if posted here
10051
10052 -- -----------------
10053
10054 SELECT @payoutID = PayoutID,
10055 @payoutType = PayoutType,
10056 @currentLoggedInID = E.EmpID,
10057 @clientID = P.ClientID
10058 FROM dbo.tbl_Payout AS P
10059 INNER JOIN dbo.tbl_Emp AS E
10060 ON E.EmpUID = @currentLoggedInUID
10061 WHERE PayoutUID = @payoutUID;
10062
10063 --DECLARE @tranModuleProgressCollID BIGINT
10064 IF @tranModuleProgressCollID IS NULL
10065 BEGIN
10066 INSERT INTO trn.tbl_TranModuleProgressColl
10067 (
10068 PayoutID,
10069 TransactionMethodType,
10070 CreatedOn,
10071 CreatedByID
10072 )
10073 VALUES
10074 ( @payoutID, 8, -- DELETE
10075 -- PayoutID - bigint
10076 GETDATE(), -- CreatedOn - datetime
10077 @currentLoggedInID -- CreatedByID - bigint
10078 );
10079 SET @tranModuleProgressCollID = SCOPE_IDENTITY();
10080 END;
10081
10082 EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
10083 @payoutID,
10084 1,
10085 N'Deleting Transaction Initialized',
10086 0,
10087 1,
10088 @tranModuleProgressCollID,
10089 @clientID;
10090
10091 BEGIN TRAN;
10092 BEGIN TRY
10093 DELETE FROM trn.tbl_TransactionInfo
10094 WHERE PayoutID = @payoutID;
10095
10096 DELETE FROM trn.tbl_TransactionInfoBonus
10097 WHERE PayoutID = @payoutID;
10098
10099 --DELETE
10100 -- TMP2
10101 --FROM
10102 -- trn.tbl_TranModuleProgress AS TMP2
10103 -- INNER JOIN dbo.tbl_Payout AS P
10104 -- ON P.PayoutID = TMP2.PID
10105 --WHERE
10106 -- PayoutUID = @payoutUID
10107
10108 DELETE TM
10109 FROM trn.tbl_TranMain AS TM
10110 WHERE TM.PayoutID = @payoutID;
10111
10112 DELETE TBI
10113 FROM trn.tbl_TBankInfo AS TBI
10114 INNER JOIN trn.tbl_TranRef AS TR
10115 ON TR.TranRefID = TBI.TranRefID
10116 WHERE PayoutID = @payoutID;
10117
10118 DELETE TBI
10119 FROM trn.tbl_TBasicPay AS TBI
10120 INNER JOIN trn.tbl_TranRef AS TR
10121 ON TR.TranRefID = TBI.TranRefID
10122 WHERE PayoutID = @payoutID;
10123
10124 DELETE TBP
10125 FROM trn.tbl_TEarn AS TBP
10126 INNER JOIN trn.tbl_TranRef AS TR
10127 ON TR.TranRefID = TBP.TranRefID
10128 WHERE PayoutID = @payoutID;
10129
10130 --DELETE TCE
10131 --FROM trn.tbl_TConfEmp AS TCE
10132 -- INNER JOIN trn.tbl_TranRef AS TR ON TR.TranRefID = TCE.TranRefID
10133 --WHERE PayoutID = @payoutID
10134
10135
10136
10137 DELETE TR
10138 FROM trn.tbl_TranRef AS TR
10139 WHERE PayoutID = @payoutID;
10140
10141 DELETE FROM tmp.tbl_Batch
10142 WHERE PayoutID = @payoutID;
10143
10144 IF @payoutType = 1
10145 BEGIN
10146 UPDATE dbo.tbl_Payout
10147 SET Status = 0,
10148 IsLocked = 0
10149 WHERE PayoutUID = @payoutUID;
10150 END;
10151 ELSE
10152 BEGIN
10153 DELETE FROM dbo.tbl_Payout
10154 WHERE PayoutID = @payoutID;
10155 END;
10156
10157 SELECT 'Done';
10158 COMMIT;
10159 END TRY
10160 BEGIN CATCH
10161 SELECT ERROR_MESSAGE();
10162 DECLARE @err NVARCHAR(MAX) = 'Error: ' + REPLACE(ERROR_MESSAGE(), '''', '"');
10163 EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
10164 @payoutID,
10165 15,
10166 @err,
10167 0,
10168 1,
10169 @tranModuleProgressCollID,
10170 @clientID;
10171
10172 ROLLBACK;
10173 END CATCH;
10174
10175 EXEC dbo.ufn_CreatePayoutNotification @currentLoggedInID,
10176 @payoutID,
10177 14,
10178 N'Deleting Posted Transaction Completed',
10179 0,
10180 1,
10181 @tranModuleProgressCollID,
10182 @clientID;
10183END;
10184GO
10185IF @@ERROR <> 0 SET NOEXEC ON
10186GO
10187PRINT N'Creating [rpt].[usp_PayrollEntry_SGS_TextFile]'
10188GO
10189CREATE PROC [rpt].[usp_PayrollEntry_SGS_TextFile]
10190(
10191 @payoutUID UNIQUEIDENTIFIER,
10192 @inputText NVARCHAR(100),
10193 @inputTextArea NVARCHAR(100)
10194)
10195AS
10196BEGIN
10197 --DECLARE @payoutUID UNIQUEIDENTIFIER = 'FDEC72AE-80B0-42F2-AF97-424A530A0CA1'; -- Test Payout
10198 --DECLARE @inputText NVARCHAR(100) = N'Payroll Feb 2/2020',
10199 -- @inputTextArea NVARCHAR(100) = N'GBS_0229';
10200
10201 DECLARE @batchName NVARCHAR(100),
10202 @journalEntryName NVARCHAR(100);
10203
10204 SELECT @batchName = @inputText,
10205 @journalEntryName = @inputTextArea;
10206
10207 DECLARE @payoutID BIGINT,
10208 @clientID BIGINT,
10209 @clientSGSCode NVARCHAR(50),
10210 @payoutDate DATE;
10211
10212 -- Retrieving payout details
10213 SELECT @payoutID = TP.PayoutID, @payoutDate = TP.PayDate
10214 FROM dbo.tbl_Payout AS TP
10215 WHERE TP.PayoutUID = @payoutUID;
10216
10217 -- Retrieving client details
10218 SELECT @clientID = TC2.ClientID
10219 FROM dbo.tbl_Payout AS TP
10220 INNER JOIN dbo.tbl_Client AS TC2
10221 ON TC2.ClientID = TP.ClientID
10222 WHERE TP.PayoutID = @payoutID;
10223
10224 -- Setting up SGS Company Code
10225 IF @clientID = 40319
10226 BEGIN
10227 SET @clientSGSCode = N'F671504'; -- SGS Gulf Limited
10228
10229 END;
10230 ELSE IF @clientID = 40321
10231 BEGIN
10232 SET @clientSGSCode = N'F641401'; -- SGS Global Business Services Asia, Inc.
10233 END;
10234
10235 -- Temporary Table Declarations (START) --
10236
10237 --CREATE TABLE #tempTableCredit
10238 DECLARE @tempTableCredit TABLE
10239 (
10240 BooksName NVARCHAR(30) NULL,
10241 JournalSourceName NVARCHAR(25) NULL,
10242 JournalCategoryName NVARCHAR(25) NULL,
10243 JournalAccountingDate NVARCHAR(8) NULL,
10244 JournalCurrencyCode NVARCHAR(15) NULL,
10245 PeriodAccountingDate NVARCHAR(15) NULL,
10246 JournalDebitAmount DECIMAL(18, 2) NULL,
10247 JournalCreditAmount DECIMAL(18, 2) NULL,
10248 SGSCompanyCode NVARCHAR(25) NULL,
10249 GlobalAccount NVARCHAR(25) NULL,
10250 LocalSubAccount NVARCHAR(25) NULL,
10251 Activity NVARCHAR(25) NULL,
10252 CostCenter NVARCHAR(25) NULL,
10253 CostLevel NVARCHAR(25) NULL,
10254 Location NVARCHAR(25) NULL,
10255 Intercompany NVARCHAR(7) NULL,
10256 Project NVARCHAR(25) NULL,
10257 StatutoryCode NVARCHAR(1) NULL,
10258 Reserved1 NVARCHAR(8) NULL,
10259 Management NVARCHAR(8) NULL
10260 );
10261
10262 --CREATE TABLE #tempTableDebit
10263 DECLARE @tempTableDebit TABLE
10264 (
10265 BooksName NVARCHAR(30) NULL,
10266 JournalSourceName NVARCHAR(25) NULL,
10267 JournalCategoryName NVARCHAR(25) NULL,
10268 JournalAccountingDate NVARCHAR(8) NULL,
10269 JournalCurrencyCode NVARCHAR(15) NULL,
10270 PeriodAccountingDate NVARCHAR(15) NULL,
10271 JournalDebitAmount DECIMAL(18, 2) NULL,
10272 JournalCreditAmount DECIMAL(18, 2) NULL,
10273 SGSCompanyCode NVARCHAR(25) NULL,
10274 GlobalAccount NVARCHAR(25) NULL,
10275 LocalSubAccount NVARCHAR(25) NULL,
10276 Activity NVARCHAR(25) NULL,
10277 CostCenter NVARCHAR(25) NULL,
10278 CostLevel NVARCHAR(25) NULL,
10279 Location NVARCHAR(25) NULL,
10280 Intercompany NVARCHAR(7) NULL,
10281 Project NVARCHAR(25) NULL,
10282 StatutoryCode NVARCHAR(1) NULL,
10283 Reserved1 NVARCHAR(8) NULL,
10284 Management NVARCHAR(8) NULL
10285 );
10286
10287 --CREATE TABLE #tempTablePayrollEntry
10288 DECLARE @tempTablePayrollEntry TABLE
10289 (
10290 BooksName NVARCHAR(30) NULL,
10291 JournalSourceName NVARCHAR(25) NULL,
10292 JournalCategoryName NVARCHAR(25) NULL,
10293 JournalAccountingDate NVARCHAR(8) NULL,
10294 JournalCurrencyCode NVARCHAR(15) NULL,
10295 PeriodAccountingDate NVARCHAR(15) NULL,
10296 JournalDebitAmount DECIMAL(18, 2) NULL,
10297 JournalCreditAmount DECIMAL(18, 2) NULL,
10298 SGSCompanyCode NVARCHAR(25) NULL,
10299 GlobalAccount NVARCHAR(25) NULL,
10300 LocalSubAccount NVARCHAR(25) NULL,
10301 Activity NVARCHAR(25) NULL,
10302 CostCenter NVARCHAR(25) NULL,
10303 CostLevel NVARCHAR(25) NULL,
10304 Location NVARCHAR(25) NULL,
10305 Intercompany NVARCHAR(7) NULL,
10306 Project NVARCHAR(25) NULL,
10307 StatutoryCode NVARCHAR(1) NULL,
10308 Reserved1 NVARCHAR(8) NULL,
10309 Management NVARCHAR(8) NULL
10310 );
10311
10312 DECLARE @textFileResult TABLE
10313 (
10314 ID INT IDENTITY,
10315 Details NVARCHAR(MAX) NOT NULL
10316 );
10317
10318 DECLARE @finalResult TABLE
10319 (
10320 FinalResult NVARCHAR(MAX)
10321 );
10322
10323 -- Temporary Table Declarations (END) --
10324
10325
10326 INSERT INTO @tempTablePayrollEntry
10327 (
10328 BooksName,
10329 JournalSourceName,
10330 JournalCategoryName,
10331 JournalAccountingDate,
10332 JournalCurrencyCode,
10333 PeriodAccountingDate,
10334 JournalDebitAmount,
10335 JournalCreditAmount,
10336 SGSCompanyCode,
10337 GlobalAccount,
10338 LocalSubAccount,
10339 Activity,
10340 CostCenter,
10341 CostLevel,
10342 Location,
10343 Intercompany,
10344 Project,
10345 StatutoryCode,
10346 Reserved1,
10347 Management
10348 )
10349 SELECT 'PH_' + @clientSGSCode + '_SOB', -- Partially Correct Data
10350 'External Journal', -- Correct Data
10351 'Payroll', -- Correct Data
10352 REPLACE(CONVERT(CHAR(10), GETDATE(), 103), '/', ''), -- Correct Data
10353 'PHP', -- Correct Data
10354 FORMAT(@payoutDate, 'MMM-yy'), -- Correct Data
10355 UPES.Debit, -- Should be Correct Data
10356 UPES.Credit, -- Should be Correct Data
10357 @clientSGSCode, -- SGS Company Code
10358 UPES.AcctChartNo, -- GL Account
10359 ISNULL(UPES.SubAcctChartCode, '0000000'), -- Local Sub Account
10360 ISNULL( UPES.Activity,
10361 (
10362 SELECT SBC.Data
10363 FROM dbo.SplitByComma(TS.AcctChart) AS SBC
10364 ORDER BY SBC.Data OFFSET 0 ROWS FETCH FIRST 1 ROWS ONLY
10365 )
10366 ) Activity, -- Activity
10367 ISNULL( UPES.CostCenter,
10368 (
10369 SELECT SBC.Data
10370 FROM dbo.SplitByComma(TS.AcctChart) AS SBC
10371 ORDER BY SBC.Data OFFSET 3 ROWS FETCH FIRST 1 ROWS ONLY
10372 )
10373 ) CostCenter, -- Cost Center
10374 ISNULL( UPES.CostLevel,
10375 (
10376 SELECT *
10377 FROM dbo.SplitByComma(TS.AcctChart) AS SBC
10378 ORDER BY SBC.Data OFFSET 1 ROWS FETCH FIRST 1 ROWS ONLY
10379 )
10380 ) CostLevel, -- Cost Level
10381 ISNULL( UPES.Location,
10382 (
10383 SELECT *
10384 FROM dbo.SplitByComma(TS.AcctChart) AS SBC
10385 ORDER BY SBC.Data OFFSET 4 ROWS FETCH FIRST 1 ROWS ONLY
10386 )
10387 ) Location, -- Location
10388 '0000000', -- Intercompany
10389 IIF(LEN(UPES.SiteCode) > 7, REPLACE(UPES.SiteCode, RIGHT(UPES.SiteCode, 2), ''), UPES.SiteCode) SiteCode, -- Project
10390 'B', -- Statutory Code
10391 ISNULL(NULL, '000000'), -- Reserved 1
10392 ISNULL( UPES.Management,
10393 (
10394 SELECT *
10395 FROM dbo.SplitByComma(TS.AcctChart) AS SBC
10396 ORDER BY SBC.Data OFFSET 2 ROWS FETCH FIRST 1 ROWS ONLY
10397 )
10398 ) Management -- Management
10399 FROM rpt.ufn_PayrollEntry_SGS(@payoutUID) AS UPES
10400 INNER JOIN cc.tbl_Site AS TS
10401 ON TS.SiteID = UPES.SiteID;
10402
10403
10404 INSERT INTO @tempTableCredit
10405 (
10406 BooksName,
10407 JournalSourceName,
10408 JournalCategoryName,
10409 JournalAccountingDate,
10410 JournalCurrencyCode,
10411 PeriodAccountingDate,
10412 JournalDebitAmount,
10413 JournalCreditAmount,
10414 SGSCompanyCode,
10415 GlobalAccount,
10416 LocalSubAccount,
10417 Activity,
10418 CostCenter,
10419 CostLevel,
10420 Location,
10421 Intercompany,
10422 Project,
10423 StatutoryCode,
10424 Reserved1,
10425 Management
10426 )
10427 SELECT TTPE.BooksName,
10428 TTPE.JournalSourceName,
10429 TTPE.JournalCategoryName,
10430 TTPE.JournalAccountingDate,
10431 TTPE.JournalCurrencyCode,
10432 TTPE.PeriodAccountingDate,
10433 TTPE.JournalDebitAmount,
10434 TTPE.JournalCreditAmount,
10435 TTPE.SGSCompanyCode,
10436 TTPE.GlobalAccount,
10437 TTPE.LocalSubAccount,
10438 TTPE.Activity,
10439 TTPE.CostCenter,
10440 TTPE.CostLevel,
10441 TTPE.Location,
10442 TTPE.Intercompany,
10443 TTPE.Project,
10444 TTPE.StatutoryCode,
10445 TTPE.Reserved1,
10446 TTPE.Management
10447 FROM @tempTablePayrollEntry AS TTPE
10448 WHERE TTPE.JournalCreditAmount IS NOT NULL
10449 AND TTPE.JournalDebitAmount IS NULL;
10450
10451 INSERT INTO @tempTableDebit
10452 (
10453 BooksName,
10454 JournalSourceName,
10455 JournalCategoryName,
10456 JournalAccountingDate,
10457 JournalCurrencyCode,
10458 PeriodAccountingDate,
10459 JournalDebitAmount,
10460 JournalCreditAmount,
10461 SGSCompanyCode,
10462 GlobalAccount,
10463 LocalSubAccount,
10464 Activity,
10465 CostCenter,
10466 CostLevel,
10467 Location,
10468 Intercompany,
10469 Project,
10470 StatutoryCode,
10471 Reserved1,
10472 Management
10473 )
10474 SELECT TTPE.BooksName,
10475 TTPE.JournalSourceName,
10476 TTPE.JournalCategoryName,
10477 TTPE.JournalAccountingDate,
10478 TTPE.JournalCurrencyCode,
10479 TTPE.PeriodAccountingDate,
10480 TTPE.JournalDebitAmount,
10481 TTPE.JournalCreditAmount,
10482 TTPE.SGSCompanyCode,
10483 TTPE.GlobalAccount,
10484 TTPE.LocalSubAccount,
10485 TTPE.Activity,
10486 TTPE.CostCenter,
10487 TTPE.CostLevel,
10488 TTPE.Location,
10489 TTPE.Intercompany,
10490 TTPE.Project,
10491 TTPE.StatutoryCode,
10492 TTPE.Reserved1,
10493 TTPE.Management
10494 FROM @tempTablePayrollEntry AS TTPE
10495 WHERE TTPE.JournalCreditAmount IS NULL
10496 AND TTPE.JournalDebitAmount IS NOT NULL;
10497
10498
10499
10500 INSERT INTO @textFileResult
10501 SELECT CONCAT(
10502 FinalResult.BooksName,
10503 CHAR(9),
10504 FinalResult.JournalSourceName,
10505 CHAR(9),
10506 FinalResult.JournalCategoryName,
10507 CHAR(9),
10508 FinalResult.[Group Reference],
10509 CHAR(9),
10510 FinalResult.JournalAccountingDate,
10511 CHAR(9),
10512 FinalResult.JournalCurrencyCode,
10513 CHAR(9),
10514 FinalResult.PeriodAccountingDate,
10515 CHAR(9),
10516 FinalResult.JournalDebitAmount,
10517 CHAR(9),
10518 FinalResult.JournalCreditAmount,
10519 CHAR(9),
10520 FinalResult.SGSCompanyCode,
10521 CHAR(9),
10522 FinalResult.GlobalAccount,
10523 CHAR(9),
10524 FinalResult.LocalSubAccount,
10525 CHAR(9),
10526 FinalResult.Activity,
10527 CHAR(9),
10528 FinalResult.CostCenter,
10529 CHAR(9),
10530 FinalResult.CostLevel,
10531 CHAR(9),
10532 FinalResult.Location,
10533 CHAR(9),
10534 FinalResult.Intercompany,
10535 CHAR(9),
10536 FinalResult.Project,
10537 CHAR(9),
10538 FinalResult.StatutoryCode,
10539 CHAR(9),
10540 FinalResult.Reserved1,
10541 CHAR(9),
10542 FinalResult.Management,
10543 CHAR(9),
10544 FinalResult.[Currency Conversion Type],
10545 CHAR(9),
10546 FinalResult.[Conversion Rate],
10547 CHAR(9),
10548 FinalResult.[Debit Functional Currency],
10549 CHAR(9),
10550 FinalResult.[Credit Functional Currency],
10551 CHAR(9),
10552 FinalResult.[Batch Name],
10553 CHAR(9),
10554 FinalResult.[Batch Description],
10555 CHAR(9),
10556 FinalResult.[Journal Entry Name],
10557 CHAR(9),
10558 FinalResult.[Journal Entry Description],
10559 CHAR(9),
10560 FinalResult.[Journal Entry Reference],
10561 CHAR(9),
10562 FinalResult.[Journal Entry Reversal Flag],
10563 CHAR(9),
10564 FinalResult.[Journal Entry Reversal Method],
10565 CHAR(9),
10566 FinalResult.[Journal Entry Line Description],
10567 CHAR(9),
10568 FinalResult.[Reconciliation Reference],
10569 CHAR(9),
10570 FinalResult.Reference21,
10571 CHAR(9),
10572 FinalResult.Reference22,
10573 CHAR(9),
10574 FinalResult.Reference23,
10575 CHAR(9),
10576 FinalResult.Reference24,
10577 CHAR(9),
10578 FinalResult.Reference25,
10579 CHAR(9),
10580 FinalResult.Reference26,
10581 CHAR(9),
10582 FinalResult.Reference27,
10583 CHAR(9),
10584 FinalResult.Reference28,
10585 CHAR(9),
10586 FinalResult.Reference29,
10587 CHAR(9),
10588 FinalResult.Reference30,
10589 CHAR(9),
10590 FinalResult.[Currency Conversion Date],
10591 CHAR(9),
10592 FinalResult.[Stat Amount],
10593 CHAR(9),
10594 FinalResult.Context,
10595 CHAR(9),
10596 FinalResult.Attribute1,
10597 CHAR(9),
10598 FinalResult.Attribute2,
10599 CHAR(9),
10600 FinalResult.Attribute3,
10601 CHAR(9),
10602 FinalResult.Attribute4,
10603 CHAR(9),
10604 FinalResult.Attribute5,
10605 CHAR(9),
10606 FinalResult.Attribute6,
10607 CHAR(9),
10608 FinalResult.Attribute7,
10609 CHAR(9),
10610 FinalResult.Attribute8,
10611 CHAR(9),
10612 FinalResult.Attribute9,
10613 CHAR(9),
10614 FinalResult.Attribute10,
10615 CHAR(9),
10616 FinalResult.Attribute11,
10617 CHAR(9),
10618 FinalResult.Attribute12,
10619 CHAR(9),
10620 FinalResult.Attribute13,
10621 CHAR(9),
10622 FinalResult.Attribute14,
10623 CHAR(9),
10624 FinalResult.Attribute15,
10625 CHAR(9),
10626 FinalResult.Attribute16,
10627 CHAR(9),
10628 FinalResult.Attribute17,
10629 CHAR(9),
10630 FinalResult.Attribute18,
10631 CHAR(9),
10632 FinalResult.Attribute19,
10633 CHAR(9),
10634 FinalResult.Attribute20
10635 )
10636 FROM
10637 (
10638 SELECT Result.BooksName,
10639 Result.JournalSourceName,
10640 Result.JournalCategoryName,
10641 '' [Group Reference], -- Group reference
10642 Result.JournalAccountingDate,
10643 Result.JournalCurrencyCode,
10644 Result.PeriodAccountingDate,
10645 Result.JournalDebitAmount,
10646 Result.JournalCreditAmount,
10647 Result.SGSCompanyCode,
10648 Result.GlobalAccount,
10649 IIF(CHARINDEX('-',Result.LocalSubAccount) >= 7, REPLACE(Result.LocalSubAccount, RIGHT(Result.LocalSubAccount, 2), ''), Result.LocalSubAccount) LocalSubAccount,
10650 Result.Activity,
10651 Result.CostCenter,
10652 Result.CostLevel,
10653 Result.Location,
10654 Result.Intercompany,
10655 Result.Project,
10656 Result.StatutoryCode,
10657 Result.Reserved1,
10658 Result.Management,
10659 '' [Currency Conversion Type], -- Currency conversion type
10660 '' [Conversion Rate], -- Conversion rate
10661 '' [Debit Functional Currency], -- Debit function currency
10662 '' [Credit Functional Currency], -- Credit functional currency
10663 @batchName [Batch Name], -- Batch name
10664 NULL [Batch Description], -- Batch description
10665 @journalEntryName [Journal Entry Name], -- Journal Entry Name
10666 '' [Journal Entry Description], -- Journal entry description
10667 '' [Journal Entry Reference], -- Journal entry reference
10668 '' [Journal Entry Reversal Flag], -- Journal Entry Reversal Flag
10669 '' [Journal Entry Reversal Method], -- Journal entry reversal method
10670 '' [Journal Entry Line Description], -- Journal entry line description
10671 '' [Reconciliation Reference], -- Reconciliation reference
10672 '' [Reference21], -- Reference21
10673 '' [Reference22], -- Reference22
10674 '' [Reference23], -- Reference23
10675 '' [Reference24], -- Reference24
10676 '' [Reference25], -- Reference25
10677 '' [Reference26], -- Reference26
10678 '' [Reference27], -- Reference27
10679 '' [Reference28], -- Reference28
10680 '' [Reference29], -- Reference29
10681 '' [Reference30], -- Reference30
10682 '' [Currency Conversion Date], -- Currency conversion date
10683 '' [Stat Amount], -- Stat amount
10684 '' [Context], -- Context
10685 '' [Attribute1], -- Attribute1
10686 '' [Attribute2], -- Attribute2
10687 '' [Attribute3], -- Attribute3
10688 '' [Attribute4], -- Attribute4
10689 '' [Attribute5], -- Attribute5
10690 '' [Attribute6], -- Attribute6
10691 '' [Attribute7], -- Attribute7
10692 '' [Attribute8], -- Attribute8
10693 '' [Attribute9], -- Attribute9
10694 '' [Attribute10], -- Attribute10
10695 '' [Attribute11], -- Attribute11
10696 '' [Attribute12], -- Attribute12
10697 '' [Attribute13], -- Attribute13
10698 '' [Attribute14], -- Attribute14
10699 '' [Attribute15], -- Attribute15
10700 '' [Attribute16], -- Attribute16
10701 '' [Attribute17], -- Attribute17
10702 '' [Attribute18], -- Attribute18
10703 '' [Attribute19], -- Attribute19
10704 '' [Attribute20] -- Attribute20
10705 FROM
10706 (
10707 SELECT TTD.BooksName, -- Set of books name
10708 TTD.JournalSourceName, -- Journal source name
10709 TTD.JournalCategoryName, -- Journal category name
10710 TTD.JournalAccountingDate, -- Journal accounting date
10711 TTD.JournalCurrencyCode, -- Journal currency code
10712 TTD.PeriodAccountingDate, -- Period accounting date
10713 TTD.JournalDebitAmount, -- Debit
10714 TTD.JournalCreditAmount, -- Credit
10715 TTD.SGSCompanyCode, -- Sgs company
10716 TTD.GlobalAccount, -- Global account
10717 TTD.LocalSubAccount, -- Local sub account
10718 TTD.Activity, -- Business/Activity
10719 TTD.CostCenter, -- Cost center
10720 TTD.CostLevel, -- Cost level
10721 TTD.Location, -- Location
10722 TTD.Intercompany, -- Intercompany
10723 TTD.Project, -- Project
10724 TTD.StatutoryCode, -- Statutory code
10725 TTD.Reserved1, -- Reserved
10726 TTD.Management -- Management
10727
10728 FROM @tempTableDebit AS TTD
10729 UNION ALL
10730 SELECT TTC.BooksName,
10731 TTC.JournalSourceName,
10732 TTC.JournalCategoryName,
10733 TTC.JournalAccountingDate,
10734 TTC.JournalCurrencyCode,
10735 TTC.PeriodAccountingDate,
10736 TTC.JournalDebitAmount,
10737 TTC.JournalCreditAmount,
10738 TTC.SGSCompanyCode,
10739 TTC.GlobalAccount,
10740 TTC.LocalSubAccount,
10741 TTC.Activity,
10742 TTC.CostCenter,
10743 TTC.CostLevel,
10744 TTC.Location,
10745 TTC.Intercompany,
10746 TTC.Project,
10747 TTC.StatutoryCode,
10748 TTC.Reserved1,
10749 TTC.Management
10750 FROM @tempTableCredit AS TTC
10751 ) Result
10752 ) FinalResult;
10753
10754 INSERT INTO @finalResult
10755 (
10756 FinalResult
10757 )
10758 VALUES
10759 (N'##STARTOFFILE##' -- FinalResult - nvarchar(max)
10760 );
10761
10762 INSERT INTO @finalResult
10763 (
10764 FinalResult
10765 )
10766 SELECT TFR.Details FROM @textFileResult AS TFR
10767
10768 INSERT INTO @finalResult
10769 (
10770 FinalResult
10771 )
10772 VALUES
10773 (N'##ENDOFFILE' -- FinalResult - nvarchar(max)
10774 )
10775
10776 SELECT * FROM @finalResult AS FR
10777END;
10778GO
10779IF @@ERROR <> 0 SET NOEXEC ON
10780GO
10781PRINT N'Creating index [IX_FK_cc.tbl_Bon.SubAcctChartID$cc.tbl_SubAccCha.SubAcctChartID] on [cc].[tbl_Bonus]'
10782GO
10783CREATE NONCLUSTERED INDEX [IX_FK_cc.tbl_Bon.SubAcctChartID$cc.tbl_SubAccCha.SubAcctChartID] ON [cc].[tbl_Bonus] ([SubAcctChartID])
10784GO
10785IF @@ERROR <> 0 SET NOEXEC ON
10786GO
10787PRINT N'Creating index [IX_FK_ccg.tbl_Loa.SubAcctChartID$cc.tbl_SubAccCha.SubAcctChartID] on [ccg].[tbl_Loan]'
10788GO
10789CREATE NONCLUSTERED INDEX [IX_FK_ccg.tbl_Loa.SubAcctChartID$cc.tbl_SubAccCha.SubAcctChartID] ON [ccg].[tbl_Loan] ([SubAcctChartID])
10790GO
10791IF @@ERROR <> 0 SET NOEXEC ON
10792GO
10793PRINT N'Adding foreign keys to [cc].[tbl_Bonus]'
10794GO
10795ALTER TABLE [cc].[tbl_Bonus] ADD CONSTRAINT [FK__tbl_Bonus__SubAc__60093AB2] FOREIGN KEY ([SubAcctChartID]) REFERENCES [cc].[tbl_SubAcctChart] ([SubAcctChartID])
10796GO
10797IF @@ERROR <> 0 SET NOEXEC ON
10798GO
10799PRINT N'Adding foreign keys to [ccg].[tbl_Loan]'
10800GO
10801ALTER TABLE [ccg].[tbl_Loan] ADD CONSTRAINT [FK__tbl_Loan__SubAcc__5E20F240] FOREIGN KEY ([SubAcctChartID]) REFERENCES [cc].[tbl_SubAcctChart] ([SubAcctChartID])
10802GO
10803ALTER TABLE [ccg].[tbl_Loan] ADD CONSTRAINT [FK_ccg.tbl_Loa.BatchID$tmp.tbl_Bat.BatchID] FOREIGN KEY ([BatchID]) REFERENCES [tmp].[tbl_Batch] ([BatchID]) ON DELETE CASCADE
10804GO
10805IF @@ERROR <> 0 SET NOEXEC ON
10806GO
10807COMMIT TRANSACTION
10808GO
10809IF @@ERROR <> 0 SET NOEXEC ON
10810GO
10811-- This statement writes to the SQL Server Log so SQL Monitor can show this deployment.
10812IF HAS_PERMS_BY_NAME(N'sys.xp_logevent', N'OBJECT', N'EXECUTE') = 1
10813BEGIN
10814 DECLARE @databaseName AS nvarchar(2048), @eventMessage AS nvarchar(2048)
10815 SET @databaseName = REPLACE(REPLACE(DB_NAME(), N'\', N'\\'), N'"', N'\"')
10816 SET @eventMessage = N'Redgate SQL Compare: { "deployment": { "description": "Redgate SQL Compare deployed to ' + @databaseName + N'", "database": "' + @databaseName + N'" }}'
10817 EXECUTE sys.xp_logevent 55000, @eventMessage
10818END
10819GO
10820DECLARE @Success AS BIT
10821SET @Success = 1
10822SET NOEXEC OFF
10823IF (@Success = 1) PRINT 'The database update succeeded'
10824ELSE BEGIN
10825 IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION
10826 PRINT 'The database update failed'
10827END
10828GO