Вы находитесь на странице: 1из 11

IF EXISTS(Select * from SYSOBJECTS WHERE ID =OBJECT_ID('report.

crpt_ComPsychFMLA_36945'))

DROP PROCEDURE report.crpt_ComPsychFMLA_36945

GO

CREATE PROCEDURE report.crpt_ComPsychFMLA_36945

/*

Modified By: Saul Cardenas

Description: Stored Procedure for Custom Report

Date: 6/29/2018

Example:

Drop all temporary table objects that exist in the tempDB for the current session

DECLARE @TempTablesString NVARCHAR(MAX) SELECT @TempTablesString =


COALESCE(@TempTablesString + ', ', '') + CASE WHEN name LIKE '##%' THEN name WHEN name
LIKE '#%' THEN SUBSTRING(name, 1, CHARINDEX( '____', name)-1) END FROM tempdb..sysobjects
WITH (NOLOCK) WHERE name LIKE '#%' AND OBJECT_ID('tempdb..' + name) IS NOT NULL AND name
NOT LIKE CASE WHEN 0 = 0 THEN '##%' ELSE '#######%' END SET @TempTablesString = 'DROP
TABLE ' + @TempTablesString EXECUTE sp_executesql @TempTablesString

DECLARE @UserID varchar(50)

DECLARE @std_FilterValue xml

SET @UserID = 'Escher\1\sysAdmin'

SET @std_FilterValue = '<parms><p k="P1" b="36945"/><p k="P11" b="2018060801"


e="2018060899"/><p k="P12" b="2"/><p k="P36" b="1"/></parms>'

exec report.crpt_ComPsychFMLA_36945 @UserID,@std_FilterValue

*/

@UserID VARCHAR(50),

@std_FilterValue XML

AS

SET NOCOUNT ON
--Update the parameter string to include the P11 date range for the previous 12 months

SET @std_FilterValue = report.XML_UpdateFilterParmValue_fn(report.XML_InsertFilterParmVal


ue_fn(@std_FilterValue,'P11','b', report.ConvertDatetoProcessID_fn(DATEADD(mm, -
12, GETDATE()))),'P11','e', report.ConvertDatetoProcessID_fn(GETDATE())+ 98)

--SELECT * FROM Escher.EBenefitsSetup_tfn(@UserID, @std_FilterValue)

--EInfo

SELECT

eInfoID,

co,

id,

lastName,

firstName,

middleName,

address1,

address2,

city,

state,

zip,

county,

country,

workAddress1,
workAddress2,

workCity,

workState,

workZip,

workCounty,

workCountry,

phone1,

phone1Type,

phone1Ext,

ssn,

birthDate,

sex,

empStatus,

empType,

rehireDate,

adjSeniorityDate,

termDate,

positionCode,

title,

emailAddress,

personalEmail,

cCostCenterMatrixID,

salary,

defaultHours,

annualSalary,

rateCode,
hireDate,

otExempt

INTO #EInfo FROM Report.EInfo_tfn(@userId, @std_FilterValue)

--cCostCenterMatrix

SELECT

cCostCenterMatrixID,

co,

cc1,

cc2,

cc3,

cc4,

cc5,

cc1name,

cc2name,

cc3name,

cc4name,

cc5name

INTO #CCostCenterMatrix FROM Report.cCostCenterMatrix_tfn(@userId, @std_FilterValue)

--CInfo

SELECT

cInfoID,

co,

name

INTO #CInfo

FROM Report.CInfo_tfn(@userId, @std_FilterValue)


Select f.co, f.fieldName, MAX(v.fieldValue) as fieldValue

Into #CompanyCustomFields

From report.CUserDefinedFields_tfn(@UserID,@std_FilterValue) f

Join escher.CUserDefinedFieldValues
v With (NoLock) on v.CUserDefinedFieldID = f.CUserDefinedFieldID

Where f.pageLabel = 'COMPANY' AND f.fieldName='FMLA Account Number'

Group By f.co, f.fieldName

--SELECT * FROM #CompanyCustomFields

--Code group for previous 12 months worked hours

SELECT

gd.co,

gd.detType AS det,

gd.detcode,

g.codegroup

INTO #CodeGroup

FROM report.CCodeGroup_sn g WITH (NOLOCK)

INNER JOIN report.CCodeGroupDetail_sn gd WITH (NOLOCK) ON

gd.cCodeGroupID = g.cCodeGroupID

INNER JOIN #CInfo c ON

c.co = g.co

WHERE g.codeGroup IN ('crpt_hours')


--EPayHist

SELECT

ePayHistID,

co,

id,

checkDate,

process

INTO #EPayHist FROM Report.ePayHist_tfn(@UserID, @std_FilterValue)

--EPayHistDetail

SELECT

ePayHistDetailID,

ePayHistID,

co,

id,

det,

detCode,

hours

INTO #EPayHistDetail FROM Report.ePayHistDetail_tfn(@UserID, @std_FilterValue)

--Previous 12 month hours

SELECT

eph.co,

eph.id,

SUM(ephd.hours) AS Prev12MonthHours
INTO #Previous12MonthHours

FROM #EPayHist eph

INNER JOIN #EPayHistDetail ephd ON

eph.ePayHistID = ephd.ePayHistID

INNER JOIN #CodeGroup cg ON

cg.co = eph.co AND

cg.det = ephd.det AND

cg.detcode = ephd.detcode

GROUP BY

eph.co,

eph.id

--Benefit Class

SELECT

b.eBenefitsSetupID,

b.co,

b.id,

b.categoryEffectiveDate,

b.class,

RANK() OVER (PARTITION BY b.co, b.id ORDER BY b.categoryEffectiveDate DESC, eBenef


itsSetupID DESC) AS RankNumber

INTO #EBenefitsSetup

FROM Escher.EBenefitsSetup b WITH (NOLOCK)

INNER JOIN #EInfo ei ON

ei.co = b.co AND

ei.id = b.id
WHERE categoryEffectiveDate <= GETDATE()

DELETE FROM #EBenefitsSetup WHERE RankNumber <> 1

--Final select

SELECT

ci.co,

ccf.fieldValue AS AccountNumber,

ci.name AccountName,

ei.id AS EmployeeID,

ei.ssn AS EmployeeSSN,

REPLACE(ei.firstname,',','') AS FirstName,

LEFT(LTRIM(RTRIM(ei.middlename)), 1) AS middlename,

REPLACE(ei.lastname,',','') AS LastName,

REPLACE(ei.address1,',','') AS HomeAddressLine1,

REPLACE(ei.address2,',','') AS HomeAddressLine2,

REPLACE(ei.city,',','') AS HomeCity,

ei.state AS HomeState,

SUBSTRING(ei.zip,1,5) AS HomeZip,

ISNULL(ei.country, 'USA') AS HomeCountry,

ei.phone1 AS HomePhone,

ei.sex AS Gender,

ei.birthDate AS DateOfBirth,

'' AS PrimaryLanguage,

'' AS WorkAddressID,

'' AS WorkAddressLine1,
'' AS WorkAddressLine2,

REPLACE(ei.city,',','') AS WorkCity,

ei.state AS WorkState,

SUBSTRING(ei.workZip,1,5) AS WorkZip,

'USA' AS WorkCountry,

'' AS WorkPhone,

'' AS WorkPhoneExtension,

ccm.cc1 AS BusinessUnit,

ci.co AS Organization,

b.class AS EmployeeGroup1,

'' AS EmployeeGroup2,

'' AS EmployeeGroup3,

'' AS EmployeeGroup4,

'' AS EmployeeGroup5,

'' AS EmployeeGroup6,

'' AS EmployeeGroup7,

'' AS EmployeeGroup8,

CASE WHEN ei.empType = 'RFT' THEN 'F' ELSE 'P' END AS FullTimePartTimeStatus,

CONVERT(varchar,ei.hireDate,110) AS HireDate,

CONVERT(varchar,ei.rehireDate,110) AS AdjustedEmploymentDate,

'' AS AnniversaryDate,

CONVERT(varchar,ei.termDate,110) AS TerminationDate,

prev.Prev12MonthHours AS Prev12MonthHours,

'' AS KeyEmployee,

REPLACE(ei.positionCode,',','') AS JobTitle,

ei.emailAddress AS WorkEmail,
ei.defaultHours AS ScheduledHours,

'5' AS ScheduledDaysPerWeek,

'' AS AdditionalLetterRecipientEmail,

'' AS SpouseEmployed,

'' AS SpouseEmployeeID,

'' AS PrimaryContactID,

ei.annualSalary AS STDEarnings,

CONVERT(varchar,b.categoryEffectiveDate,110) AS STDEligibilityDate,

CONVERT(varchar,b.categoryEffectiveDate,110) AS LTDEligibilityDate,

'' AS EmployerContact2IDS,

'' AS EmployerContact3IDS,

'' AS EmployerContact4IDS,

'' AS EmployerContact5IDS,

'' AS EmployerContact6IDS,

'' AS EmployerContact7IDS,

'' AS EmployerContact8IDS,

'' AS EmployerContact9IDS,

'' AS EmployerContact10IDS

FROM #EInfo ei

INNER JOIN #CInfo ci ON

ci.co = ei.co

INNER JOIN #CCostCenterMatrix ccm ON

ccm.cCostCenterMatrixID = ei.cCostCenterMatrixID

LEFT JOIN #Previous12MonthHours prev ON

prev.co = ei.co AND prev.id = ei.id

LEFT JOIN #EBenefitsSetup b ON


b.co = ei.co AND

b.id = ei.id

Left JOIN #CompanyCustomFields ccf ON

ccf.co=ci.co

--WHERE isnull(ei.termDate, '12/31/2999') >= dateadd(dd,-7, @enddate)

Вам также может понравиться