You are on page 1of 10

USE [HuManEDGE]

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

/******************************************************************************
** File:
** Name: SP_B_Leave_Report_v2_MultiCo
** Desc:
**
** This template can be customized:
**
** Return values:
**
** Called by:
**
** Parameters:
** Input Output
** ---------- --------
---
**
** Auth:
** Date:
*******************************************************************************
** Change History
*******************************************************************************
** Date: Author: Description:
** 20110321 JMC Should d
isplay number of credits not number of hours
** 20110801 JMC Update a
pprover from approver workflow
** 20140708 MJB Added Lo
cation Access
** 20150805 MJB Updated
Location Access
*******************************************************************************/

--SP_B_Leave_Report_v2_MultiCo '10','01/01/2012','08/22/2012','','','6611,6597,4
11,5196,5082,5081,2450,2287,2488,4663,419,5552,6414,2448,1947,4609,406,6559,5080
,6599,6594,5530,413,6448,5553,6671,4476,2382,5550,5554,4477,1458,4675,412,407,65
17,4478,410,6669','','','','','','','7568'
--SP_B_Leave_Report_v2 '10','01/01/2012','08/22/2012','','7568','','','','','','
',''
ALTER Procedure [dbo].[SP_B_Leave_Report_v2_MultiCo]
@pDateParam varchar(10),
@pDate1 varchar(10),
@pDate2 varchar(10),
@pEmpID varchar(10),
@pOrgId varchar(2000),
@pLeaveCode varchar(10),
@pStatus varchar(10),
@pWorkArg varchar(10),
@pSalGradeParam varchar(500),
@pGrpBy varchar(10),
@ShowHide varchar(10),
@pUserID varchar(10), --NRBU20120822
@cmpyCode VARCHAR(10) = ''
As
CREATE TABLE #OrgFunction
(
Master_Organization_ID int,
Master_Organization_ID_NEW int,
Organization_ID varchar(10),
BussUnitCode varchar(10),
Short_Name varchar(100),
Long_Name varchar(200),
Start_Date datetime,
End_Date datetime,
Mission varchar(8000),
Responsibilities varchar(8000),
Floor varchar(10),
Building_Location_ID varchar(10),
LocationCode varchar(10),
Parent_Organization_ID varchar(10),
Organization_Type_ID varchar(2),
Vertical_Layer varchar(3),
Control varchar(2),
Practice_Code varchar(10),
StatisticViewControl bit,
OGSM_File varchar(50),
CreatedByID varchar(10),
CreatedDate datetime,
LastUpdatedIPAddress varchar(20),
LastUpdatedByID varchar(10),
LastUpdatedDate datetime,
DeactivatedByID varchar(10),
DeactivatedDate datetime
)
CREATE TABLE #OrgAccess
(
Master_Organization_ID int
)
CREATE TABLE #TB_Master_Organization (
[Master_Organization_ID] [int],
[Organization_ID] [varchar] (10)
)
INSERT INTO #OrgFunction
select * from HuManEDGE.dbo.getOrganizations(@pDate2)
INSERT INTO #OrgAccess
select Master_Organization_ID from HuManEDGE.dbo.getOrgAccess(@pUserID)

INSERT INTO #TB_Master_Organization


SELECT DISTINCT
ORGFUNCTION.Master_Organization_ID,
ORGFUNCTION.Organization_ID
FROM
#OrgFunction ORGFUNCTION
INNER JOIN (Select Master_Organization_ID From HuManEDGE.dbo.getOrgAcces
s(@pUserID)) ORGACCESS
ON (HuManEDGE.dbo.isOrganizationUnderOrganization(ORGFUNCTION.Ma
ster_Organization_ID,ORGACCESS.Master_Organization_ID) = 1
OR ORGFUNCTION.Master_Organization_ID = ORGACCESS.Master_Organiz
ation_ID)
Where ORGFUNCTION.Master_Organization_ID in (select value from dbo.UTILf
n_Split(@pOrgID,',')) OR @pOrgID = ''
--MJB 20140708
-- LOC ACCESS RESTRICTION
CREATE TABLE #LOCACCESSRESTRICTION
(
LocationCode varchar(20)
)
CREATE NONCLUSTERED INDEX IX_LOCACCESSRESTRICTION ON #LOCACCESSRESTRICTI
ON
(
LocationCode asc
) ON [PRIMARY]
Insert into #LOCACCESSRESTRICTION (LocationCode)
Select LocationCode From TB_EI_Location_Restriction_Acess
Where Employee_ID = @pUserID
And [Start_Date] <= getdate()
And (End_Date is NULL or End_Date >= getdate())
--- END MJB 20140708

Declare @CompanyName as varchar(100)


Declare @DateFormat as varchar(10)
Declare @UserName as varchar(256)
select
@DateFormat = replace([dateFormat],'mm','MM')
From HuManEDGE.dbo.TB_Master_Company_Setting
if @cmpyCode = 'CSet'
Begin
select @CompanyName = long_Name
From TB_Master_Company_Setting
End
Else
Begin
SELECT @CompanyName = ORG.Long_Name
FROM HuManEDGE.dbo.TB_Master_Signatory_PerOrganization S
IG
LEFT JOIN HuManEDGE.dbo.TB_Master_Organization O
RG
ON ORG.Master_Organization_ID = SIG.Orga
nizationID
WHERE SIG.Row_ID = @cmpyCode
End
SET @DateFormat = Isnull(@DateFormat,'MM/dd/yyyy')
SET @pWorkArg = Isnull(@pWorkArg,'')
SET @pEmpID = Isnull(@pEmpID,'')
SET @UserName = (
select VW.LNFMI EmpName From
(
Select EI.* FROM
(
Select P
erson_ID,Employee_ID FROM
TB_Maste
r_employment_info
Where EM
ployee_ID = @pUserID
) EI
)
MEI
Left Join VW_EI_Personal_Names V
W
on MEI.Person_ID = VW.Person_ID
where MEI.Employee_ID = @pUserID
)
IF isnull(@pOrgId,'0') = '0'
SET @pOrgId = ''
if isnull(@pEmpID,'')=''
set @pEmpID = ''
if isnull(@pWorkArg,'')=''
set @pWorkArg = ''
if isnull(@pLeaveCode,'')=''
set @pLeaveCode = ''
if isnull(@pSalGradeParam,'')=''
set @pSalGradeParam = ''
if isnull(@pStatus,'')=''
set @pStatus = ''
if isnull(@pGrpBy,'')=''
set @pGrpBy = ''
if isnull(@ShowHide,'')=''
set @ShowHide = ''
declare @StatusDesc varchar(20)
set @StatusDesc = case @pStatus
when '10' then 'For Approval'
when '98' then 'Disapproved'
when '-20' then 'Cancelled'
when '99' then 'Approved'
when '-99' then 'Reverse Approved'
else ''
end

Select Distinct
isnull((select top 1 shortname from TB_B_BenefitPolicy where ban
d_version_name = ei.Band_Version_Name
and benefitcode = @pLeaveCode),'All Leave Types') Leave
Desc,
LongName LeaveName,
case @pDateParam
when '10' then 'Approved Date'
when '20' then 'Date Filed'
when '30' then 'Effectivity of Leave'
when '40' then 'Effectivity of Leave'
else ''
end DateParameter,
@StatusDesc StatusDesc,
case b.Status
when '10' then 'For Approval'
when '98' then 'Disapproved'
when '-20' then 'Cancelled'
when '99' then 'Approved'
when '-99' then 'Reverse Approved'
else ''
end Status,
--Department
ei.department_id as DeptID,
isnull(Dept.Short_Name,'')Dept,
B.Remarks,
Per.Last_Name,
Per.First_Name,
ISNULL(SUBSTRING(Per.Middle_Name,1,1) + '.','') as Middle_Name,
case when per.suffix_id is not null then ref.reference_category_
Description else '' end suffix,
a.LeaveDate,
a.CreditsApplied Hours,-- (a.CreditsApplied * 8.00) Hours,
//20110321 JMC
b.ApplicationDate,
b.LastUpdatedDate,
a.leaveCode,
Div.OrganizatioN_id,
A.Employee_ID,
---
case when isNull(A.ScopeType,'') = '20'
then RefScopeType.reference_category_description + ' - '
+ RefScopePart.reference_category_description
else
RefScopeType.reference_category_description
end ScopeDescription,
A.ScopeType,
--
BPR.ReasonDesc,
AppPer.First_Name + ' ' + AppPer.Last_Name as ApproverName,
case
when isNull(B.Remarks,'') <> '' and isNull(lvr.ReasonDes
c,'') <> ''
then lvr.ReasonDesc + ' - ' + B.Remarks
when isNull(B.Remarks,'') = ''and isNull(lvr.ReasonDesc,
'') <> ''
then lvr.ReasonDesc
when isNull(B.Remarks,'') <> ''and isNull(lvr.ReasonDes
c,'') = ''
then B.Remarks
else ''
end LeaveReason,
Job_Level.Short_Name
JobLevel_Desc,
ei.division_id DivID,
isnull(Div.Short_Name,'') DivName
--JMC 20110801
,
AppTrans.approvallevelno,
--No record exist in approver workflow transaction, approver wil
l get on leave table hdr
case isnull(AppTrans.row_ID,'')
when '' then (select dbo.getemployeeName_withFormatPara
meter(b.approverid ,60)) --From TB_HDR
else
(select dbo.getApprover(b.row_id,b.leavecode,b.status))
--From Approval_Trans
end LeaveApprover,
AppSetup.LevelDescription ApprovalStatus,
(select dbo.getemployeeName_withFormatParameter(b.lastupdatedbyi
d,60))LastActionBy
,@CompanyName CompanyName
,@DateFormat HRISDateFormat
,@UserName UserName
--JMC 20110801
From
tb_b_leave_application_dtl A
left join tb_b_leave_application_hdr b on
b.employee_id=a.employee_id
and b.leaveCode=a.leaveCode
and b.start_date=a.start_date
and b.end_date=a.end_date
and b.applicationDate=a.applicationDate
left join tb_master_employment_info ei on
ei.employee_id=a.employee_id
left join TB_B_BenefitPolicy BP on
BP.Benefitcode = a.LeaveCode
and bp.band_VERSion_name = ei.band_version_name
left join TB_B_BenefitPolicyReasons BPR on
BPR.BenefitCode = b.LeaveCode
and BPR.ReasonCode = b.ReasonCode
and BPR.band_VERSion_name = ei.band_version_name
left join tb_master_personal_info per on
per.person_id=ei.person_id
left join TB_Master_Job_Level_Band JOB_LEVEL on
JOB_LEVEL.Band_Version_No = ei.Band_Version_No
and JOB_LEVEL.Type = ei.Job_Structure_Type_ID
and JOB_LEVEL.Job_Level_Band = ei.Salary_Grade
and JOB_LEVEL.band_version_name = ei.band_version_name
--JMC 20110801
left join tb_master_reference ref
on per.suffix_ID= ref.reference_category_key
and ref.reference_Category='521'
and ref.deactivateddate is null
left join tb_approval_transactions AppTrans on
AppTrans.tranID = b.row_ID
and AppTrans.status = b.status
and AppTrans.approvallevelno = ( select top 1 app
rovallevelno
from tb_approval_transactions
where trantype =b.leaveCode
and tranid =b.row_ID
and status = b.status
order by approvallevelno desc)
and AppTrans.trantype = b.leaveCode
Left join TB_Master_Approval_Setup AppSetup on
AppSetup.TranType = AppTrans.tranType
And AppSetup.TranCode = AppTrans.trancode
And AppSetup.LevelNo = AppTrans.ApprovalLevelNo
And AppSetup.ApproverType = AppTrans.ApproverType
--End.JMC 20110801

-------------------------------------------------------------
--Area
Left Join #OrgFunction area on
area.master_organization_id=ei.Group_ID
--Cluster
Left Join #OrgFunction Cluster on
Cluster.master_organization_id=ei.VerticalLayer7
--Company
Left Join #OrgFunction Cmpy on
Cmpy.master_organization_id=ei.company_id
--Conglomerate
Left Join #OrgFunction Conglomerate on
Conglomerate.master_organization_id=ei.conglomerate_id
--Department
Left Join #OrgFunction dept on
dept.master_organization_id=ei.department_id
--Division
Left Join #OrgFunction DIV on
DIV.Master_Organization_ID=ei.Division_ID
--Section
Left Join #OrgFunction Sec on
Sec.master_organization_id=ei.section_id
--Station
Left Join #OrgFunction Station on
Station.master_organization_id=ei.VerticalLayer8
--Station Department
Left Join #OrgFunction StaDept on
StaDept.Master_Organization_ID=ei.VerticalLayer9
--Sub-Unit
Left Join #OrgFunction SubUnit on
SubUnit.master_organization_id=ei.VerticalLayer12
--Subsidiary
Left Join #OrgFunction SubS on
SubS.master_organization_id=ei.cluster_id
--Unit
Left Join #OrgFunction Unt on
Unt.Master_Organization_ID=ei.VerticalLayer11
-----------------------------------------------------
left join humanedgepay.dbo.tb_b_benefit_Trantype lv on
lv.benTranCode=a.leaveCode
left join TB_B_BenefitPolicyReasons lvr on
lvr.BenefitCode=b.leaveCode
and lvr.Band_Version_Name=ei.Band_Version_Name
and lvr.reasonCode=b.ReasonCode
left join TB_Master_Employment_Info AppEmp on
b.approverid = AppEmp.employee_id
left join TB_Master_Personal_Info AppPer on
AppEmp.person_ID = AppPer.person_ID

---
left join tb_master_reference RefScopeType
on RefScopeType.Reference_Category_Key=a.scopetype
and RefScopeType.Reference_Category='5025'
And RefScopeType.DeactivatedDate is NULL
left join tb_master_reference RefScopePart
on RefScopePart.Reference_Category_Key=a.scopepart
and RefScopePart.Reference_Category='5026'
And RefScopePart.DeactivatedDate is NULL

Where
a.CreditsApplied <> 0
/*and (
(@pDateParam = '10' and b.ApprovedDate between @pDate1 a
nd dateadd(day,1,@pDate2))
or (@pDateParam = '20' and b.ApplicationDate between @pD
ate1 and dateadd(day,1,@pDate2))
or (@pDateParam = '30' and a.LeaveDate between @pDate1 a
nd dateadd(day,1,@pDate2))
) */
and (
(@pDateParam = '10' and (b.ApprovedDate >= @pDate1 and b
.ApprovedDate <= @pDate2))
or (@pDateParam = '20' and (b.ApplicationDate >= @pDate1
and b.ApplicationDate <= @pDate2))
or (@pDateParam = '30' and (a.LeaveDate >= @pDate1 and a
.LeaveDate <= @pDate2))
)
and (@pEmpID = '' or a.Employee_ID = @pEmpID)
and (@pStatus = '' or b.Status = @pStatus)
and (@pLeaveCode = '' or a.leavecode = @pLeaveCode)
and (@pWorkArg = '' or EI.Work_Arrangement_ID = @pWorkArg)
--NRBU20120822 Added Org-Access for Multi-Co
and
(
(select Organization_ID from #OrgFunction where
Master_Organization_ID = EI.Conglomerate_ID) in (select Organization_ID from #TB
_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Company_ID) in (select Organization_ID from #TB_M
aster_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Cluster_ID) in (select Organization_ID from #TB_M
aster_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Division_ID) in (select Organization_ID from #TB_
Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Group_ID) in (select Organization_ID from #TB_Mas
ter_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Department_ID) in (select Organization_ID from #T
B_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.Section_ID) in (select Organization_ID from #TB_M
aster_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.VerticalLayer7) in (select Organization_ID from #
TB_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.VerticalLayer8) in (select Organization_ID from #
TB_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.VerticalLayer9) in (select Organization_ID from #
TB_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.VerticalLayer11) in (select Organization_ID from
#TB_Master_Organization)
or (select Organization_ID from #OrgFunction whe
re Master_Organization_ID = EI.VerticalLayer12) in (select Organization_ID from
#TB_Master_Organization)
)
--End of NRBU20120822
and (@pSalGradeParam = '' or ei.SalarY_grade in (select rtrim(lt
rim(value)) from dbo.UTILfn_Split(@pSalGradeParam,',') where isnull(value,'') <>
'' ) )
--- MJB 20140708
---and isnull(EI.LocationCode,'') in (Select LocationCode From #
LOCACCESSRESTRICTION)
---MJB 20150805; updated location access filtering
and exists ((Select 1 From #LOCACCESSRESTRICTION Where (
LocationCode = EI.LocationCode O
R
'|' + EI.LocationCode + '|' like
'%|' + LocationCode + '%'
)))
Order By
Per.Last_Name,
Per.First_Name,
Per.Middle_Name
Drop table #OrgFunction
DROP TABLE #LOCACCESSRESTRICTION --- MJB 20140708

You might also like