Входные параметры
Параметр | Тип | Описание |
---|---|---|
BEGINDATE |
DATE |
|
ENDDATE |
DATE |
|
PARTYID |
INTEGER |
|
PARTYDATE |
DATE |
|
STORAGEID |
INTEGER |
|
OWNERID |
INTEGER |
|
Выходные параметры
Параметр | Тип | Описание |
---|---|---|
INCOMENETAVTO |
INTEGER |
|
INCOMENETRW |
INTEGER |
|
OUTCOMENET |
INTEGER |
|
CROPFULLNAME |
VARCHAR(100) |
|
INITIAL_NET |
INTEGER |
|
AVALIABLE_NET |
INTEGER |
|
ACROPID |
INTEGER |
|
CROPNAME |
VARCHAR(20) |
|
Описание
(Нет описания для процедуры ACC_MOVE_REPORT_ILLICHEVSK)
Определение
CREATE PROCEDURE ACC_MOVE_REPORT_ILLICHEVSK(
BEGINDATE DATE,
ENDDATE DATE,
PARTYID INTEGER,
PARTYDATE DATE,
STORAGEID INTEGER,
OWNERID INTEGER)
RETURNS (
INCOMENETAVTO INTEGER,
INCOMENETRW INTEGER,
OUTCOMENET INTEGER,
CROPFULLNAME VARCHAR(100),
INITIAL_NET INTEGER,
AVALIABLE_NET INTEGER,
ACROPID INTEGER,
CROPNAME VARCHAR(20))
AS
declare variable ACLASSID integer;
begin
ACLASSID = null;
ACROPID = null;
for
select
CROPNAME, CLASS.CROPID, CLASS.CLASSID, QUALITY_CROPFULLNAME.CROPFULLNAME
from CROP
left join CLASS on (CLASS.CROPID = CROP.CROPID)
left join QUALITY_CROPFULLNAME(CROP.CROPID, CLASS.CLASSID, null, 0) on (0 = 0)
where (Crop.Croptypeid in (1, 4, 5))
and (CROP.STATE = 1)
order by QUALITY_CROPFULLNAME.CROPFULLNAME
into :CROPNAME, :ACROPID, :ACLASSID, :CROPFULLNAME
do begin
INCOMENETAVTO = 0;
INCOMENETRW = 0;
OUTCOMENET = 0;
INITIAL_NET = 0;
Avaliable_NET = 0;
for
select
coalesce(sum(case
when ((IT.OPERATIONID = 1) and (ITTRANSPORT.transporttypeid in (0, 1)) and (IT.REGDATE >= :BEGINDATE)) then
IT.NET
end), 0) as INCOMENETAVTO,
coalesce(sum(case
when ((IT.OPERATIONID = 1) and (ITTRANSPORT.transporttypeid = 2) and (IT.REGDATE >= :BEGINDATE)) then
IT.NET
end), 0) as INCOMENETRW,
coalesce(sum(case
when ((IT.OPERATIONID = 5) and (IT.REGDATE >= :BEGINDATE)) then
IT.NET
end), 0) as OUTCOMENET,
coalesce(sum(case
when ((IT.OPERATIONID = 1) and (IT.REGDATE < :BEGINDATE)) then
IT.NET
when ((IT.OPERATIONID = 5) and (IT.REGDATE < :BEGINDATE)) then
-IT.NET
end), 0) as INITIAL_NET
from IT
join GETWORKPARTIES(:PARTYID, :PARTYDATE, :ACROPID, :ACLASSID, :STORAGEID) on (GETWORKPARTIES.PARTYID = IT.PARTYID)
left join QUALITY on (QUALITY.QUALITYID = IT.SAMPLERQUALITYID)
left join ITTRANSPORT on (ITTRANSPORT.INVENTORYID = IT.INVENTORYID)
where (IT.REGDATE <= :ENDDATE)
and ((QUALITY.CROPID = :ACROPID) and (QUALITY.CLASSID = :ACLASSID))
and ((IT.STATE >= 0) and (IT.PARENTID >= 0))
and ((not IT.NET is null) and (IT.NET <> 0))
and (IT.OPERATIONID in (1, 5))
and ((IT.STORAGEID = :STORAGEID) or (coalesce(:STORAGEID, -1) = -1))
and ((IT.OWNERID = :OWNERID) or (coalesce(:OWNERID, -1) = -1))
into :INCOMENETAVTO, :INCOMENETRW, :OUTCOMENET, :INITIAL_NET
do begin
AVALIABLE_NET = :INITIAL_NET + :INCOMENETAVTO + :INCOMENETRW - :OUTCOMENET;
if ((:INCOMENETAVTO <> 0) or (:INCOMENETRW <> 0) or (:OUTCOMENET <> 0) or (:INITIAL_NET <> 0)) then
suspend;
end
end
end