Входные параметры
Параметр | Тип | Описание |
---|---|---|
ISCURRENT |
INTEGER |
|
PARTYDATE |
DATE |
|
CROPID |
INTEGER |
|
CLASSID |
INTEGER |
|
STORAGEID |
INTEGER |
|
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
PARTYID |
INTEGER |
|
BEGINDATE |
DATE |
|
Описание
Возвращает список робочих партий активніх на данній момент или на указанную дату
Определение
CREATE PROCEDURE GETWORKPARTIES(
ISCURRENT INTEGER,
PARTYDATE DATE,
CROPID INTEGER,
CLASSID INTEGER,
STORAGEID INTEGER)
RETURNS (
PARTYID INTEGER,
BEGINDATE DATE)
AS
begin
if (:ISCURRENT = 1) then
for
select PARTIES.PARTYID, PARTIES.BEGINDATE
from PARTIES
where (PARTIES.STATE = 1)
and ((coalesce(:CROPID,-1) = -1)
or ((PARTIES.CROPID = :CROPID)
and ((PARTIES.CLASSID = :CLASSID) or (coalesce(:CLASSID,-1) = -1) or (PARTIES.CLASSID is null))))
and ((PARTIES.STORAGEID = :STORAGEID) or (coalesce(:STORAGEID,-1) = -1))
into :PARTYID, :BEGINDATE
do suspend;
else
for
select PARTIES.PARTYID, PARTIES.BEGINDATE
from PARTIES
where (:PARTYDATE between PARTIES.BEGINDATE
and coalesce(PARTIES.ENDDATE,
case
when (:PARTYDATE > current_date) then
:PARTYDATE
else current_date
end))
and ((coalesce(:CROPID,-1) = -1) or (PARTIES.CROPID = :CROPID))
and ((PARTIES.CLASSID = :CLASSID) or (coalesce(:CLASSID,-1) = -1) or (PARTIES.CLASSID is null))
and ((PARTIES.STORAGEID = :STORAGEID) or (coalesce(:STORAGEID,-1) = -1))
into :PARTYID, :BEGINDATE
do suspend;
end