

CREATE PROCEDURE [dbo].[ApiHrWorkersList]
 @TypZatrudnienia int,
 @DataAktualnosci datetime,
 @DepartamentId int,
 @SerchText nvarchar(100),
 @Page int
 as
 BEGIN

IF ( @TypZatrudnienia = 1)
BEGIN
select
p.ID Id, p.ID ErpId, p.Id WorkerId, 0 SuperiorId,
p.Kod Code , kal.NormaDobowa WorkTime,
ph.Id PhId,
p.Imie Name , p.Nazwisko Surname,  
ph.PESEL PersonalId, 
case when (ph.EtatTypStawki =1) then dbo.apiHrMinimalSalary(@DataAktualnosci) else
ph.EtatZaszeregowanieStawkaValue end Salary,
--ph.EtatTypStawki ,
ph.EtatZaszeregowanieWymiarNum EmploymentTimeNum ,
ph.EtatZaszeregowanieWymiarDen EmploymentTimeDen ,  ph.EtatStanowisko  Position, 
ph.EtatOkresFrom EmploymentFrom , ph.EtatOkresTo EmploymentTo , 
ISNULL(ph.EtatWydzial,0)  DepartamentId
from dbo.Pracownicy p JOIN dbo.PracHistorie ph ON 
ph.AktualnoscTo >= @DataAktualnosci and ph.AktualnoscFrom <= @DataAktualnosci 
and ph.EtatOkresFrom<= @DataAktualnosci and ph.EtatOkresTo>=@DataAktualnosci
and ph.Pracownik = p.ID
LEFT OUTER JOIN dbo.Kalendarze kal on kal.ID = ph.EtatKalendarz
where 
(@DepartamentId =0 OR ph.EtatWydzial=@DepartamentId)
and (@SerchText='all' OR  (@SerchText<>'all' and   (p.Nazwisko LIKE '%'+@SerchText+'%'  OR p.Imie LIKE '%'+@SerchText+'%' OR p.Kod LIKE '%'+@SerchText+'%')))
ORDER BY Surname
                OFFSET  (50 * (@page - 1)) ROWS FETCH NEXT 50 ROWS ONLY;
END

ELSE IF (@TypZatrudnienia = 2)
BEGIN

select
p.ID Id, p.ID ErpId, p.Id WorkerId, 0 SuperiorId,
p.Kod Code , 0 WorkTime,
ph.Id PhId,
p.Imie Name , p.Nazwisko Surname,  
ph.PESEL PersonalId, 
umh.WartoscValue - ISNULL(um.SplaconoValue,0) Salary,
--ph.EtatTypStawki ,
ph.EtatZaszeregowanieWymiarNum EmploymentTimeNum ,
ph.EtatZaszeregowanieWymiarDen EmploymentTimeDen ,  ph.EtatStanowisko  Position, 
um.OkresFrom EmploymentFrom , um.OkresTo EmploymentTo , 
ISNULL(um.Wydzial ,0)  DepartamentId
from dbo.Pracownicy p JOIN dbo.PracHistorie ph ON 
ph.AktualnoscTo >= @DataAktualnosci and ph.AktualnoscFrom <= @DataAktualnosci 
--and ph.EtatOkresFrom<= @DataAktualnosci and ph.EtatOkresTo>=@DataAktualnosci
and ph.Pracownik = p.ID
JOIN dbo.Umowy um ON um.Pracownik = p.ID and um.OkresFrom<=@DataAktualnosci and um.OkresTo>=@DataAktualnosci
JOIN dbo.UmowaHistorie umh ON umh.Umowa = um.ID and umh.AktualnoscFrom<= @DataAktualnosci and umh.AktualnoscTo >=@DataAktualnosci
where 
(@DepartamentId =0 OR ph.EtatWydzial=@DepartamentId)
and (@SerchText='all' OR  (@SerchText<>'all' and   (p.Nazwisko LIKE '%'+@SerchText+'%'  OR p.Imie LIKE '%'+@SerchText+'%' OR p.Kod LIKE '%'+@SerchText+'%')))
ORDER BY Surname
                OFFSET  (50 * (@page - 1)) ROWS FETCH NEXT 50 ROWS ONLY;
END

END

